cc-haxe/src/kernel/net/Package.hx

55 lines
1007 B
Haxe
Raw Normal View History

2021-12-20 01:55:30 +01:00
package kernel.net;
enum PackageTypes {
Data(proto: String);
DataNoResponse(proto: String);
Response;
RouteDiscover();
RouteDiscoverResponse();
}
/**
Representing a network package.
**/
@:structInit class Package {
public final fromID:Int;
public final toID:Int;
public final msgID:Int;
public final type:PackageTypes;
public final data:Dynamic;
/**
Parse package from an `modem_message` event.
**/
public static function fromEvent(params: Array<Dynamic>): Package {
var payload = params[4];
return {
fromID: params[3],
toID: params[2],
msgID: payload.msgID,
type: payload.type,
data: payload.data,
};
}
/**
Create package that can be used as a response.
**/
public function createResponse(newData: Dynamic): Package {
return {
toID: fromID,
fromID: toID,
msgID: msgID,
type: Response,
data: newData
};
}
/**
Wrapper for `Net.instance.respondTo`.
**/
public function respond(data: Dynamic) {
Net.instance.respondTo(this,data);
}
}