OpenDDS
Snapshot(2023/04/07-19:43)
|
#include <UdpSendStrategy.h>
Public Member Functions | |
UdpSendStrategy (UdpDataLink *link) | |
virtual void | stop_i () |
Let the subclass stop. More... | |
![]() | |
virtual | ~TransportSendStrategy () |
void | send_buffer (TransportSendBuffer *send_buffer) |
Assigns an optional send buffer. More... | |
int | start () |
void | stop () |
void | send_start () |
void | send (TransportQueueElement *element, bool relink=true) |
void | send_stop (GUID_t repoId) |
RemoveResult | remove_sample (const DataSampleElement *sample) |
void | remove_all_msgs (const GUID_t &pub_id) |
virtual WorkOutcome | perform_work () |
virtual void | relink (bool do_suspend=true) |
void | suspend_send () |
void | resume_send () |
void | terminate_send (bool graceful_disconnecting=false) |
Remove all samples in the backpressure queue and packet queue. More... | |
virtual void | terminate_send_if_suspended () |
virtual bool | start_i () |
Let the subclass start. More... | |
void | link_released (bool flag) |
bool | isDirectMode () |
virtual ACE_HANDLE | get_handle () |
void | deliver_ack_request (TransportQueueElement *element) |
bool | fragmentation_helper (TransportQueueElement *original_element, TqeVector &elements_to_send) |
void | clear (SendMode new_mode, SendMode old_mode=MODE_NOT_SET) |
SendMode | mode () const |
Access the current sending mode. More... | |
![]() | |
virtual | ~ThreadSynchWorker () |
virtual void | schedule_output () |
Indicate that queued data is available to be sent. More... | |
std::size_t | id () const |
DataLink reference value for diagnostics. More... | |
![]() | |
virtual | ~RcObject () |
virtual void | _add_ref () |
virtual void | _remove_ref () |
long | ref_count () const |
WeakObject * | _get_weak_object () const |
Protected Member Functions | |
virtual ssize_t | send_bytes_i (const iovec iov[], int n) |
virtual size_t | max_message_size () const |
![]() | |
TransportSendStrategy (std::size_t id, const TransportImpl_rch &transport, ThreadSynchResource *synch_resource, Priority priority, const ThreadSynchStrategy_rch &thread_sync_strategy) | |
virtual ssize_t | send_bytes (const iovec iov[], int n, int &bp) |
virtual ssize_t | non_blocking_send (const iovec iov[], int n, int &bp) |
virtual void | prepare_header_i () |
Specific implementation processing of prepared packet header. More... | |
virtual void | prepare_packet_i () |
Specific implementation processing of prepared packet. More... | |
TransportQueueElement * | current_packet_first_element () const |
void | set_graceful_disconnecting (bool flag) |
Set graceful disconnecting flag. More... | |
virtual void | add_delayed_notification (TransportQueueElement *element) |
bool | send_delayed_notifications (const TransportQueueElement::MatchCriteria *match=0) |
virtual Security::SecurityConfig_rch | security_config () const |
virtual RemoveResult | do_remove_sample (const GUID_t &pub_id, const TransportQueueElement::MatchCriteria &criteria, bool remove_all=false) |
Implement framework chain visitations to remove a sample. More... | |
ThreadSynch * | synch () const |
void | set_header_source (ACE_INT64 source) |
![]() | |
ThreadSynchWorker (std::size_t id=0) | |
![]() | |
RcObject () | |
Private Attributes | |
UdpDataLink * | link_ |
Additional Inherited Members | |
![]() | |
enum | SendMode { MODE_NOT_SET, MODE_DIRECT, MODE_QUEUE, MODE_SUSPEND, MODE_TERMINATED } |
typedef BasicQueue< TransportQueueElement > | QueueType |
![]() | |
enum | WorkOutcome { WORK_OUTCOME_MORE_TO_DO, WORK_OUTCOME_NO_MORE_TO_DO, WORK_OUTCOME_CLOGGED_RESOURCE, WORK_OUTCOME_BROKEN_RESOURCE } |
![]() | |
static int | mb_to_iov (const ACE_Message_Block &msg, iovec *iov) |
![]() | |
static const size_t | UDP_MAX_MESSAGE_SIZE = 65466 |
Definition at line 24 of file UdpSendStrategy.h.
OpenDDS::DCPS::UdpSendStrategy::UdpSendStrategy | ( | UdpDataLink * | link | ) |
Definition at line 18 of file UdpSendStrategy.cpp.
|
inlineprotectedvirtual |
The maximum size of a message allowed by the this TransportImpl, or 0 if there is no such limit. This is expected to be a constant, for example UDP/IPv4 can send messages of up to 65466 bytes. The transport framework will use the returned value (if > 0) to fragment larger messages. This fragmentation and reassembly will be transparent to the user.
Reimplemented from OpenDDS::DCPS::TransportSendStrategy.
Definition at line 34 of file UdpSendStrategy.h.
|
protectedvirtual |
Implements OpenDDS::DCPS::TransportSendStrategy.
Definition at line 28 of file UdpSendStrategy.cpp.
References link_, OpenDDS::DCPS::UdpDataLink::remote_address(), ACE_SOCK_Dgram::send(), socket(), and OpenDDS::DCPS::UdpDataLink::socket().
|
virtual |
Let the subclass stop.
Implements OpenDDS::DCPS::TransportSendStrategy.
Definition at line 35 of file UdpSendStrategy.cpp.
References OPENDDS_END_VERSIONED_NAMESPACE_DECL.
|
private |
Definition at line 40 of file UdpSendStrategy.h.
Referenced by send_bytes_i().