Files
cc-haxe/src/lib/RessourceNames.hx
2023-06-04 16:28:26 +02:00

66 lines
2.1 KiB
Haxe

package lib;
import bin.srsc.PackageTypes.UnregisterRequest;
import kernel.log.Log;
import bin.srsc.PackageTypes.RegisterRequest;
import bin.srsc.PackageTypes.GetRequest;
import bin.srsc.SiteRessourceController;
import kernel.net.Net;
import kernel.net.Package.NetworkID;
using tink.CoreApi;
class RessourceNames {
private static final SITE_CONTROLLER:NetworkID = 0; // Temporary TODO: Change to real ID
public static function get(name: String, controllerID: NetworkID = -1): Promise<Null<NetworkID>> {
if (controllerID == -1) controllerID = SITE_CONTROLLER;
var payload: GetRequest = {name: name, type: "get"};
return Net.instance.sendAndAwait(
SITE_CONTROLLER,
SiteRessourceController.SITE_CONTROLLER_RESSOURCE_MANAGER_PROTO,
payload
).map((res)->{
switch (res){
case Success(pkg):
return Success(pkg.data.netID);
case Failure(error):
return Failure(error);
}
});
}
public static function register(name: String, netID: NetworkID, controllerID: NetworkID = -1): Promise<Bool> {
if (controllerID == -1) controllerID = SITE_CONTROLLER;
var payload: RegisterRequest = {name: name, netID: netID, type: "register"};
return Net.instance.sendAndAwait(
SITE_CONTROLLER,
SiteRessourceController.SITE_CONTROLLER_RESSOURCE_MANAGER_PROTO,
payload
).map((res)->{
switch (res){
case Success(pkg):
return Success(pkg.data.success);
case Failure(error):
return Failure(error);
}
});
}
public static function unregister(name: String, controllerID: NetworkID = -1): Promise<Noise> {
if (controllerID == -1) controllerID = SITE_CONTROLLER;
var payload: UnregisterRequest = {name: name, type: "unregister"};
return Net.instance.sendAndAwait(
SITE_CONTROLLER,
SiteRessourceController.SITE_CONTROLLER_RESSOURCE_MANAGER_PROTO,
payload
);
}
}