FairMQ: Parameterize the command interface initializing with sub socket

! THIS PATCH BREAKS NANOMSG TRANSPORT !

The subscriber command socket was created using the transport factory of
the channel which might not implement sub sockets. This patch creates
the subscriber command sockets in the device initialization and passes
them down (move) to the command interface initialization.

This patch puts more focus on the GetSocket interface of FairMQSocket,
because all command sockets are now implemented with the default
transport - the channels use an internal poller which polls over sockets
of potentially different transports now (e.g. zeromq command socket and
nanomsg data socket). Basically, all transports need to return file
descriptors compatible to be used in a single poll set. THIS IS NOT THE CASE!

! THIS PATCH BREAKS NANOMSG TRANSPORT !
This commit is contained in:
Dennis Klein
2018-02-19 18:44:08 +01:00
committed by Mohammad Al-Turany
parent 43a06e3cc7
commit e73fcbd595
4 changed files with 17 additions and 44 deletions

View File

@@ -322,7 +322,7 @@ class FairMQChannel
bool CheckCompatibility(std::vector<std::unique_ptr<FairMQMessage>>& msgVec) const;
void InitTransport(std::shared_ptr<FairMQTransportFactory> factory);
bool InitCommandInterface();
bool InitCommandInterface(FairMQSocketPtr channelCmdSocket);
bool HandleUnblock() const;