6 #ifndef OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTIMPL_H 7 #define OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTIMPL_H 24 #include <dds/OpenddsDcpsExtC.h> 25 #include <dds/DdsDcpsSubscriptionC.h> 26 #include <dds/DdsDcpsPublicationC.h> 27 #ifdef OPENDDS_SECURITY 28 # include <dds/DdsSecurityCoreC.h> 38 class TransportClient;
39 class TransportReceiveListener;
43 struct AssociationData;
70 virtual void unbind_link(
DataLink* link);
75 bool release_link_resources(
DataLink* link);
121 bool is_shut_down()
const;
142 , local_reliable_(false)
143 , local_durable_(false)
161 : success_(ok == ACR_SUCCESS), link_() {}
163 : success_(link), link_(link) {}
197 const TransportClient_rch& client) = 0;
208 const TransportClient_rch& client) = 0;
216 virtual void stop_accepting_or_connecting(
const TransportClient_wrch& client,
219 bool association_failed) = 0;
225 virtual void shutdown_i() = 0;
235 void add_pending_connection(
const TransportClient_rch& client,
DataLink_rch link);
256 virtual void release_datalink(
DataLink* link) = 0;
265 #if defined(OPENDDS_SECURITY) 331 #if defined (__ACE_INLINE__) WeakRcHandle< DataLink > link_
PendConnMap pending_connections_
virtual void append_transport_statistics(TransportStatisticsSequence &)
EventDispatcher_rch event_dispatcher_
smart ptr to the associated DL cleanup task
Base class to hold configuration settings for TransportImpls.
virtual void rtps_relay_only_now(bool)
const GUID_t GUID_UNKNOWN
Nil value for GUID.
virtual void use_rtps_relay_now(bool)
virtual void use_ice_now(bool)
#define OpenDDS_Dcps_Export
void handle_event()
Called when the event is dispatched by an EventDispatcher.
virtual void get_last_recv_locator(const GUID_t &, TransportLocator &)
virtual void client_stop(const GUID_t &)
#define OPENDDS_MULTIMAP(K, T)
DoClear(RcHandle< DataLink > link)
sequence< TransportLocator > TransportLocatorSeq
virtual void local_crypto_handle(DDS::Security::ParticipantCryptoHandle)
virtual void rtps_relay_address_change()
LockType lock_
Lock to protect the config_ and reactor_task_ data members.
MonotonicTime_t participant_discovered_at_
ACE_Guard< LockType > GuardType
ACE_HANDLE open(const char *filename, int mode, mode_t perms=ACE_DEFAULT_OPEN_PERMS, LPSECURITY_ATTRIBUTES sa=0)
virtual void register_for_writer(const GUID_t &, const GUID_t &, const GUID_t &, const TransportLocatorSeq &, DiscoveryListener *)
WeakRcHandle< TransportClient > TransportClient_wrch
sequence< TransportStatistics > TransportStatisticsSequence
RcHandle< TransportClient > TransportClient_rch
long ParticipantCryptoHandle
ReactorTask_rch reactor_task_
void clear_associations()
EventDispatcher_rch event_dispatcher()
Priority publication_transport_priority_
int connect(ACE_HANDLE handle, struct sockaddr *addr, int addrlen)
LockType pending_connections_lock_
Lock to protect the pending_connections_ data member.
Mix-in class for DDS entities which directly use the transport layer.
virtual void unregister_for_reader(const GUID_t &, const GUID_t &, const GUID_t &)
virtual void register_for_reader(const GUID_t &, const GUID_t &, const GUID_t &, const TransportLocatorSeq &, OpenDDS::DCPS::DiscoveryListener *)
const SequenceNumber_t SEQUENCENUMBER_UNKNOWN
Sequence number abstraction. Only allows positive 64 bit values.
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
WeakRcHandle< TransportInst > config_
virtual void unregister_for_writer(const GUID_t &, const GUID_t &, const GUID_t &)
AcceptConnectResult(const DataLink_rch &link)
unique_ptr< Monitor > monitor_
Monitor object for this entity.
int shutdown(ACE_HANDLE handle, int how)
bool success_
If false, the accept or connect has failed and link_ is ignored.
TransportBLOB discovery_blob_
DDS::OctetSeq TransportBLOB
The Internal API and Implementation of OpenDDS.
Defines the interface that allows DataWriters (and lower levels) to inform discovery.
AcceptConnectResult(Status ok=ACR_FAILED)
virtual void update_locators(const GUID_t &, const TransportLocatorSeq &)
virtual WeakRcHandle< ICE::Endpoint > get_ice_endpoint()
AtomicBool is_shut_down_
Id of the last link established.
size_t ConnectionInfoFlags