ProtecteddestructorDestroy the communicator.
A destroy function must be called when the network communication has been closed.
It would destroy all function calls in the remote system (by Driver<Controller>),
which are not returned yet.
The error instance would be thrown to those function calls. If the disconnection is abnormal, then write the detailed reason why into the error instance.
Optionalerror: ErrorAn error instance to be thrown to the unreturned functions.
Get Driver for RFC (Remote Function Call).
The Controller is an interface who defines provided functions from the remote
system. The Driver is an object who makes to call remote functions, defined in
the Controller and provided by Provider in the remote system, possible.
In other words, calling a functions in the Driver<Controller>, it means to call
a matched function in the remote system's Provider object.
Controller: Definition onlyDriver: Remote Function CallAn interface for provided features (functions & objects) from the remote system (Provider).
Whether to convert type of function parameters to be compatible with their primitive.
A Driver for the RFC.
Join connection.
Wait until the connection to be closed.
Join connection or timeout.
Wait until the connection to be closed until timeout.
The maximum milliseconds for joining.
Whether awaken by disconnection or timeout.
Join connection or time expiration.
Wait until the connection to be closed until time expiration.
The maximum time point to join.
Whether awaken by disconnection or time expiration.
Open server with Provider.
Open worker server and start communication with the client (WorkerConnector).
Note that, after your business, you should terminate this worker to prevent waste of memory leak. Close this worker by yourself (close) or let client to close this worker (WorkerConnector.close).
An object providing features for the client.
ProtectedreplyData Reply Function.
A function should be called when data has come from the remote system.
When you receive a message from the remote system, then parse the message with your special protocol and covert it to be an Invoke object. After the conversion, call this method.
Structured data converted by your special protocol.
Set Provider
An object would be provided for remote system.
Worker Server.
The
WorkerServeris a class representing aWorkerserver which communicate with client (WorkerConnector), through the RPC (Remote Procedure Call).Unlike other servers,
WorkerServercan accept only one client (WorkerConnector), because theWorkeris dependent on its parent instance (web page, node or parent worker). Thus,WorkerServerdoes not have any acceptor and communicates with client (its parent) directly.To start communication with the client, call the open method with
Providerinstance. After your business, don't forget closing thisWorkerinstance. If the termination is performed by the WorkerConnector, you can wait the closing signal through the join method.Also, when declaring this
WorkerServertype, you've to define three generic arguments;Header,ProviderandRemote. Those generic arguments must be same with the ones defined in the target WorkerConnector class (ProviderandRemotemust be reversed).For reference, the first
Headertype represents an initial data from the client after the connection. I recommend utilize it as an activation tool for security enhancement. The second generic argumentProviderrepresents a provider from server to client, and the otherRemotemeans a provider from the client to server.Author
Jeongho Nam - https://github.com/samchon