MIRA
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
ConcreteRemoteOutgoingConnection< BinaryFormatVersion > Class Template Referenceabstract

#include <fw/RemoteConnection.h>

Inheritance diagram for ConcreteRemoteOutgoingConnection< BinaryFormatVersion >:
Inheritance graph
[legend]

Public Types

typedef std::map< std::string, TypenameChannelTypeMap
 
typedef std::set< std::string > StringSet
 
typedef std::map< std::string, SendDataChannelSendMap
 
typedef std::set< std::string > MetaSet
 
typedef std::list< AuthorityDescriptionAuthorityDescriptions
 

Public Member Functions

template<typename Reflector >
void reflect (Reflector &r)
 
virtual void start ()
 Implementation of RemoteConnection. More...
 
boost::asio::ip::tcp::socket & getSocket ()
 Returns the network socket of this connection. More...
 
void stop ()
 Close the socket. More...
 
void onConnect (bool enablePTPTimeSync, bool enablePingTimeout)
 Called by RemoteModule::onIncomingConnected/onOutgoingConnected. More...
 
bool isPTPSyncEnabled ()
 Is synchronization of clocks via PTP enabled? More...
 
bool isPingTimeoutEnabled ()
 Is ping timeout enabled? More...
 
void startTimeSync ()
 Create a timer to frequently call syncTime. More...
 
bool isSynchronized () const
 synchronizeFrameworks() was executed. More...
 
virtual void publishChannels (const ChannelTypeMap &channels)=0
 Notifies the connected framework that we have at least one publisher for each of the channels in the channels map. More...
 
void unpublishChannel (const std::string &channel)
 Notifies the connected framework that we no longer have a publisher for the given channel. More...
 
virtual void subscribeChannel (const std::string &channelID, const ServiceLevel &serviceLevel)=0
 Notify the connected remote frameworks that we have a subscriber for the given channel (assuming it has a publisher for it). More...
 
virtual void publishAuthorities (const AuthorityDescriptions &authorities)=0
 Notifies the connected framework that the authorities in the authorities map exist in our framework. More...
 
virtual void unpublishAuthorities (const AuthorityDescriptions &authorities)=0
 Notifies the connected framework that the authorities in the authorities map do not longer exist in our framework. More...
 
void migrateUnit (const std::string &id)
 Send a request to the connected framework to transfer ownership of a unit to this framework. More...
 
bool hasAuthority (const std::string &id) const
 Check if a authority with given full id exists in the connected framework. More...
 
virtual void publishServices (const StringSet &services)=0
 Notifies the connected framework that the services in the services set exist in our framework. More...
 
virtual void unpublishServices (const StringSet &services)=0
 Notifies the connected framework that the services in the services set do not longer exist in our framework. More...
 
template<typename BufferSequence >
void write (const BufferSequence &buffers)
 Send data in the buffers to the connected framework. More...
 
UUID getRemoteID () const
 
std::string getGlobalID () const
 
void setAuthority (std::unique_ptr< Authority > auth)
 
const std::string & getFrameworkID () const
 
const KnownFrameworkgetAddress () const
 
void setAddress (const KnownFramework &addr)
 
void setAutoReconnect (bool autoReconnect)
 
Class const & getClass () const
 call the virtual internalGetClass(). More...
 

Static Public Member Functions

static PseudoClass const & CLASS ()
 

Protected Types

enum  AuthState {
  AUTHSTATE_NONE, AUTHSTATE_CONNECTING, AUTHSTATE_AUTHENTICATING, AUTHSTATE_ACCEPTED,
  AUTHSTATE_DENIED
}
 
typedef std::pair< FrameworkMessageType, Buffer< uint8 > > RPCMessage
 

Protected Member Functions

 ConcreteRemoteOutgoingConnection (const KnownFramework &address)
 
virtual void onDisconnect ()
 Implementation of RemoteConnection. More...
 
virtual void onWriteError (boost::system::system_error &e)
 Implementation of RemoteConnection. More...
 
void handleConnect (const boost::system::error_code &error, boost::asio::ip::tcp::resolver::iterator iterator)
 
void handleReadHeader (const boost::system::error_code &error)
 
void handleReadMessage (const boost::system::error_code &error)
 
void syncTime ()
 Time synchronization between frameworks. More...
 
void sendPTP ()
 Sends a PTP command used for time synchronization between frameworks. More...
 
void ping ()
 Sends a ping command. More...
 
bool hasPingTimeout () const
 Check if the connection incoming ping's are still alive. More...
 
void writeMessage (FrameworkMessageType msg)
 Writes a message to the other framework. More...
 
template<typename Arg , typename... Args>
void writeMessage (FrameworkMessageType msg, Arg &&arg, Args &&... args)
 Writes a message to the other framework. More...
 
template<typename BufferType >
void writeMessageFromBuffer (FrameworkMessageType msg, const BufferType &buffer)
 Writes a message to the other framework. More...
 
template<typename DataType >
void writeMessageFromData (FrameworkMessageType msg, const DataType &data)
 Writes a message to the other framework. More...
 
void queueRPCMessage (FrameworkMessageType msg, Buffer< uint8 > &&answer)
 Queue an outgoing RPC request or RPC response to be transmitted in a separate thread. More...
 
void valueChanged (ChannelRead< void > value, ServiceLevel &serviceLevel)
 Channel callback method that gets registered on each channel the connected framework subscribes. More...
 
void parseMessage ()
 Parses an incoming message (stored in mMessage) and calls the respective receivedXXX method. More...
 
void receivedPTPFollowUp (uint64 timestamp)
 
void receivedPTPDelayResponse (uint64 timestamp)
 
void receivedPTPDelayRequest (uint64 timestamp)
 
void receivedPTPFinish ()
 
void receivedSubscribeChannelRequest ()
 
void receivedUnsubscribeChannelRequest (const std::string &channelID)
 
void receivedPublishChannelMsg ()
 
void receivedUnpublishChannelMsg ()
 
void receivedPublishAuthorityMsg ()
 
void receivedUnpublishAuthorityMsg ()
 
virtual void receivedPublishServiceMsg ()=0
 
void receivedUnpublishServiceMsg ()
 
void receivedWriteChannelMsg ()
 
virtual void receivedRPCRequestMsg ()=0
 
virtual void receivedRPCResponseMsg ()=0
 
void receivedRequestMigrationMsg ()
 
void receivedMigrationMsg ()
 
void receivedMigrationSinkSuccessMsg ()
 
void receivedMigrationSinkFailureMsg ()
 
void receivedMigrationFinishedMsg ()
 
void receivedTypeMetaMsg ()
 
void receivedChannelMetaMsg ()
 
void receivedPingMsg ()
 
virtual void sendData (ChannelRead< void > value, ServiceLevel &serviceLevel)
 
virtual int addBinaryFormatVersion (Buffer< uint8 > &data)=0
 
void synchronizeFrameworks ()
 
void updateOutgoingStats (std::size_t size)
 
bool checkMessageHeader () const
 Returns true, if the message (header) is valid, i.e. More...
 
void sendConnectDenied (const std::string &msg)
 
void sendRPCMessagesThread ()
 
void processPingThread ()
 
void checkPingTimeoutThread ()
 
void sendChannelUpdatesThread ()
 
virtual Class const & internalGetClass () const =0
 
virtual void publishChannels (const ChannelTypeMap &channels)
 Notifies the connected framework that we have at least one publisher for each of the channels in the channels map. More...
 
virtual void subscribeChannel (const std::string &channelID, const ServiceLevel &serviceLevel)
 Notify the connected remote frameworks that we have a subscriber for the given channel (assuming it has a publisher for it). More...
 
virtual void publishAuthorities (const AuthorityDescriptions &authorities)
 Notifies the connected framework that the authorities in the authorities map exist in our framework. More...
 
virtual void unpublishAuthorities (const AuthorityDescriptions &authorities)
 Notifies the connected framework that the authorities in the authorities map do not longer exist in our framework. More...
 
virtual void publishServicesFiltered (const StringSet &services)
 
virtual void publishServices (const StringSet &services)
 Notifies the connected framework that the services in the services set exist in our framework. More...
 
virtual void unpublishServicesFiltered (const StringSet &services)
 
virtual void unpublishServices (const StringSet &services)
 Notifies the connected framework that the services in the services set do not longer exist in our framework. More...
 
virtual void sendData (ChannelRead< void > value, ServiceLevel &serviceLevel)
 
virtual int addBinaryFormatVersion (Buffer< uint8 > &data)
 
virtual void receivedPublishServiceMsg ()
 
virtual void receivedRPCRequestMsg ()
 
virtual void receivedRPCResponseMsg ()
 

Protected Attributes

std::string mHostName
 
uint16 mPort
 
bool mStopScheduled
 
KnownFramework address
 The address of the connected framework. More...
 
UUID remoteID
 The UUID of the connected framework. More...
 
std::string frameworkID
 The ID/Name of the connected framework. More...
 
uint32 remoteVersion
 The protocol version of the connected framework. More...
 
std::unique_ptr< Authorityauthority
 Our authority used for subscribing to data. More...
 
ChannelSendMap subscriptions
 List of channels the connected framework is subscribed to + what was sent to them. More...
 
MetaSet sentMetaInformation
 Set of type meta information already sent. More...
 
StringSet publishedServices
 List of services of the connected framework. More...
 
Time synchronizedTime
 Time when the connection was fully established (e.g. PTP synchronized) More...
 
bool mEnablePTPSync
 PTP Sync enabled for this connection? More...
 
bool mEnablePingTimeout
 Ping timeout enabled for this connection? More...
 
TimeOffsetCompensation clockOffset
 The clock offset between us and the connected framework. More...
 
IOService mService
 
boost::asio::ip::tcp::socket mSocket
 
boost::condition_variable mRPCMessagesCondition
 
boost::mutex mWriteMutex
 
boost::mutex mStopMutex
 
TimerPtr mSyncTimeTimer
 
boost::thread mSendRPCMessagesThread
 
boost::thread mProcessPingThread
 
boost::thread mCheckPingTimeoutThread
 
boost::thread mSendChannelUpdatesThread
 
Time mHeaderReceived
 
FrameworkMessageHeader mHeader
 
Buffer< uint8 > mMessage
 
AuthState mAuthState
 
std::string mAuthSignMsg
 
bool mPTPOutgoing
 
Time mPTPSyncLocal
 
Time mPTPSyncRemote
 
Time mPTPDelayLocal
 
Time mPTPDelayRemote
 
Time mLastPTP
 
Time mPingLastSend
 
Time mPingLastReceived
 
boost::shared_ptr< MicroUnitmMigrationUnit
 
std::string mMigrationNS
 
std::string mMigrationID
 
bool mStopped
 
boost::shared_ptr< RPCRemoteFinishHandlermRPCFinishHandler
 
boost::shared_ptr< RPCRemoteRequestHandlermRPCRequestHandler
 
std::map< std::string, boost::shared_ptr< RemoteAuthority > > mRemoteAuthorities
 
std::list< RPCMessagemOutgoingRPCMessages
 
boost::mutex mRPCMessagesMutex
 
std::unordered_map< std::string, ServiceLevelmPendingChannelUpdates
 
boost::mutex mChannelUpdatesMutex
 

Friends

class RemoteConnectionPool
 
class ClassFactoryDefaultConstClassBuilder
 

Member Typedef Documentation

◆ ChannelTypeMap

typedef std::map<std::string, Typename> ChannelTypeMap
inherited

◆ StringSet

typedef std::set<std::string> StringSet
inherited

◆ ChannelSendMap

typedef std::map<std::string, SendData> ChannelSendMap
inherited

◆ MetaSet

typedef std::set<std::string> MetaSet
inherited

◆ AuthorityDescriptions

typedef std::list<AuthorityDescription> AuthorityDescriptions
inherited

◆ RPCMessage

typedef std::pair<FrameworkMessageType, Buffer<uint8> > RPCMessage
protectedinherited

Member Enumeration Documentation

◆ AuthState

enum AuthState
protectedinherited
Enumerator
AUTHSTATE_NONE 
AUTHSTATE_CONNECTING 
AUTHSTATE_AUTHENTICATING 
AUTHSTATE_ACCEPTED 
AUTHSTATE_DENIED 

Constructor & Destructor Documentation

◆ ConcreteRemoteOutgoingConnection()

ConcreteRemoteOutgoingConnection ( const KnownFramework address)
inlineprotected

Member Function Documentation

◆ reflect()

void reflect ( Reflector &  r)
inlineinherited

◆ start()

virtual void start ( )
virtualinherited

Implementation of RemoteConnection.

Reimplemented from RemoteConnection.

◆ onDisconnect()

virtual void onDisconnect ( )
protectedvirtualinherited

Implementation of RemoteConnection.

Reimplemented from RemoteConnection.

◆ onWriteError()

virtual void onWriteError ( boost::system::system_error &  e)
protectedvirtualinherited

Implementation of RemoteConnection.

Reimplemented from RemoteConnection.

◆ handleConnect()

void handleConnect ( const boost::system::error_code &  error,
boost::asio::ip::tcp::resolver::iterator  iterator 
)
protectedinherited

◆ handleReadHeader()

void handleReadHeader ( const boost::system::error_code &  error)
protectedinherited

◆ handleReadMessage()

void handleReadMessage ( const boost::system::error_code &  error)
protectedinherited

◆ getSocket()

boost::asio::ip::tcp::socket& getSocket ( )
inlineinherited

Returns the network socket of this connection.

◆ stop()

void stop ( )
inherited

Close the socket.

◆ onConnect()

void onConnect ( bool  enablePTPTimeSync,
bool  enablePingTimeout 
)
inherited

Called by RemoteModule::onIncomingConnected/onOutgoingConnected.

Provides the RemoteModule settings for enabling PTP sync and ping timeout, which should be kept by the RemoteConnection through its lifetime.

◆ isPTPSyncEnabled()

bool isPTPSyncEnabled ( )
inlineinherited

Is synchronization of clocks via PTP enabled?

◆ isPingTimeoutEnabled()

bool isPingTimeoutEnabled ( )
inlineinherited

Is ping timeout enabled?

◆ startTimeSync()

void startTimeSync ( )
inherited

Create a timer to frequently call syncTime.

Time sync must be completed at least once before data is transmitted (if ping timeout is enabled in the RemoteModule, time sync is automatically done in the ping thread and the timer should not be created).

◆ isSynchronized()

bool isSynchronized ( ) const
inlineinherited

synchronizeFrameworks() was executed.

The connection is fully established, time was synchronized at least once (if enabled and required) and authorities/channels/services have been published to the remote framework (unless monitor-only).

◆ publishChannels() [1/2]

virtual void publishChannels ( const ChannelTypeMap channels)
pure virtualinherited

Notifies the connected framework that we have at least one publisher for each of the channels in the channels map.

Implemented in ConcreteRemoteConnection< BinaryFormatVersion >, and ConcreteRemoteConnection< 2 >.

◆ unpublishChannel()

void unpublishChannel ( const std::string &  channel)
inherited

Notifies the connected framework that we no longer have a publisher for the given channel.

◆ subscribeChannel() [1/2]

virtual void subscribeChannel ( const std::string &  channelID,
const ServiceLevel serviceLevel 
)
pure virtualinherited

Notify the connected remote frameworks that we have a subscriber for the given channel (assuming it has a publisher for it).

Implemented in ConcreteRemoteConnection< BinaryFormatVersion >, and ConcreteRemoteConnection< 2 >.

◆ publishAuthorities() [1/2]

virtual void publishAuthorities ( const AuthorityDescriptions authorities)
pure virtualinherited

Notifies the connected framework that the authorities in the authorities map exist in our framework.

Implemented in ConcreteRemoteConnection< BinaryFormatVersion >, and ConcreteRemoteConnection< 2 >.

◆ unpublishAuthorities() [1/2]

virtual void unpublishAuthorities ( const AuthorityDescriptions authorities)
pure virtualinherited

Notifies the connected framework that the authorities in the authorities map do not longer exist in our framework.

Implemented in ConcreteRemoteConnection< BinaryFormatVersion >, and ConcreteRemoteConnection< 2 >.

◆ migrateUnit()

void migrateUnit ( const std::string &  id)
inherited

Send a request to the connected framework to transfer ownership of a unit to this framework.

◆ hasAuthority()

bool hasAuthority ( const std::string &  id) const
inherited

Check if a authority with given full id exists in the connected framework.

◆ publishServices() [1/2]

virtual void publishServices ( const StringSet services)
pure virtualinherited

Notifies the connected framework that the services in the services set exist in our framework.

Implemented in ConcreteRemoteConnection< BinaryFormatVersion >, and ConcreteRemoteConnection< 2 >.

◆ unpublishServices() [1/2]

virtual void unpublishServices ( const StringSet services)
pure virtualinherited

Notifies the connected framework that the services in the services set do not longer exist in our framework.

Implemented in ConcreteRemoteConnection< BinaryFormatVersion >, and ConcreteRemoteConnection< 2 >.

◆ write()

void write ( const BufferSequence &  buffers)
inlineinherited

Send data in the buffers to the connected framework.

Parameters
[in]buffersThe data to send

◆ getRemoteID()

UUID getRemoteID ( ) const
inlineinherited

◆ getGlobalID()

std::string getGlobalID ( ) const
inlineinherited

◆ setAuthority()

void setAuthority ( std::unique_ptr< Authority auth)
inlineinherited

◆ getFrameworkID()

const std::string& getFrameworkID ( ) const
inlineinherited

◆ getAddress()

const KnownFramework& getAddress ( ) const
inlineinherited

◆ setAddress()

void setAddress ( const KnownFramework addr)
inlineinherited

◆ setAutoReconnect()

void setAutoReconnect ( bool  autoReconnect)
inlineinherited

◆ syncTime()

void syncTime ( )
protectedinherited

Time synchronization between frameworks.

For local connected frameworks the method synchronizeFrameworks will be called. For frameworks on remote hosts sendPTP will be called.

◆ sendPTP()

void sendPTP ( )
protectedinherited

Sends a PTP command used for time synchronization between frameworks.

◆ ping()

void ping ( )
protectedinherited

Sends a ping command.

This method ensures, that the ping is not send more than the configured interval in the RemoteModule.

◆ hasPingTimeout()

bool hasPingTimeout ( ) const
protectedinherited

Check if the connection incoming ping's are still alive.

◆ writeMessage() [1/2]

void writeMessage ( FrameworkMessageType  msg)
inlineprotectedinherited

Writes a message to the other framework.

This method takes just the message type.

◆ writeMessage() [2/2]

void writeMessage ( FrameworkMessageType  msg,
Arg &&  arg,
Args &&...  args 
)
inlineprotectedinherited

Writes a message to the other framework.

This method takes the message type and a variable number of parameters that are sent within the message.

◆ writeMessageFromBuffer()

void writeMessageFromBuffer ( FrameworkMessageType  msg,
const BufferType &  buffer 
)
inlineprotectedinherited

Writes a message to the other framework.

Instead of writing parameters into a buffer for generating the message, this method expects a buffer as parameter directly, e.g. created by serializing data.

◆ writeMessageFromData()

void writeMessageFromData ( FrameworkMessageType  msg,
const DataType &  data 
)
inlineprotectedinherited

Writes a message to the other framework.

Instead of writing the parameter into a buffer for generating the message, (as writeMessage does), this method uses the parameter memory location directly.

◆ queueRPCMessage()

void queueRPCMessage ( FrameworkMessageType  msg,
Buffer< uint8 > &&  answer 
)
protectedinherited

Queue an outgoing RPC request or RPC response to be transmitted in a separate thread.

msg must be either RPC_RESPONSE_MSG or RPC_REQUEST_MSG

◆ valueChanged()

void valueChanged ( ChannelRead< void >  value,
ServiceLevel serviceLevel 
)
protectedinherited

Channel callback method that gets registered on each channel the connected framework subscribes.

When data in the channel changes it is sent to the connected framework.

◆ parseMessage()

void parseMessage ( )
protectedinherited

Parses an incoming message (stored in mMessage) and calls the respective receivedXXX method.

◆ receivedPTPFollowUp()

void receivedPTPFollowUp ( uint64  timestamp)
protectedinherited

◆ receivedPTPDelayResponse()

void receivedPTPDelayResponse ( uint64  timestamp)
protectedinherited

◆ receivedPTPDelayRequest()

void receivedPTPDelayRequest ( uint64  timestamp)
protectedinherited

◆ receivedPTPFinish()

void receivedPTPFinish ( )
protectedinherited

◆ receivedSubscribeChannelRequest()

void receivedSubscribeChannelRequest ( )
protectedinherited

◆ receivedUnsubscribeChannelRequest()

void receivedUnsubscribeChannelRequest ( const std::string &  channelID)
protectedinherited

◆ receivedPublishChannelMsg()

void receivedPublishChannelMsg ( )
protectedinherited

◆ receivedUnpublishChannelMsg()

void receivedUnpublishChannelMsg ( )
protectedinherited

◆ receivedPublishAuthorityMsg()

void receivedPublishAuthorityMsg ( )
protectedinherited

◆ receivedUnpublishAuthorityMsg()

void receivedUnpublishAuthorityMsg ( )
protectedinherited

◆ receivedPublishServiceMsg() [1/2]

virtual void receivedPublishServiceMsg ( )
protectedpure virtualinherited

◆ receivedUnpublishServiceMsg()

void receivedUnpublishServiceMsg ( )
protectedinherited

◆ receivedWriteChannelMsg()

void receivedWriteChannelMsg ( )
protectedinherited

◆ receivedRPCRequestMsg() [1/2]

virtual void receivedRPCRequestMsg ( )
protectedpure virtualinherited

◆ receivedRPCResponseMsg() [1/2]

virtual void receivedRPCResponseMsg ( )
protectedpure virtualinherited

◆ receivedRequestMigrationMsg()

void receivedRequestMigrationMsg ( )
protectedinherited

◆ receivedMigrationMsg()

void receivedMigrationMsg ( )
protectedinherited

◆ receivedMigrationSinkSuccessMsg()

void receivedMigrationSinkSuccessMsg ( )
protectedinherited

◆ receivedMigrationSinkFailureMsg()

void receivedMigrationSinkFailureMsg ( )
protectedinherited

◆ receivedMigrationFinishedMsg()

void receivedMigrationFinishedMsg ( )
protectedinherited

◆ receivedTypeMetaMsg()

void receivedTypeMetaMsg ( )
protectedinherited

◆ receivedChannelMetaMsg()

void receivedChannelMetaMsg ( )
protectedinherited

◆ receivedPingMsg()

void receivedPingMsg ( )
protectedinherited

◆ sendData() [1/2]

virtual void sendData ( ChannelRead< void >  value,
ServiceLevel serviceLevel 
)
inlineprotectedvirtualinherited

◆ addBinaryFormatVersion() [1/2]

virtual int addBinaryFormatVersion ( Buffer< uint8 > &  data)
protectedpure virtualinherited

◆ synchronizeFrameworks()

void synchronizeFrameworks ( )
protectedinherited

◆ updateOutgoingStats()

void updateOutgoingStats ( std::size_t  size)
protectedinherited

◆ checkMessageHeader()

bool checkMessageHeader ( ) const
protectedinherited

Returns true, if the message (header) is valid, i.e.

if the specified message length does not exceed a max size and the message type is known. This is used to prevent Denial of Service attacks.

◆ sendConnectDenied()

void sendConnectDenied ( const std::string &  msg)
protectedinherited

◆ sendRPCMessagesThread()

void sendRPCMessagesThread ( )
protectedinherited

◆ processPingThread()

void processPingThread ( )
protectedinherited

◆ checkPingTimeoutThread()

void checkPingTimeoutThread ( )
protectedinherited

◆ sendChannelUpdatesThread()

void sendChannelUpdatesThread ( )
protectedinherited

◆ getClass()

Class const& getClass ( ) const
inlineinherited

call the virtual internalGetClass().

◆ CLASS()

static PseudoClass const& CLASS ( )
inlinestaticinherited

◆ internalGetClass()

virtual Class const& internalGetClass ( ) const
protectedpure virtualinherited

◆ publishChannels() [2/2]

virtual void publishChannels ( const ChannelTypeMap channels)
protectedvirtualinherited

Notifies the connected framework that we have at least one publisher for each of the channels in the channels map.

Implements RemoteConnection.

◆ subscribeChannel() [2/2]

virtual void subscribeChannel ( const std::string &  channelID,
const ServiceLevel serviceLevel 
)
protectedvirtualinherited

Notify the connected remote frameworks that we have a subscriber for the given channel (assuming it has a publisher for it).

Implements RemoteConnection.

◆ publishAuthorities() [2/2]

virtual void publishAuthorities ( const AuthorityDescriptions authorities)
protectedvirtualinherited

Notifies the connected framework that the authorities in the authorities map exist in our framework.

Implements RemoteConnection.

◆ unpublishAuthorities() [2/2]

virtual void unpublishAuthorities ( const AuthorityDescriptions authorities)
protectedvirtualinherited

Notifies the connected framework that the authorities in the authorities map do not longer exist in our framework.

Implements RemoteConnection.

◆ publishServicesFiltered()

virtual void publishServicesFiltered ( const StringSet services)
protectedvirtualinherited

◆ publishServices() [2/2]

virtual void publishServices ( const StringSet services)
protectedvirtualinherited

Notifies the connected framework that the services in the services set exist in our framework.

Implements RemoteConnection.

◆ unpublishServicesFiltered()

virtual void unpublishServicesFiltered ( const StringSet services)
protectedvirtualinherited

◆ unpublishServices() [2/2]

virtual void unpublishServices ( const StringSet services)
protectedvirtualinherited

Notifies the connected framework that the services in the services set do not longer exist in our framework.

Implements RemoteConnection.

◆ sendData() [2/2]

virtual void sendData ( ChannelRead< void >  value,
ServiceLevel serviceLevel 
)
protectedvirtualinherited

Reimplemented from RemoteConnection.

◆ addBinaryFormatVersion() [2/2]

virtual int addBinaryFormatVersion ( Buffer< uint8 > &  data)
protectedvirtualinherited

Implements RemoteConnection.

◆ receivedPublishServiceMsg() [2/2]

virtual void receivedPublishServiceMsg ( )
protectedvirtualinherited

Implements RemoteConnection.

◆ receivedRPCRequestMsg() [2/2]

virtual void receivedRPCRequestMsg ( )
protectedvirtualinherited

Implements RemoteConnection.

◆ receivedRPCResponseMsg() [2/2]

virtual void receivedRPCResponseMsg ( )
protectedvirtualinherited

Implements RemoteConnection.

Friends And Related Function Documentation

◆ RemoteConnectionPool

friend class RemoteConnectionPool
friend

◆ ClassFactoryDefaultConstClassBuilder

friend class ClassFactoryDefaultConstClassBuilder
friend

Member Data Documentation

◆ mHostName

std::string mHostName
protectedinherited

◆ mPort

uint16 mPort
protectedinherited

◆ mStopScheduled

bool mStopScheduled
protectedinherited

◆ address

KnownFramework address
protectedinherited

The address of the connected framework.

◆ remoteID

UUID remoteID
protectedinherited

The UUID of the connected framework.

◆ frameworkID

std::string frameworkID
protectedinherited

The ID/Name of the connected framework.

◆ remoteVersion

uint32 remoteVersion
protectedinherited

The protocol version of the connected framework.

◆ authority

std::unique_ptr<Authority> authority
protectedinherited

Our authority used for subscribing to data.

◆ subscriptions

ChannelSendMap subscriptions
protectedinherited

List of channels the connected framework is subscribed to + what was sent to them.

◆ sentMetaInformation

MetaSet sentMetaInformation
protectedinherited

Set of type meta information already sent.

◆ publishedServices

StringSet publishedServices
protectedinherited

List of services of the connected framework.

◆ synchronizedTime

Time synchronizedTime
protectedinherited

Time when the connection was fully established (e.g. PTP synchronized)

◆ mEnablePTPSync

bool mEnablePTPSync
protectedinherited

PTP Sync enabled for this connection?

◆ mEnablePingTimeout

bool mEnablePingTimeout
protectedinherited

Ping timeout enabled for this connection?

◆ clockOffset

TimeOffsetCompensation clockOffset
protectedinherited

The clock offset between us and the connected framework.

◆ mService

IOService mService
protectedinherited

◆ mSocket

boost::asio::ip::tcp::socket mSocket
protectedinherited

◆ mRPCMessagesCondition

boost::condition_variable mRPCMessagesCondition
protectedinherited

◆ mWriteMutex

boost::mutex mWriteMutex
protectedinherited

◆ mStopMutex

boost::mutex mStopMutex
protectedinherited

◆ mSyncTimeTimer

TimerPtr mSyncTimeTimer
protectedinherited

◆ mSendRPCMessagesThread

boost::thread mSendRPCMessagesThread
protectedinherited

◆ mProcessPingThread

boost::thread mProcessPingThread
protectedinherited

◆ mCheckPingTimeoutThread

boost::thread mCheckPingTimeoutThread
protectedinherited

◆ mSendChannelUpdatesThread

boost::thread mSendChannelUpdatesThread
protectedinherited

◆ mHeaderReceived

Time mHeaderReceived
protectedinherited

◆ mHeader

FrameworkMessageHeader mHeader
protectedinherited

◆ mMessage

Buffer<uint8> mMessage
protectedinherited

◆ mAuthState

AuthState mAuthState
protectedinherited

◆ mAuthSignMsg

std::string mAuthSignMsg
protectedinherited

◆ mPTPOutgoing

bool mPTPOutgoing
protectedinherited

◆ mPTPSyncLocal

Time mPTPSyncLocal
protectedinherited

◆ mPTPSyncRemote

Time mPTPSyncRemote
protectedinherited

◆ mPTPDelayLocal

Time mPTPDelayLocal
protectedinherited

◆ mPTPDelayRemote

Time mPTPDelayRemote
protectedinherited

◆ mLastPTP

Time mLastPTP
protectedinherited

◆ mPingLastSend

Time mPingLastSend
protectedinherited

◆ mPingLastReceived

Time mPingLastReceived
protectedinherited

◆ mMigrationUnit

boost::shared_ptr<MicroUnit> mMigrationUnit
protectedinherited

◆ mMigrationNS

std::string mMigrationNS
protectedinherited

◆ mMigrationID

std::string mMigrationID
protectedinherited

◆ mStopped

bool mStopped
protectedinherited

◆ mRPCFinishHandler

boost::shared_ptr<RPCRemoteFinishHandler> mRPCFinishHandler
protectedinherited

◆ mRPCRequestHandler

boost::shared_ptr<RPCRemoteRequestHandler> mRPCRequestHandler
protectedinherited

◆ mRemoteAuthorities

std::map<std::string, boost::shared_ptr<RemoteAuthority> > mRemoteAuthorities
protectedinherited

◆ mOutgoingRPCMessages

std::list<RPCMessage> mOutgoingRPCMessages
protectedinherited

◆ mRPCMessagesMutex

boost::mutex mRPCMessagesMutex
protectedinherited

◆ mPendingChannelUpdates

std::unordered_map<std::string, ServiceLevel> mPendingChannelUpdates
protectedinherited

◆ mChannelUpdatesMutex

boost::mutex mChannelUpdatesMutex
protectedinherited

The documentation for this class was generated from the following file: