get local services
This commit is contained in:
parent
f8b226bae5
commit
2051f486d4
@ -1,5 +1,6 @@
|
||||
package bin;
|
||||
|
||||
import kernel.service.ServiceManager;
|
||||
import kernel.log.Log;
|
||||
import kernel.Timer;
|
||||
import kernel.ps.ProcessHandle;
|
||||
@ -11,7 +12,9 @@ class HelloWorldService implements Process {
|
||||
public function run(handle:ProcessHandle) {
|
||||
Log.debug("HelloWorldService started");
|
||||
handle.write("Hello World! Started\n");
|
||||
this.startTimer(handle);
|
||||
// this.startTimer(handle);
|
||||
var srv: HelloWorldService = ServiceManager.instance.get("HelloWorldService");
|
||||
srv.startTimer(handle);
|
||||
}
|
||||
|
||||
public function startTimer(handle: ProcessHandle) {
|
||||
|
@ -1,16 +1,17 @@
|
||||
package kernel.service;
|
||||
|
||||
import kernel.ps.Process;
|
||||
import kernel.ps.ProcessManager;
|
||||
import kernel.ps.ProcessHandle;
|
||||
import kernel.binstore.BinStore;
|
||||
|
||||
using tink.CoreApi;
|
||||
|
||||
class Service {
|
||||
private final binName:String;
|
||||
private final name:String;
|
||||
private final args:Array<String>;
|
||||
private var pid:PID;
|
||||
public final binName:String;
|
||||
public final name:String;
|
||||
public final args:Array<String>;
|
||||
public var pid:PID;
|
||||
public var ps: Process;
|
||||
|
||||
@:allow(kernel.service.ServiceManager)
|
||||
private function new(binName: String,name: String,?args: Array<String> ) {
|
||||
@ -26,9 +27,9 @@ class Service {
|
||||
throw new Error('Bin ${this.binName} not found');
|
||||
}
|
||||
|
||||
var ps = Type.createInstance(bin.c,this.args);
|
||||
this.ps = Type.createInstance(bin.c,this.args);
|
||||
|
||||
this.pid = ProcessManager.run(ps,{});
|
||||
this.pid = ProcessManager.run(this.ps,{});
|
||||
}
|
||||
|
||||
public function stop() {
|
||||
|
@ -128,4 +128,16 @@ class ServiceManager {
|
||||
}
|
||||
return running;
|
||||
}
|
||||
|
||||
public function get(name: String): Null<Dynamic> {
|
||||
if (!this.services.exists(name)){
|
||||
return null;
|
||||
}
|
||||
|
||||
// TODO: Maybe there is a way to check types here?
|
||||
|
||||
var srv = this.services.get(name);
|
||||
return srv.ps;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user