32 lines
798 B
Haxe
32 lines
798 B
Haxe
package bin.ns;
|
|
|
|
import kernel.KernelSettings;
|
|
import macros.rpc.RPCBase;
|
|
import kernel.net.Package.NetworkID;
|
|
|
|
using tink.CoreApi;
|
|
|
|
interface INameSystemRPC {
|
|
function setIDRecord(name:String, id:NetworkID):Noise;
|
|
function getIDRecord(name:String):Null<NetworkID>;
|
|
function removeIDRecord(name:String):Noise;
|
|
function listIDRecords():Array<{name:String, id:NetworkID}>;
|
|
}
|
|
|
|
@:build(macros.rpc.RPC.buildRPC(INameSystemRPC))
|
|
class NameSystemRPC extends RPCBase {
|
|
public static function getDefault():NameSystemRPC {
|
|
return new NameSystemRPC(KernelSettings.nameServer, "ns");
|
|
}
|
|
|
|
public static function resolve(input:String):Promise<Null<NetworkID>> {
|
|
if (input == "12345") {
|
|
return Promise.resolve(Std.parseInt(input));
|
|
}
|
|
|
|
var ns = getDefault();
|
|
|
|
return ns.getIDRecord(input);
|
|
}
|
|
}
|