55 lines
1007 B
Haxe
55 lines
1007 B
Haxe
|
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);
|
||
|
}
|
||
|
}
|