Skip to content

Commit 0065df1

Browse files
committed
add lifesafety labs
1 parent beb0368 commit 0065df1

21 files changed

+207
-83
lines changed
361 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import client.ClientCycle;
21
import server.ServerCycle;
32

43
public class Main {
54
public static void main(String[] args) {
65
ServerCycle cycle = new ServerCycle();
7-
Thread thread = new Thread(cycle);
8-
thread.start();
6+
Thread thread1 = new Thread(cycle);
7+
thread1.start();
98
}
109
}

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

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,37 @@
11
package server.core;
22

3+
import server.core.promise.FinalizedPromises;
4+
import server.storage.StorageCycle;
35
import server.core.promise.Promise;
4-
import server.core.promise.mappers.ToPromise;
56
import server.network.NetworkDTO;
67
import server.network.NetworkManager;
78
import server.network.drivers.UDPDriver;
8-
9-
import java.util.function.Function;
9+
import server.storage.control.IStorageController;
10+
import server.storage.control.Queue;
1011

1112
public class Engine {
1213
private final NetworkManager network;
14+
private final IStorageController SAC;
15+
private final FinalizedPromises finalizedPromises;
1316

1417
public Engine(){
1518
UDPDriver driver = new UDPDriver(4055);
1619
this.network = new NetworkManager(driver);
20+
this.finalizedPromises = new FinalizedPromises();
21+
this.SAC = new Queue(this.finalizedPromises);
22+
23+
Thread thread2 = new Thread(
24+
new StorageCycle(this.SAC)
25+
);
26+
thread2.start();
1727
}
1828

1929
public void mainCycle(){
2030
try{
21-
Function<NetworkDTO, Promise> conv1 = ToPromise::fromNetworkDTO;
22-
Promise p1 = conv1.apply(this.network.recive());
23-
System.out.println(p1);
24-
31+
NetworkDTO in = this.network.recive();
32+
System.out.println(in);
33+
Promise p1 = SAC.add(in.opName(), in.args());
34+
System.out.println("eng: " + p1);
2535
}
2636
catch (Exception e){
2737

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package server.core.promise;
2+
3+
import java.util.ArrayDeque;
4+
import java.util.Deque;
5+
6+
public class FinalizedPromises {
7+
Deque<Promise> finishedOperations = new ArrayDeque<>();
8+
9+
public void add(Promise promise){
10+
this.finishedOperations.addLast(promise);
11+
}
12+
13+
public Promise get(){
14+
return finishedOperations.pollFirst();
15+
}
16+
17+
public boolean isEmpty(){
18+
return finishedOperations.isEmpty();
19+
}
20+
}

programming/sem2/lab5_v2/src/server/core/promise/Promise.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ public class Promise{
88
private final HashMap<String,String> args;
99
private HashMap<String,String> result = new HashMap<>();
1010
private String errorDescription;
11+
private final FinalizedPromises finalizedPromises;
1112

12-
public Promise(String opName, HashMap<String,String> args){
13+
public Promise(String opName, HashMap<String,String> args, FinalizedPromises finalizedPromises){
1314
this.opName = opName;
1415
this.args = args;
16+
this.finalizedPromises = finalizedPromises;
1517
}
1618

1719
public String getOperationName(){
@@ -29,6 +31,7 @@ public HashMap<String, String> getResult(){
2931
public void setResult(HashMap<String,String> result){
3032
this.result = result;
3133
this.status = PromiseStatus.FINISHED;
34+
this.finalizedPromises.add(this);
3235
}
3336

3437
public String getError(){
@@ -37,6 +40,7 @@ public String getError(){
3740
public void setError(String descr){
3841
this.errorDescription = descr;
3942
this.status = PromiseStatus.ERROR;
43+
this.finalizedPromises.add(this);
4044
}
4145

4246
public Enum<PromiseStatus> getStatus(){

programming/sem2/lab5_v2/src/server/core/promise/mappers/ToPromise.java

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package server.storage;
2+
3+
import server.storage.control.IStorageController;
4+
import server.storage.drivers.DequeDriver;
5+
6+
public class StorageCycle implements Runnable {
7+
private final StructureDaemon sd;
8+
9+
public StorageCycle(IStorageController queue){
10+
this.sd = new StructureDaemon(queue, new StructureManager(new DequeDriver()));
11+
System.out.println("controller setted");
12+
}
13+
public void run(){
14+
System.out.println("storage cycle started");
15+
this.sd.mainCycle();
16+
}
17+
}

0 commit comments

Comments
 (0)