47 #ifndef _MIRA_REMOTECONNECTION_H_ 48 #define _MIRA_REMOTECONNECTION_H_ 51 #include <boost/array.hpp> 52 #include <boost/make_shared.hpp> 91 template<
typename Reflector>
94 r.member(
"Address",
address,
"");
95 r.roproperty(
"Address",
address,
"The address IP:port");
97 r.member(
"KeepConnected",
keep,
"",
true);
98 r.roproperty(
"KeepConnected",
keep,
"Whether to reconnect after a lost connection");
100 r.member(
"ForcePTP",
forcePTP,
"",
false);
101 r.roproperty(
"ForcePTP",
forcePTP,
"Whether to force PTP time sync for this connection");
104 BinaryBufferSerializer::getSerializerFormatVersion());
106 "Binary format version used by the remote framework");
110 "Monitor-only connections do not publish local channels, " 111 "services and authorities to remote framework");
116 "Last time tried to establish connection (UTC)");
120 boost::tuple<std::string, uint16>
getHostPort()
const;
153 template <
typename SerializerTag>
174 template<
typename Reflector>
177 r.property(
"CompensationInterval",
180 "Interval to reach target offset");
181 r.roproperty(
"TargetOffset",
mTargetOffset,
"Target offset");
182 r.roproperty(
"StartOffset",
mStartOffset,
"Start offset");
183 r.roproperty(
"StartTime",
mStartTime,
"Time when start offset was valid");
184 r.roproperty(
"CurrentOffset",
186 "Current offset (interpolated between start and target offset)");
375 template<
typename Reflector>
378 r.roproperty(
"RemoteFrameworkName",
frameworkID,
"ID/Name of the remote framework");
379 r.roproperty(
"RemoteProtocolVersion",
380 getter<std::string>( [&]()->std::string {
383 "Protocol version of the remote framework");
384 r.roproperty(
"Connected",
synchronizedTime,
"Time when the connection was established");
386 "Synchronization of clocks via PTP enabled?");
388 "Ping timeout enabled?");
389 r.property(
"TimeSynch",
clockOffset,
"PTP time synchronization");
399 virtual void start();
409 void onConnect(
bool enablePTPTimeSync,
bool enablePingTimeout);
501 template <
typename BufferSequence>
502 void write(
const BufferSequence& buffers)
512 catch (boost::system::system_error& e)
596 boost::array<boost::asio::const_buffer, 1> buffers =
609 #define GEN_WRITEMESSAGE_WRITE(z,n,_) os << p##n; 610 #define GEN_WRITEMESSAGE_PARAM_DECL(z,n,_) , const P##n & p##n 611 #define GEN_WRITEMESSAGE(z,n,_) \ 612 template<BOOST_PP_ENUM_PARAMS_Z(z,BOOST_PP_INC(n),typename P)> \ 613 void writeMessage(FrameworkMessageType msg \ 614 BOOST_PP_REPEAT_ ## z(BOOST_PP_INC(n),GEN_WRITEMESSAGE_PARAM_DECL,nil)) {\ 615 BinaryBufferOstream::buffer_type buffer; \ 616 BinaryBufferOstream os(&buffer); \ 617 BOOST_PP_REPEAT_ ## z(BOOST_PP_INC(n),GEN_WRITEMESSAGE_WRITE,nil) \ 618 FrameworkMessageHeader header(buffer.size(), msg); \ 619 boost::array<boost::asio::const_buffer, 2> buffers = \ 622 boost::asio::buffer(buffer.data(), buffer.size()) \ 626 BOOST_PP_REPEAT(BOOST_PP_INC(8),GEN_WRITEMESSAGE, nil);
627 #undef GEN_WRITEMESSAGE 628 #undef GEN_WRITEMESSAGE_WRITE 629 #undef GEN_WRITEMESSAGE_PARAM_DECL 638 template <
typename BufferType>
641 boost::array<boost::asio::const_buffer, 2> buffers =
644 boost::asio::buffer(buffer.data(), buffer.size())
654 template <
typename DataType>
657 boost::array<boost::asio::const_buffer, 2> buffers =
660 boost::asio::buffer((
void*)&data,
sizeof(DataType))
704 bool isLocal()
const;
806 typedef std::pair<FrameworkMessageType, Buffer<uint8>>
RPCMessage;
814 template <u
int8 BinaryFormatVersion>
850 boost::shared_ptr<BinarySerializer> createBinarySerializer(
Buffer<uint8>* buffer)
852 return boost::make_shared<BinarySerializer>(buffer);
870 template<
typename Reflector>
873 static const std::string incoming =
"Incoming";
874 r.roproperty(
"ConnectDirection", incoming,
"Incoming or outgoing connection?");
875 r.roproperty(
"Address",
address.
address,
"Origin address of the connection");
880 virtual void start();
916 template<
typename Reflector>
919 static const std::string outgoing =
"Outgoing";
920 r.roproperty(
"ConnectDirection", outgoing,
"Incoming or outgoing connection?");
921 r.roproperty(
"ConnectDetails",
address,
"Active connect details");
926 virtual void start();
933 virtual void onWriteError(boost::system::system_error& e);
938 boost::asio::ip::tcp::resolver::iterator iterator);
949 template <u
int8 BinaryFormatVersion>
ConcreteRemoteConnection()
Constructs a remote connection that uses its own io service.
Definition: RemoteConnection.h:819
Information and settings for a known remote framework.
Definition: RemoteConnection.h:80
Duration mTargetOffset
Definition: RemoteConnection.h:229
void handleConnect(const boost::system::error_code &error, boost::asio::ip::tcp::resolver::iterator iterator)
virtual void publishChannels(const ChannelTypeMap &channels)
Notifies the connected framework that we have at least one publisher for each of the channels in the ...
ConcreteRemoteOutgoingConnection(const KnownFramework &address)
Definition: RemoteConnection.h:954
uint32 remoteVersion
The protocol version of the connected framework.
Definition: RemoteConnection.h:688
QoS management informations.
boost::thread mCheckPingTimeoutThread
Definition: RemoteConnection.h:770
std::unordered_map< std::string, ServiceLevel > mPendingChannelUpdates
Definition: RemoteConnection.h:810
std::map< std::string, boost::shared_ptr< RemoteAuthority > > mRemoteAuthorities
Definition: RemoteConnection.h:804
Definition: BinarySerializer.h:324
void setConnection(RemoteConnection *iConnection)
Set the connection pointer. Used to reset the connection on disconnect.
bool hasPingTimeout() const
Check if the connection incoming ping's are still alive.
IOService mService
Definition: RemoteConnection.h:758
Definition: RemoteConnection.h:780
Type trait that indicates whether a type should be serialized "transparently", i.e.
Definition: IsTransparentSerializable.h:81
Duration mStartOffset
Definition: RemoteConnection.h:230
std::list< RPCMessage > mOutgoingRPCMessages
Definition: RemoteConnection.h:807
void receivedPTPDelayRequest(uint64 timestamp)
boost::thread mSendChannelUpdatesThread
Definition: RemoteConnection.h:771
Time mPTPDelayLocal
Definition: RemoteConnection.h:790
virtual void sendData(ChannelRead< void > value, ServiceLevel &serviceLevel)
boost::asio::ip::tcp::endpoint & getEndpoint()
Returns a reference to the endpoint of the remote peer.
Definition: RemoteConnection.h:883
DispatcherThread::TimerPtr TimerPtr
Definition: DispatcherThread.h:515
void queueRPCMessage(FrameworkMessageType msg, Buffer< uint8 > &&answer)
Queue an outgoing RPC request or RPC response to be transmitted in a separate thread.
void receivedMigrationSinkSuccessMsg()
Definition: RemoteConnection.h:815
virtual void start()
Implementation of RemoteConnection.
bool isPTPSyncEnabled()
Is synchronization of clocks via PTP enabled?
Definition: RemoteConnection.h:412
ServiceLevel by channel name.
Definition: ServiceLevel.h:102
RPCRemoteRequestHandler(RemoteConnection *iConnection)
Constructor taking the connection pointer.
Definition: RemoteConnection.h:336
void setTargetOffset(const Duration &target, const Time &ts=Time::now())
std::string mMigrationNS
Definition: RemoteConnection.h:798
boost::mutex mConnectionMutex
Definition: RemoteConnection.h:352
void receivedSubscribeChannelRequest()
void syncTime()
Time synchronization between frameworks.
StringSet publishedServices
List of services of the connected framework.
Definition: RemoteConnection.h:692
void receivedMigrationFinishedMsg()
ConcreteRemoteConnection(boost::asio::io_service &service)
Constructs a remote connection that uses a given io service.
Definition: RemoteConnection.h:822
Handler that must be implemented by the remote module to send RPC responses to a remote server which ...
Definition: RPCManager.h:133
int mCompensationInterval
Definition: RemoteConnection.h:228
RPCRemoteFinishHandler(RemoteConnection *iConnection)
Constructor taking the connection pointer.
Definition: RemoteConnection.h:305
Connection class for incoming connections.
Definition: RemoteConnection.h:861
Descriptive informations about an authority.
bool isValid() const
Checks if this duration is invalid.
Definition: Time.h:260
void sendRPCMessagesThread()
Duration queryOffset() const
Definition: RemoteConnection.h:200
std::unique_ptr< Authority > authority
Our authority used for subscribing to data.
Definition: RemoteConnection.h:689
specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
Definition: IOService.h:67
void checkPingTimeoutThread()
virtual void unpublishAuthorities(const AuthorityDescriptions &authorities)=0
Notifies the connected framework that the authorities in the authorities map do not longer exist in o...
Buffer< uint8 > mMessage
Definition: RemoteConnection.h:775
virtual void start()
Starts the connection. Can be implemented in derived classes.
TimeOffsetCompensation & operator=(TimeOffsetCompensation other)
Definition: RemoteConnection.h:205
UUID getRemoteID() const
Definition: RemoteConnection.h:519
RPCHandler for sending a rpc call to the server side.
Definition: RemoteConnection.h:332
boost::shared_ptr< RPCRemoteRequestHandler > mRPCRequestHandler
Definition: RemoteConnection.h:803
bool isValid() const
Returns true if this contains a valid time.
Definition: Time.h:583
Duration getCompensationInterval() const
std::set< std::string > MetaSet
Definition: RemoteConnection.h:290
virtual int addBinaryFormatVersion(Buffer< uint8 > &data)
boost::mutex mConnectionMutex
Definition: RemoteConnection.h:321
void valueChanged(ChannelRead< void > value, ServiceLevel &serviceLevel)
Channel callback method that gets registered on each channel the connected framework subscribes...
Time synchronizedTime
Time when the connection was fully established (e.g. PTP synchronized)
Definition: RemoteConnection.h:694
void receivedUnpublishAuthorityMsg()
#define MIRA_REFLECT_BASE(reflector, BaseClass)
Macro that can be used to reflect the base class easily.
Definition: ReflectorInterface.h:956
Time mPTPDelayRemote
Definition: RemoteConnection.h:791
virtual void publishServices(const StringSet &services)=0
Notifies the connected framework that the services in the services set exist in our framework...
RemoteConnection * mConnection
Definition: RemoteConnection.h:322
boost::shared_ptr< MicroUnit > mMigrationUnit
Definition: RemoteConnection.h:797
void receivedPublishChannelMsg()
Definition: RemoteConnection.h:778
Setter< T > setter(void(*f)(const T &))
Creates a Setter for global or static class methods taking the argument by const reference.
Definition: GetterSetter.h:443
std::map< std::string, Typename > ChannelTypeMap
Definition: RemoteConnection.h:281
Time mPTPSyncRemote
Definition: RemoteConnection.h:789
Connection class for outgoing connections.
Definition: RemoteConnection.h:909
std::string frameworkID
The ID/Name of the connected framework.
Definition: RemoteConnection.h:687
void sendConnectDenied(const std::string &msg)
virtual void publishAuthorities(const AuthorityDescriptions &authorities)=0
Notifies the connected framework that the authorities in the authorities map exist in our framework...
boost::mutex mWriteMutex
Definition: RemoteConnection.h:763
virtual void unpublishServices(const StringSet &services)
Notifies the connected framework that the services in the services set do not longer exist in our fra...
AuthState mAuthState
Definition: RemoteConnection.h:784
virtual void unpublishAuthorities(const AuthorityDescriptions &authorities)
Notifies the connected framework that the authorities in the authorities map do not longer exist in o...
void receivedMigrationSinkFailureMsg()
RemoteConnection * mConnection
Definition: RemoteConnection.h:353
void receivedUnsubscribeChannelRequest(const std::string &channelID)
std::string getGlobalID() const
Definition: RemoteConnection.h:524
boost::mutex mChannelUpdatesMutex
Definition: RemoteConnection.h:811
virtual void receivedPublishServiceMsg()
TimeOffsetCompensation & operator=(const Duration &target)
Definition: RemoteConnection.h:215
An object that allows read access to data of a channel.
Definition: ChannelReadWrite.h:435
std::string mHostName
Definition: RemoteConnection.h:944
void parseMessage()
Parses an incoming message (stored in mMessage) and calls the respective receivedXXX method...
virtual void receivedRPCResponseMsg()=0
boost::mutex mMutex
Definition: RemoteConnection.h:233
void setConnection(RemoteConnection *iConnection)
Set the connection pointer. Used to reset the connection on disconnect.
boost::asio::ip::tcp::endpoint mPeerEndpoint
endpoint of the remote peer
Definition: RemoteConnection.h:901
void receivedChannelMetaMsg()
Wrapper class for boost::posix_time::ptime for adding more functionality to it.
Definition: Time.h:421
#define MIRA_ABSTRACT_OBJECT(classIdentifier)
Use this MACRO instead of MIRA_OBJECT to declare the class as abstract.
Definition: FactoryMacros.h:239
std::set< std::string > StringSet
Definition: RemoteConnection.h:282
void setAddress(const KnownFramework &addr)
Definition: RemoteConnection.h:544
void sendChannelUpdatesThread()
void migrateUnit(const std::string &id)
Send a request to the connected framework to transfer ownership of a unit to this framework...
friend class ClassFactoryDefaultConstClassBuilder
Definition: RemoteConnection.h:957
virtual void onDisconnect()
Implementation of RemoteConnection.
virtual void publishServicesFiltered(const StringSet &services)
virtual void unpublishServices(const StringSet &services)=0
Notifies the connected framework that the services in the services set do not longer exist in our fra...
void setAutoReconnect(bool autoReconnect)
Definition: RemoteConnection.h:549
Marker for indicating parameters that should be ignored if they are missing in the config file...
Definition: IgnoreMissing.h:73
Definition: RemoteConnection.h:950
boost::thread mSendRPCMessagesThread
Definition: RemoteConnection.h:768
void receivedUnpublishChannelMsg()
MIRA_BASE_EXPORT void write(const Value &value, std::ostream &ioStream, bool formatted=false, int precision=-1)
Writes a json::Value into a given stream using the JSON format.
Commonly used exception classes.
void writeMessageFromData(FrameworkMessageType msg, const DataType &data)
Writes a message to the other framework.
Definition: RemoteConnection.h:655
TimerPtr mSyncTimeTimer
Definition: RemoteConnection.h:766
void updateOutgoingStats(std::size_t size)
boost::shared_ptr< RPCRemoteFinishHandler > mRPCFinishHandler
Definition: RemoteConnection.h:802
virtual void onWriteError(boost::system::system_error &e)
Implementation of RemoteConnection.
virtual void publishAuthorities(const AuthorityDescriptions &authorities)
Notifies the connected framework that the authorities in the authorities map exist in our framework...
RemoteIncomingConnection()
Message types exchanged between remote frameworks.
const std::string & getFrameworkID() const
Definition: RemoteConnection.h:534
#define MIRA_FRAMEWORK_EXPORT
Definition: FrameworkExports.h:61
void write(const BufferSequence &buffers)
Send data in the buffers to the connected framework.
Definition: RemoteConnection.h:502
sec_type seconds() const
Returns normalized number of seconds (0..59)
Definition: Time.h:283
Use this class to represent time durations.
Definition: Time.h:104
void reflect(Reflector &r)
Definition: RemoteConnection.h:376
void receivedPublishAuthorityMsg()
std::pair< FrameworkMessageType, Buffer< uint8 > > RPCMessage
Definition: RemoteConnection.h:806
void reflect(Reflector &r)
Definition: RemoteConnection.h:871
void receivedPTPDelayResponse(uint64 timestamp)
The object class acts as a generic base class for classes which should be used with the classFactory...
Definition: Object.h:144
boost::asio::ip::tcp::socket & getSocket()
Returns the network socket of this connection.
Definition: RemoteConnection.h:393
ChannelSendMap subscriptions
List of channels the connected framework is subscribed to + what was sent to them.
Definition: RemoteConnection.h:690
KnownFramework()
Definition: RemoteConnection.h:82
bool mPTPOutgoing
Definition: RemoteConnection.h:787
void handleReadMessage(const boost::system::error_code &error)
Authorities act as a facade to the framework.
Definition: Authority.h:93
Getter< T > getter(T(*f)())
Creates a Getter for global or static class methods returning the result by value.
Definition: GetterSetter.h:136
bool isInitialized() const
Definition: RemoteConnection.h:190
ConcreteRemoteOutgoingConnection< 0 > RemoteOutgoingConnectionLegacy
Definition: RemoteConnection.h:961
void handleReadHeader(const boost::system::error_code &error)
ConcreteRemoteOutgoingConnection< 2 > RemoteOutgoingConnection
Definition: RemoteConnection.h:960
bool forcePTP
force PTP time sync
Definition: RemoteConnection.h:132
Definition: RemoteConnection.h:782
uint16 mPort
Definition: RemoteConnection.h:945
void receivedMigrationMsg()
virtual ~ConcreteRemoteConnection()
Destructor.
Definition: RemoteConnection.h:828
virtual void onRPCrequested(Buffer< uint8 > &&request)
Implementation of RPCManager::RemoteRequestHandler Will send request to the framework that will proce...
Time mPingLastReceived
Definition: RemoteConnection.h:795
void reflect(Reflector &r)
Reflect method for serialization.
Definition: RemoteConnection.h:175
void receivedRequestMigrationMsg()
#define MIRA_OBJECT(classIdentifier)
Use this MACRO if you like the factory to automatically extract the class name from the given identif...
Definition: FactoryMacros.h:183
void setAuthority(std::unique_ptr< Authority > auth)
Definition: RemoteConnection.h:529
Framework channel classes.
KnownFramework address
The address of the connected framework.
Definition: RemoteConnection.h:685
AuthState
Definition: RemoteConnection.h:777
TimeOffsetCompensation(const TimeOffsetCompensation &other)
Definition: RemoteConnection.h:161
boost::tuple< std::string, uint16 > getHostPort() const
void handleReadMessage(const boost::system::error_code &error)
RPCHandler for getting notified when an rpc call on server side is finished and the response is ready...
Definition: RemoteConnection.h:301
virtual int addBinaryFormatVersion(Buffer< uint8 > &data)=0
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 h...
bool isPingTimeoutEnabled()
Is ping timeout enabled?
Definition: RemoteConnection.h:418
std::map< std::string, SendData > ChannelSendMap
Definition: RemoteConnection.h:288
Base class of connections between frameworks.
Definition: RemoteConnection.h:276
virtual void start()
Implementation of RemoteConnection.
virtual void onRPCfinished(Buffer< uint8 > &&answer)
Implementation of RPCManager::RemoteFinishHandler Will send answer back to calling framework using th...
virtual void publishServices(const StringSet &services)
Notifies the connected framework that the services in the services set exist in our framework...
boost::mutex mStopMutex
Definition: RemoteConnection.h:764
void receivedPTPFollowUp(uint64 timestamp)
Time mPingLastSend
Definition: RemoteConnection.h:794
#define MIRA_MINOR_VERSION(v)
Calculate the minor version of v.
Definition: FrameworkDefines.h:55
#define MIRA_MAJOR_VERSION(v)
Calculate the major version of v.
Definition: FrameworkDefines.h:53
RemoteOutgoingConnectionBase(const KnownFramework &address)
Contains internal RPCManager class.
void stop()
Close the socket.
bool keep
if true the information is stored in list of frameworks that we try to reconnect to after disconnect ...
Definition: RemoteConnection.h:129
Typedefs and serialization support for uuids.
std::list< AuthorityDescription > AuthorityDescriptions
Definition: RemoteConnection.h:291
virtual void receivedPublishServiceMsg()=0
void receivedWriteChannelMsg()
UUID remoteID
The UUID of the connected framework.
Definition: RemoteConnection.h:686
bool mEnablePingTimeout
Ping timeout enabled for this connection?
Definition: RemoteConnection.h:696
virtual void unpublishServicesFiltered(const StringSet &services)
static Time now() static Time eternity()
Returns the current utc based time.
Definition: Time.h:484
Definition: BinarySerializer.h:257
Definition: RemoteConnection.h:158
void sendPTP()
Sends a PTP command used for time synchronization between frameworks.
uint8 metaVersion
Definition: RemoteConnection.h:285
virtual void onWriteError(boost::system::system_error &e)
Called when writing to the socket failed. Can be implemented in derived classes.
Definition: RemoteConnection.h:563
void receivedUnpublishServiceMsg()
virtual void onDisconnect()
Called in stop() when connection is about to be stopped.
Definition: RemoteConnection.h:560
void unpublishChannel(const std::string &channel)
Notifies the connected framework that we no longer have a publisher for the given channel...
bool checkMessageHeader() const
Returns true, if the message (header) is valid, i.e.
Wrapper class for boost::asio::io_service.
Definition: IOService.h:75
virtual void receivedRPCRequestMsg()
bool hasAuthority(const std::string &id) const
Check if a authority with given full id exists in the connected framework.
bool mStopScheduled
Definition: RemoteConnection.h:946
uint8 binaryFormatVersion
The binary format used by the framework (to enable connecting to legacy framework).
Definition: RemoteConnection.h:138
boost::uuids::uuid UUID
Shorter name for boost uuid.
Definition: UUID.h:66
TimeOffsetCompensation clockOffset
The clock offset between us and the connected framework.
Definition: RemoteConnection.h:697
Time mPTPSyncLocal
Definition: RemoteConnection.h:788
void writeMessageFromBuffer(FrameworkMessageType msg, const BufferType &buffer)
Writes a message to the other framework.
Definition: RemoteConnection.h:639
const KnownFramework & getAddress() const
Definition: RemoteConnection.h:539
boost::condition_variable mRPCMessagesCondition
Definition: RemoteConnection.h:761
bool monitorOnly
Local channels, services and authorities are not published to the remote side if monitor-only is true...
Definition: RemoteConnection.h:144
void synchronizeFrameworks()
Duration offset(const Time &ts) const
void startTimeSync()
Create a timer to frequently call syncTime.
MetaSet sentMetaInformation
Set of type meta information already sent.
Definition: RemoteConnection.h:691
Time mHeaderReceived
Definition: RemoteConnection.h:773
virtual void receivedRPCResponseMsg()
boost::asio::ip::tcp::socket mSocket
Definition: RemoteConnection.h:759
Definition: RemoteConnection.h:284
An authority class that represents a remote authority that is located in a connected framework...
boost::mutex mRPCMessagesMutex
Definition: RemoteConnection.h:808
std::string mMigrationID
Definition: RemoteConnection.h:799
RemoteConnection()
Constructs a remote connection that uses its own io service.
void receivedTypeMetaMsg()
bool isSynchronized() const
synchronizeFrameworks() was executed.
Definition: RemoteConnection.h:438
friend class ClassFactoryDefaultConstClassBuilder
Definition: RemoteConnection.h:868
bool mEnablePTPSync
PTP Sync enabled for this connection?
Definition: RemoteConnection.h:695
void writeMessage(FrameworkMessageType msg)
Writes a message to the other framework.
Definition: RemoteConnection.h:594
Time lastData
Definition: RemoteConnection.h:286
friend void createConcreteRemoteConnectionInstances()
std::string mAuthSignMsg
Definition: RemoteConnection.h:785
void reflect(Reflector &r)
Reflect method for serialization.
Definition: RemoteConnection.h:92
FrameworkMessageType
Remote framework message types.
Definition: FrameworkMessage.h:63
virtual void receivedRPCRequestMsg()=0
bool mStopped
Definition: RemoteConnection.h:800
boost::thread mProcessPingThread
Definition: RemoteConnection.h:769
virtual void onDisconnect()
Implementation of RemoteConnection.
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 h...
void ping()
Sends a ping command.
void setCompensationInterval(const Duration &interval)
FrameworkMessageHeader mHeader
Definition: RemoteConnection.h:774
TimeOffsetCompensation(const Duration &compensationInterval=Duration::seconds(10))
Definition: RemoteConnection.h:167
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 ...
void handleReadHeader(const boost::system::error_code &error)
Wrapper for boost::asio::io_service.
std::string address
address in the form of host:port
Definition: RemoteConnection.h:123
Definition: RemoteConnection.h:781
void onConnect(bool enablePTPTimeSync, bool enablePingTimeout)
Called by RemoteModule::onIncomingConnected/onOutgoingConnected.
Connection pool that holds the ownership for RemoteConnections.
Owner of every RemoteConnection.
Definition: RemoteConnectionPool.h:115
void reflect(Reflector &r)
Definition: RemoteConnection.h:917
virtual void sendData(ChannelRead< void > value, ServiceLevel &serviceLevel)
Definition: RemoteConnection.h:738
Class for in-place stream formatting Used for constructs like:
Definition: MakeString.h:63
Definition: RemoteConnection.h:779
Time mStartTime
Definition: RemoteConnection.h:231
Units are basic modules of a complex application.
Definition: MicroUnit.h:69
Time lastConnectionTry
The last time we tried to connect to that address.
Definition: RemoteConnection.h:150
virtual ~RemoteConnection()
Destructor.
Handler that must be implemented by the remote module to send RPC requests to a remote server...
Definition: RPCManager.h:111
Time mLastPTP
Definition: RemoteConnection.h:792