added RPC macro

This commit is contained in:
2023-07-10 22:56:07 +02:00
parent 10a061c41b
commit 5fa6c3ecbf
4 changed files with 127 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
package bin;
import kernel.log.Log;
import kernel.ps.ProcessHandle;
import kernel.ps.Process;
@@ -11,6 +12,13 @@ class HelloWorld implements Process {
public function run(handle:ProcessHandle) {
handle.write("Hello World!");
var c = new HelloWorldServiceRPC(0);
c.getNumber().handle((res)->{
Log.debug("Got number: " + res);
});
handle.close();
}
}

View File

@@ -1,26 +1,25 @@
package bin;
import kernel.Timer;
import macros.rpc.RPC;
import kernel.ps.ProcessHandle;
import kernel.ps.Process;
using tink.CoreApi;
@:build(macros.rpc.RPC.buildRPC())
class HelloWorldService implements Process {
private var timer:Timer;
private var handle:ProcessHandle;
public function new() {}
public function run(handle:ProcessHandle) {
handle.write("Hello World! Started\n");
this.startTimer(handle);
handle.addDeferFunc(()->{
timer.cancle();
});
this.handle = handle;
RPC.generateRPCPackageHandle();
}
public function startTimer(handle: ProcessHandle) {
this.timer = new Timer(5, function() {
handle.write("Hello World!\n");
this.startTimer(handle);
});
@rpc
public function getNumber():Int{
return 42;
}
}