Net::IMP::Remote::Protocol - protocol description for IMP RPC
There is a single connection between data provider and IMP RPC server per factory, e.g. no separate connections per analyzer. This enables fast creation and teardown of analyzers.
Most messages are asynchronous, e.g. expect no reply, so that the analyzer can continue even if the messages are not fully send yet. Only get_interface is synchronous.
get_interface
This exchanges the version of the protocol spoken. It is the first operation of IMP RPC server after a new client connected. The client will verify the version and close if it cannot speak it.
This sends the interface supported by the data provider and returns the matching interfaces from the IMP plugins inside the IMP RPC server. It's the only synchronous operation, expecting a interface message back. It will be called after establishing the connection, before any analyzers are created.
interface
This will be called by the data provider to fix the interface to the given one. If this given interface is not supported an exception will be generated asynchronously. But this should usually not happen, because the supported interfaces were queried before with get_interface. This function should be called after get_interface and before creating analyzers.
This will create a new analyzer. The uniq integer analyzer_id will be created by the data provider, so that the operation can be done asynchronously. The analyzer_Id will be used in subsequent data, result or exception calls in the context of the new analyzer. The analyzer_id should not be 0. The context is expected as a hash with string keys and string values.
analyzer_id
analyzer_Id
data
result
exception
If the IMP plugin is not interested in analyzing data inside the given context it can simply send IMP_PASS for both directions with offset set to IMP_MAX_OFFSET.
context
This will cause the deletion of the analyzer with the given analyzer_id.
This will send data from the data provider into the IMP plugin. For the meaning of the parameters see Net::IMP interface.
This notifies the data provider about problems with the given analyzer, which will usually result in closing the analyzer. If analyzer_id is 0 it will be interpreted as an exception for the whole factory and the factory including all analyzers should better shut down.
This is the reply message to a get_interface message from the data provider.
This will return the result for processing data. The arguments following the result_type are specific to the type, e.g.
result_type
11 POD Errors
The following errors were encountered while parsing the POD:
=over without closing =back
=over should be: '=over' or '=over positive_number'
To install Net::IMP::Remote, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::IMP::Remote
CPAN shell
perl -MCPAN -e shell install Net::IMP::Remote
For more information on module installation, please visit the detailed CPAN module installation guide.