8 #ifndef OPENDDS_DCPS_TRANSPORT_FRAMEWORK_DATALINK_H 9 #define OPENDDS_DCPS_TRANSPORT_FRAMEWORK_DATALINK_H 52 class TransportQueueElement;
53 class ReceivedDataSample;
54 class DataSampleElement;
55 class ThreadPerConnectionSendTask;
56 class TransportClient;
95 int handle_exception(ACE_HANDLE );
112 virtual int make_reservation(
const GUID_t& remote_subscription_id,
113 const GUID_t& local_publication_id,
114 const TransportSendListener_wrch& send_listener,
121 virtual int make_reservation(
const GUID_t& remote_publication_id,
122 const GUID_t& local_subscription_id,
131 void release_reservations(
GUID_t remote_id,
133 DataLinkSetMap& released_locals);
135 void schedule_delayed_release();
142 void remove_listener(
const GUID_t& local_id);
152 void send_stop(
GUID_t repoId);
161 virtual void remove_all_msgs(
const GUID_t& pub_id);
182 void transport_shutdown();
191 virtual void pre_stop_i();
197 void release_resources();
201 void terminate_send();
202 void terminate_send_if_suspended();
207 bool is_target(
const GUID_t& remote_id);
211 void clear_associations();
220 void set_dscp_codepoint(
int cp,
ACE_SOCK& socket);
225 Priority transport_priority()
const;
228 bool is_loopback()
const;
231 bool is_active()
const;
233 bool cancel_release();
261 bool add_on_start_callback(
const TransportClient_wrch& client,
const GUID_t& remote);
262 void remove_on_start_callback(
const TransportClient_wrch& client,
const GUID_t& remote);
263 void invoke_on_start_callbacks(
bool success);
264 bool invoke_on_start_callbacks(
const GUID_t& local,
const GUID_t& remote,
bool success);
265 void remove_startup_callbacks(
const GUID_t& local,
const GUID_t& remote);
270 bool reactor_is_shut_down()
const;
283 void set_scheduling_release(
bool scheduling_release);
285 virtual void send_final_acks (
const GUID_t& readerid);
290 const GUID_t& )
const {
return false; }
309 bool invoke_all =
true);
318 virtual void stop_i();
333 void send_stop_i(
GUID_t repoId);
340 void network_change()
const;
342 void replay_durable_data(
const GUID_t& local_pub_id,
const GUID_t& remote_sub_id)
const;
354 void prepare_release();
375 void notify_reactor();
380 #ifndef OPENDDS_SAFETY_PROFILE 477 #if defined (__ACE_INLINE__)
#define ACE_BEGIN_VERSIONED_NAMESPACE_DECL
IdToSendListenerMap send_listeners_
Interceptor(ACE_Reactor *reactor, ACE_thread_t owner)
virtual TransportQueueElement * customize_queue_element(TransportQueueElement *element)
const LogLevel::Value value
std::pair< TransportClient_wrch, GUID_t > OnStartCallback
WeakRcHandle< TransportSendListener > TransportSendListener_wrch
unsigned long ACE_Reactor_Mask
bool is_active_
Is pub or sub ?
virtual bool is_leading(const GUID_t &, const GUID_t &) const
const GUID_t GUID_UNKNOWN
Nil value for GUID.
LockType pub_sub_maps_lock_
#define OpenDDS_Dcps_Export
WeakRcHandle< TransportImpl > impl_
A weak rchandle to the TransportImpl that created this DataLink.
ssize_t send(ACE_HANDLE handle, const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0)
AssocByLocal assoc_by_local_
AssocByLocal assoc_releasing_
ACE_UINT64 DataLinkIdType
Identifier type for DataLink objects.
TransportStrategy_rch receive_strategy_
The transport receive strategy object for this DataLink.
RemoveResult
used by DataLink::remove_sample(), TransportSendStrategy, *RemoveVisitor
RcHandle< DataLinkSet > DataLinkSet_rch
The type definition for the smart-pointer to the underlying type.
Christopher Diggins *renamed files *fixing compilation errors *adding Visual C project file *removed make Max Lybbert *removed references to missing and unused header
Holds a data sample received by the transport.
TransportSendStrategy_rch send_strategy_
The transport send strategy object for this DataLink.
TransportReceiveListener_wrch default_listener_
PendingOnStartsMap pending_on_starts_
#define OPENDDS_MAP_CMP(K, V, C)
#define ACE_END_VERSIONED_NAMESPACE_DECL
Active Object responsible for cleaning up DataLink resources.
Simple listener to discard response samples.
TimeDuration datalink_release_delay_
virtual void release_remote_i(const GUID_t &)
virtual WeakRcHandle< ICE::Endpoint > get_ice_endpoint() const
ImmediateStart(RcHandle< DataLink > link, WeakRcHandle< TransportClient > client, const GUID_t &remote)
WeakRcHandle< TransportClient > client_
unsigned long long ACE_UINT64
sequence< GUID_t > GUIDSeq
ssize_t send_i(ACE_HANDLE handle, const void *buf, size_t len)
unique_ptr< ThreadPerConnectionSendTask > thr_per_con_send_task_
ACE_Guard< LockType > GuardType
SendResponseListener send_response_listener_
Listener for TransportSendControlElements created in send_control.
OnStartCallbackMap on_start_callbacks_
unique_ptr< MessageBlockAllocator > mb_allocator_
AssocByRemote assoc_by_remote_
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
WeakRcHandle< TransportClient > TransportClient_wrch
IdToRecvListenerMap recv_listeners_
RcHandle< DataLink > link_
bool is_loopback_
Is remote attached to same transport ?
virtual void release_reservations_i(const GUID_t &, const GUID_t &)
ACE_UINT64 id_
The id for this DataLink.
Execute the requests of sending a sample or control message.
Priority transport_priority_
TRANSPORT_PRIORITY value associated with the link.
MonotonicTimePoint scheduled_to_stop_at_
The Internal API and Implementation of OpenDDS.
std::ostream & operator<<(std::ostream &stream, const GuidPair &guidp)
Base wrapper class around a data/control sample to be sent.
unique_ptr< DataBlockAllocator > db_allocator_
SendControlStatus
Return code type for send_control() operations.