-
Notifications
You must be signed in to change notification settings - Fork 0
Example for Namespaces, Classes and Interfaces
Ingo Randolf edited this page Apr 12, 2023
·
1 revision
Sketches and ideas how an implementation could look like.
// optional prefix: org.rabbitcontrol
rcp
RCPServer
RCPClient
rcp.transporter
ServerTransporter (interface)
ClientTransporter (interface)
WebsocketServerTransporter
WebsocketClientTransporter
...
rcp.parameter
Parameter (interface)
BooleanParameter
...
rcp.exceptions
RCPDataErrorException
RCPUnsupportedFeatureException
...
rcp.protocol
RcpTypes (generated from kaitai)
Packet
RCPServer(ServerTransporter transporter);
void dispose();
boolean addTransporter(ServerTransporter transporter);
boolean removeTransporter(ServerTransporter transporter);
int getConnectionCount();
boolean addParameter(Parameter param);
boolean removeParameter(Parameter param);
boolean update();
Events:
onError(Exception ex);
e.g.: # RCPWebSocketServer
void dispose();
void bind(String host, int port);
void unbind();
int getConnectionCount();
boolean addParameter(Parameter param);
boolean removeParameter(Parameter param);
boolean update();
Events:
onError(Exception ex);
RCPClient(ClientTransporter transporter);
void dispose();
void connect(String host, int port);
void disconnect();
void initialize(); // tries to send an init-command
void update(); // update all changes
Events:
parameterAdded(Parameter param);
parameterRemoved(Parameter param);
onError(Exception ex);
statusChanged(Status status, String message);
enum Status {
DISCONNECTED,
CONNECTED, // network connected
VERSION_MISSMATCH,
OK // connected and version ok
}
bind(int port);
unbind();
void sendToOne(byte[] _data, Object _id);
void sendToAll(byte[] _data, Object _excludeId);
int getConnectionCount();
Events:
received(byte[] _data, Object _id);
void connect(String host, int port);
void disconnect();
boolean isConnected();
void send(byte[] _data);
Events:
connected();
disconnected();
received(byte[] _data);