Start Evebnty Engine

This commit is contained in:
Tristan B. Velloza Kildaire 2021-09-15 14:33:15 +02:00
parent 940ea66bea
commit 2326195e90
1 changed files with 36 additions and 0 deletions

View File

@ -11,8 +11,11 @@ import eventy;
import core.thread : Thread; import core.thread : Thread;
import std.stdio;
unittest unittest
{ {
import std.stdio;
/** /**
* Server process * Server process
@ -34,6 +37,21 @@ unittest
while(true) while(true)
{ {
Socket client = servSocket.accept(); Socket client = servSocket.accept();
import bmessage;
byte[] data;
receiveMessage(client, data);
writeln("Server received: ", data);
byte[] dataOut = [69,0,0,0];
DataMessage dOut = new DataMessage(0, dataOut);
client.send(bmessage.encodeBformat(dOut.encode()));
/* Wait for a single byte (for preparation) */
// byte[] k = [1];
// client.receive(k);
} }
} }
}; };
@ -47,6 +65,11 @@ unittest
/* Start the task manager */ /* Start the task manager */
TaskManager taskManager = new TaskManager(conn); TaskManager taskManager = new TaskManager(conn);
taskManager.start();
/* Create a Task to submit as a job */
TestTask testTask = new TestTask("Hello, world, this is a test message");
taskManager.submitTask(testTask);
} }
public final class TaskManager : Thread public final class TaskManager : Thread
@ -77,6 +100,9 @@ public final class TaskManager : Thread
/* Initialize the event-loop */ /* Initialize the event-loop */
eventEngine = new Engine(); eventEngine = new Engine();
/* Start the event engine */
eventEngine.start();
/* Initialize job queue lock */ /* Initialize job queue lock */
jobsLock = new Mutex(); jobsLock = new Mutex();
@ -94,14 +120,20 @@ public final class TaskManager : Thread
/* Clean list (list of jobs to be removed) */ /* Clean list (list of jobs to be removed) */
Job[] cleanList; Job[] cleanList;
// writeln("Task: Loop begin");
foreach(Job job; jobs) foreach(Job job; jobs)
{ {
writeln("Tasky: Job process begin ", job);
/* If the job is fulfilled */ /* If the job is fulfilled */
if(job.isFulfilled()) if(job.isFulfilled())
{ {
/* Get the Event for dispatching */ /* Get the Event for dispatching */
Event dispatchEvent = job.getEventForDispatch(); Event dispatchEvent = job.getEventForDispatch();
writeln("Tasky: Job is fulfilled ", job);
/* Dispatch the event */ /* Dispatch the event */
eventEngine.push(dispatchEvent); eventEngine.push(dispatchEvent);
@ -111,6 +143,8 @@ public final class TaskManager : Thread
/* Add job to the deletion queue */ /* Add job to the deletion queue */
cleanList ~= job; cleanList ~= job;
} }
} }
/* Delete tje jobs */ /* Delete tje jobs */
@ -246,6 +280,8 @@ public final class TaskManager : Thread
/* Send the payload */ /* Send the payload */
manager.getSocket().send(bEncoded); manager.getSocket().send(bEncoded);
writeln("Tasky: Sent payload");
} }
/* If unsuccessful, throw exception */ /* If unsuccessful, throw exception */
else else