Skip to content

Commit 1ead27c

Browse files
committed
wth is going on???
1 parent 4a9cba4 commit 1ead27c

File tree

85 files changed

+179
-110
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+179
-110
lines changed

programming/sem2/lab5_v2/src/main/java/client/commands/implementations/Info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ public final void execute(HashMap<String, String> args, Engine engine) throws Ex
2121
)
2222
);
2323
NetworkResponseDTO nmr = engine.networkManager.receive();
24-
System.out.println(nmr);
24+
System.out.println(nmr.result());
2525
}
2626
}

programming/sem2/lab5_v2/src/main/java/client/commands/implementations/Show.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import shared.objects.NetworkRequestDTO;
77
import shared.objects.NetworkResponseDTO;
88

9+
import java.util.Arrays;
910
import java.util.HashMap;
1011

1112
public class Show extends BasicCommand {

programming/sem2/lab5_v2/src/main/java/client/network/NetworkManager.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import shared.objects.NetworkResponseDTO;
55

66
import java.io.*;
7+
import java.util.Arrays;
78

89
public class NetworkManager {
910
INetworkDriver driver;
@@ -22,7 +23,7 @@ public void send(Object obj) throws IOException{
2223
this.serialize(obj)
2324
);
2425
}
25-
public NetworkResponseDTO receive() throws IOException, ClassNotFoundException{
26+
public NetworkResponseDTO<byte[]> receive() throws IOException, ClassNotFoundException{
2627
return this.deserialize(
2728
this.driver.receive()
2829
);
@@ -35,17 +36,16 @@ private byte[] serialize(Object obj) throws IOException {
3536
oos.close();
3637
return bos.toByteArray();
3738
}
38-
private NetworkResponseDTO deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
39+
private NetworkResponseDTO<byte[]> deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
3940
//if (bytes == null) return null;
40-
System.out.println(bytes);
41-
for (byte b: bytes){
42-
System.out.print(b + " ");
43-
}
41+
//System.out.println(Arrays.toString(bytes));
42+
//for (byte b: bytes) System.out.print(b + " ");
43+
4444
InputStream is = new ByteArrayInputStream(bytes);
4545
ObjectInputStream ois = new ObjectInputStream(is);
4646

47-
NetworkResponseDTO cached = (NetworkResponseDTO) ois.readObject();
48-
System.out.println(cached);
47+
NetworkResponseDTO<byte[]> cached = (NetworkResponseDTO<byte[]>) ois.readObject();
48+
//System.out.println(cached);
4949
return cached;
5050
}
5151
}

programming/sem2/lab5_v2/src/main/java/client/network/drivers/UDPDriver.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class UDPDriver implements INetworkDriver {
1515
DatagramChannel channel;
1616
SocketAddress myAddr;
1717
SocketAddress targetAddr;
18-
private final int PACKET_SIZE = 1024;
18+
private final int PACKET_SIZE = 4096;
1919
private final int DATA_SIZE = PACKET_SIZE - 1;
2020

2121
public UDPDriver(int myPort, int targetPort) {
@@ -40,15 +40,15 @@ public void send(byte[] data) throws IOException {
4040
public byte[] receive() throws IOException{
4141
ByteBuffer buf = ByteBuffer.allocate(DATA_SIZE);
4242

43-
System.out.println("receiving...");
44-
System.out.println(buf);
43+
//System.out.println("receiving...");
44+
//System.out.println(buf);
4545

4646
SocketAddress addr = channel.receive(buf);
4747

48-
System.out.println("received: " + addr);
48+
//System.out.println("received: " + addr);
4949

5050
if (addr != null) {
51-
System.out.println("receive buffer dump");
51+
//System.out.println("receive buffer dump");
5252
return buf.array();
5353
}
5454
return null;

programming/sem2/lab5_v2/src/main/java/server/core/Engine.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
import server.storage.collection.drivers.IStructDriver;
1313
import shared.objects.NetworkRequestDTO;
1414

15-
public class Engine {
15+
public class Engine <S,D> {
1616

1717
private final CommandFactory commandFactory;
18-
private final ResponseFactory responseFactory;
19-
private final RequestFactory requestFactory;
18+
private final ResponseFactory<S> responseFactory;
19+
private final RequestFactory<D> requestFactory;
2020

2121
private final ExecutorService commandExecutor;
2222
private final ExecutorService sendExecutor;
@@ -26,7 +26,7 @@ public Engine(
2626
ExecutorService receiveExecutor,
2727
ExecutorService sendExecutor,
2828
ExecutorService commandExecutor,
29-
INetworkSerializers networkSerializer,
29+
INetworkSerializers<S,D> networkSerializer,
3030
IStructDriver structDriver
3131
) {
3232
try {
@@ -37,8 +37,8 @@ public Engine(
3737
this.sendExecutor = sendExecutor;
3838

3939
this.commandFactory = new CommandFactory(structDriver);
40-
this.responseFactory = new ResponseFactory(networkDriver, networkSerializer);
41-
this.requestFactory = new RequestFactory(networkDriver, networkSerializer, receiveExecutor, this);
40+
this.responseFactory = new ResponseFactory<>(networkDriver, networkSerializer::serialize);
41+
this.requestFactory = new RequestFactory<>(networkDriver, networkSerializer::deserialize, receiveExecutor, this);
4242
}
4343
public void start(){
4444
this.requestFactory.run();

programming/sem2/lab5_v2/src/main/java/server/core/factories/CommandFactory.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import java.util.HashMap;
44
import java.util.concurrent.CompletableFuture;
55

6+
import org.json.JSONObject;
67
import server.network.container.NetworkContainer;
78
import server.storage.collection.drivers.IStructDriver;
89
import server.storage.commands.CommandsManager;
910
import shared.objects.NetworkRequestDTO;
11+
import shared.objects.NetworkResponseDTO;
1012

1113
public class CommandFactory {
1214
private final CommandsManager commandsManager;
@@ -17,7 +19,7 @@ public CommandFactory(IStructDriver structDriver) {
1719
);
1820
}
1921

20-
public CompletableFuture<NetworkContainer<HashMap<String,String>>> run(
22+
public CompletableFuture<NetworkContainer<JSONObject>> run(
2123
NetworkContainer<NetworkRequestDTO> data
2224
) {
2325
return commandsManager.run(

programming/sem2/lab5_v2/src/main/java/server/core/factories/RequestFactory.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
import server.core.Engine;
66
import server.network.drivers.INetworkDriver;
77
import server.network.managers.ReceiveManager;
8+
import server.network.serializers.INetworkDeserialize;
89
import server.network.serializers.INetworkSerializers;
910

10-
public class RequestFactory {
11-
private final ReceiveManager receiveManager;
11+
public class RequestFactory<T> {
12+
private final ReceiveManager<T> receiveManager;
1213
private final ExecutorService executor;
1314
private final Engine engine;
1415

15-
public RequestFactory(INetworkDriver networkDriver, INetworkSerializers serializer, ExecutorService executor, Engine engine) {
16-
this.receiveManager = new ReceiveManager(
16+
public RequestFactory(INetworkDriver networkDriver, INetworkDeserialize<T> serializer, ExecutorService executor, Engine engine) {
17+
this.receiveManager = new ReceiveManager<>(
1718
networkDriver,
1819
serializer
1920
);

programming/sem2/lab5_v2/src/main/java/server/core/factories/ResponseFactory.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
package server.core.factories;
22

3+
import org.json.JSONObject;
34
import server.network.container.NetworkContainer;
45
import server.network.drivers.INetworkDriver;
56
import server.network.managers.SendManager;
7+
import server.network.serializers.INetworkSerialize;
68
import server.network.serializers.INetworkSerializers;
79
import shared.objects.NetworkResponseDTO;
810

911
import java.util.HashMap;
1012
import java.util.concurrent.CompletableFuture;
1113

12-
public class ResponseFactory {
13-
private final SendManager sendManager;
14+
public class ResponseFactory<T> {
15+
private final SendManager<T> sendManager;
1416

15-
public ResponseFactory(INetworkDriver networkDriver, INetworkSerializers serializer) {
16-
this.sendManager = new SendManager(
17+
public ResponseFactory(INetworkDriver networkDriver, INetworkSerialize<T> serializer) {
18+
this.sendManager = new SendManager<>(
1719
networkDriver,
1820
serializer
1921
);
2022
}
2123

2224
public CompletableFuture<Void> run(
23-
NetworkContainer<HashMap<String,String>> data
25+
NetworkContainer<NetworkResponseDTO<T>> data
2426
) {
2527
return CompletableFuture.supplyAsync(
2628
() -> new NetworkContainer<>(
2729
data.socketAddress(),
28-
new NetworkResponseDTO(data.data())
30+
new NetworkResponseDTO<>(data.data().toString())
2931
)
3032
).thenCompose(
3133
sendManager::call

programming/sem2/lab5_v2/src/main/java/server/network/drivers/implementations/UDPDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class UDPDriver implements INetworkDriver {
1414
DatagramChannel channel;
1515
int port;
1616
SocketAddress addr;
17-
private final int PACKET_SIZE = 1024;
17+
private final int PACKET_SIZE = 4096;
1818
private final int DATA_SIZE = PACKET_SIZE - 1;
1919

2020
public UDPDriver(int port) {

programming/sem2/lab5_v2/src/main/java/server/network/managers/ReceiveManager.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,25 @@
22

33
import java.io.IOException;
44
import java.util.concurrent.CompletableFuture;
5+
import java.util.function.Function;
56

67
import server.network.container.NetworkContainer;
78
import server.network.drivers.INetworkDriver;
9+
import server.network.serializers.INetworkDeserialize;
10+
import server.network.serializers.INetworkSerialize;
811
import server.network.serializers.INetworkSerializers;
912
import shared.objects.NetworkRequestDTO;
1013

11-
public class ReceiveManager {
14+
public class ReceiveManager<T>{
1215
private final INetworkDriver driver;
13-
private final INetworkSerializers serializer;
16+
private final INetworkDeserialize<T> serializer;
1417

15-
public ReceiveManager(INetworkDriver driver, INetworkSerializers serializer) {
18+
public ReceiveManager(INetworkDriver driver, INetworkDeserialize<T> serializer) {
1619
this.driver = driver;
1720
this.serializer = serializer;
1821
}
1922

20-
public CompletableFuture<NetworkContainer<NetworkRequestDTO>> call() throws IOException, ClassNotFoundException {
23+
public CompletableFuture<NetworkContainer<T>> call() throws IOException, ClassNotFoundException {
2124
return CompletableFuture.supplyAsync(
2225
() -> {
2326
try {
@@ -32,7 +35,7 @@ public CompletableFuture<NetworkContainer<NetworkRequestDTO>> call() throws IOEx
3235
try {
3336
return new NetworkContainer<>(
3437
res.socketAddress(),
35-
this.serializer.deserialize(
38+
this.serializer.apply(
3639
res.data()
3740
));
3841
} catch (IOException | ClassNotFoundException e) {

0 commit comments

Comments
 (0)