Skip to content

Commit fca503b

Browse files
committed
working on makan wrapper support
1 parent f187c7c commit fca503b

File tree

6 files changed

+63
-54
lines changed

6 files changed

+63
-54
lines changed

src/net/sharksystem/aasp/AASPChunkReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void run() {
4848
AASPChunkStorage peerStorage = null;
4949

5050
// get received storage
51-
peerStorage = this.storage.getReceivedChunkStorage(peer);
51+
peerStorage = this.storage.getIncomingChunkStorage(peer);
5252
//<<<<<<<<<<<<<<<<<<debug
5353
b = new StringBuilder();
5454
b.append(this.getLogStart());

src/net/sharksystem/aasp/AASPEngineFS.java

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import java.io.File;
44
import java.io.IOException;
5+
import java.util.ArrayList;
56
import java.util.HashMap;
7+
import java.util.List;
68

79
/**
810
* AASPEngine that stores data in file system.
@@ -94,16 +96,45 @@ private AASPMementoFS getMemento(String rootDirectory) {
9496
private HashMap<CharSequence, AASPChunkStorage> storageList = new HashMap<>();
9597

9698
@Override
97-
public AASPChunkStorage getReceivedChunkStorage(CharSequence sender) {
99+
public AASPChunkStorage getIncomingChunkStorage(CharSequence sender) {
98100
String dir = this.rootDirectory + "/" + sender;
99101
return new AASPChunkStorageFS(dir);
100102
}
101103

104+
@Override
105+
public List<CharSequence> getSender() {
106+
List<CharSequence> senderList = new ArrayList<>();
107+
108+
File dir = new File(this.rootDirectory);
109+
110+
String[] dirEntries = dir.list();
111+
112+
if (dirEntries != null) {
113+
for (String fileName : dirEntries) {
114+
// era folder?
115+
try {
116+
Integer.parseInt(fileName);
117+
// a number. It is a era folder go ahead
118+
continue;
119+
} catch (NumberFormatException e) {
120+
// no number - that's ok!
121+
}
122+
123+
File fileInDir = new File(this.rootDirectory + "/" + fileName);
124+
if (fileInDir.isDirectory()) {
125+
senderList.add(fileName);
126+
}
127+
}
128+
}
129+
130+
return senderList;
131+
}
132+
102133
////////////////////////////////////////////////////////////////////////////////////////
103134
// helper //
104135
////////////////////////////////////////////////////////////////////////////////////////
105136

106-
static void removeFolder(String eraPathName) {
137+
public static void removeFolder(String eraPathName) {
107138
File dir = new File(eraPathName);
108139

109140
String[] dirEntries = dir.list();
@@ -126,5 +157,4 @@ static void removeFolder(String eraPathName) {
126157

127158
dir.delete();
128159
}
129-
130160
}

src/net/sharksystem/aasp/AASPStorage.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,14 @@ public interface AASPStorage {
129129
* @param sender
130130
* @return
131131
*/
132-
public AASPChunkStorage getReceivedChunkStorage(CharSequence sender);
133-
132+
public AASPChunkStorage getIncomingChunkStorage(CharSequence sender);
133+
134+
/**
135+
*
136+
* @return list of peers with an incoming chunk storage
137+
*/
138+
public List<CharSequence> getSender();
139+
134140
/**
135141
*
136142
* @return The local chunk storage that is meant to be used by the local

test/net/sharksystem/aasp/AASPChunkReceiverTester.java renamed to src/net/sharksystem/aasp/util/AASPChunkReceiverTester.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.sharksystem.aasp;
1+
package net.sharksystem.aasp.util;
22

33
import net.sharksystem.aasp.AASPReceivedChunkListener;
44

@@ -28,15 +28,15 @@ public boolean chunkReceived() {
2828
return this.sender != null;
2929
}
3030

31-
String getSender() {
31+
public String getSender() {
3232
return this.sender;
3333
}
34-
35-
String getUri() {
34+
35+
public String getUri() {
3636
return this.uri;
3737
}
38-
39-
int getEra() {
38+
39+
public int getEra() {
4040
return this.era;
4141
}
4242
}

test/net/sharksystem/aasp/AASPEngineThread.java renamed to src/net/sharksystem/aasp/util/AASPEngineThread.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.sharksystem.aasp;
1+
package net.sharksystem.aasp.util;
22

33
import java.io.InputStream;
44
import java.io.OutputStream;
@@ -16,7 +16,7 @@ public class AASPEngineThread extends Thread {
1616
private final OutputStream os;
1717
private AASPReceivedChunkListener listener;
1818

19-
AASPEngineThread(AASPEngine engine, InputStream is,
19+
public AASPEngineThread(AASPEngine engine, InputStream is,
2020
OutputStream os, AASPReceivedChunkListener listener) {
2121

2222
this.engine = engine;

test/net/sharksystem/aasp/BasicTests.java

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package net.sharksystem.aasp;
22

3-
import java.io.File;
43
import java.io.IOException;
5-
import java.nio.file.DirectoryStream;
6-
import java.nio.file.Files;
7-
import java.nio.file.Path;
8-
import java.nio.file.Paths;
4+
import java.util.List;
95

6+
import net.sharksystem.aasp.util.AASPChunkReceiverTester;
7+
import net.sharksystem.aasp.util.AASPEngineThread;
108
import net.sharksystem.util.localloop.TCPChannel;
119
import org.junit.Test;
1210
import org.junit.Assert;
@@ -24,40 +22,10 @@ public class BasicTests {
2422
public static final String ALICE2BOB_MESSAGE = "Hi Bob";
2523
public static final String BOB2ALICE_MESSAGE = "Hi Alice";
2624

27-
private void removeDirectory(String dirname) {
28-
Path dir = Paths.get(dirname);
29-
30-
DirectoryStream<Path> entries = null;
31-
try {
32-
entries = Files.newDirectoryStream(dir);
33-
}
34-
catch(IOException ioe) {
35-
// directory does not exist - ok, nothing to drop
36-
return;
37-
}
38-
39-
for (Path path : entries) {
40-
File file = path.toFile();
41-
if(file.isDirectory()) {
42-
this.removeDirectory(file.getAbsolutePath());
43-
boolean deleted = file.delete();
44-
} else {
45-
boolean deleted = file.delete();
46-
}
47-
}
48-
49-
// finally remove directory itself
50-
File dirFile = new File(dirname);
51-
if(dirFile.exists()) {
52-
boolean deleted = dirFile.delete();
53-
int i = 42;
54-
}
55-
}
56-
5725
@Test
5826
public void androidUsage() throws IOException, AASPException, InterruptedException {
59-
this.removeDirectory(ALICE_FOLDER); // clean previous version before
60-
this.removeDirectory(BOB_FOLDER); // clean previous version before
27+
AASPEngineFS.removeFolder(ALICE_FOLDER); // clean previous version before
28+
AASPEngineFS.removeFolder(BOB_FOLDER); // clean previous version before
6129

6230
// alice writes a message into chunkStorage
6331
AASPStorage aliceStorage =
@@ -91,7 +59,7 @@ public void androidUsage() throws IOException, AASPException, InterruptedExcepti
9159
bobChannel.waitForConnection();
9260

9361
// run engine as thread
94-
AASPEngineThread aliceEngineThread = new AASPEngineThread(aliceEngine,
62+
AASPEngineThread aliceEngineThread = new AASPEngineThread(aliceEngine,
9563
aliceChannel.getInputStream(),
9664
aliceChannel.getOutputStream(),
9765
aliceListener);
@@ -118,7 +86,7 @@ public void androidUsage() throws IOException, AASPException, InterruptedExcepti
11886

11987
// get message alice received
12088
AASPChunkStorage aliceSenderStored =
121-
aliceStorage.getReceivedChunkStorage(aliceListener.getSender());
89+
aliceStorage.getIncomingChunkStorage(aliceListener.getSender());
12290

12391
AASPChunk aliceReceivedChunk =
12492
aliceSenderStored.getChunk(aliceListener.getUri(),
@@ -131,7 +99,7 @@ public void androidUsage() throws IOException, AASPException, InterruptedExcepti
13199

132100
// get message bob received
133101
AASPChunkStorage bobSenderStored =
134-
bobStorage.getReceivedChunkStorage(bobListener.getSender());
102+
bobStorage.getIncomingChunkStorage(bobListener.getSender());
135103

136104
AASPChunk bobReceivedChunk =
137105
bobSenderStored.getChunk(bobListener.getUri(),
@@ -141,5 +109,10 @@ public void androidUsage() throws IOException, AASPException, InterruptedExcepti
141109
bobReceivedChunk.getMessages().next();
142110

143111
Assert.assertEquals(ALICE2BOB_MESSAGE, bobReceivedMessage);
112+
113+
List<CharSequence> senderList = aliceStorage.getSender();
114+
// expect bob
115+
Assert.assertEquals(1, senderList.size());
116+
Assert.assertTrue(BOB.equalsIgnoreCase(senderList.get(0).toString()));
144117
}
145118
}

0 commit comments

Comments
 (0)