OpenDDS
Snapshot(2023/04/28-20:55)
|
#include <ShmemSendStrategy.h>
Public Member Functions | |
ShmemSendStrategy (ShmemDataLink *link) | |
virtual bool | start_i () |
Let the subclass start. More... | |
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 () |
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) |
![]() | |
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 |
virtual size_t | max_message_size () 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 | |
ShmemDataLink * | link_ |
std::string | bound_name_ |
ACE_sema_t | peer_semaphore_ |
ShmemData * | current_data_ |
const size_t | datalink_control_size_ |
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 29 of file ShmemSendStrategy.h.
OpenDDS::DCPS::ShmemSendStrategy::ShmemSendStrategy | ( | ShmemDataLink * | link | ) |
Definition at line 21 of file ShmemSendStrategy.cpp.
References memset(), and peer_semaphore_.
|
protectedvirtual |
Implements OpenDDS::DCPS::TransportSendStrategy.
Definition at line 77 of file ShmemSendStrategy.cpp.
References bound_name_, current_data_, OpenDDS::DCPS::TransportHeader::DCPS_PROTOCOL, OpenDDS::DCPS::ShmemData::EndOfAlloc, ACE_Malloc_T< class, ACE_LOCK, ACE_CB >::find(), ACE_Malloc_T< class, ACE_LOCK, ACE_CB >::free(), OpenDDS::DCPS::ShmemData::Free, OpenDDS::DCPS::ShmemData::InUse, link_, LM_DEBUG, LM_ERROR, OpenDDS::DCPS::ShmemDataLink::local_allocator(), ACE_Malloc_T< class, ACE_LOCK, ACE_CB >::malloc(), OpenDDS::DCPS::ShmemData::payload_, peer_semaphore_, OpenDDS::DCPS::ShmemData::RecvDone, ACE_OS::sema_post(), OpenDDS::DCPS::TransportSendStrategy::start(), OpenDDS::DCPS::ShmemData::status_, OpenDDS::DCPS::ShmemData::transport_header_, VDBG, and VDBG_LVL.
|
virtual |
Let the subclass start.
Reimplemented from OpenDDS::DCPS::TransportSendStrategy.
Definition at line 36 of file ShmemSendStrategy.cpp.
References ACE_Malloc_T< class, ACE_LOCK, ACE_CB >::bind(), bound_name_, ACE_Malloc_T< class, ACE_LOCK, ACE_CB >::calloc(), datalink_control_size_, OpenDDS::DCPS::ShmemData::EndOfAlloc, ACE_Malloc_T< class, ACE_LOCK, ACE_CB >::find(), link_, LM_ERROR, OpenDDS::DCPS::ShmemDataLink::local_allocator(), OpenDDS::DCPS::ShmemDataLink::peer_address(), OpenDDS::DCPS::ShmemDataLink::peer_allocator(), OpenDDS::DCPS::ShmemDataLink::peer_pid(), peer_semaphore_, OpenDDS::DCPS::ShmemData::status_, and VDBG_LVL.
|
virtual |
Let the subclass stop.
Implements OpenDDS::DCPS::TransportSendStrategy.
Definition at line 180 of file ShmemSendStrategy.cpp.
References OPENDDS_END_VERSIONED_NAMESPACE_DECL, and peer_semaphore_.
|
private |
Definition at line 42 of file ShmemSendStrategy.h.
Referenced by send_bytes_i(), and start_i().
|
private |
Definition at line 44 of file ShmemSendStrategy.h.
Referenced by send_bytes_i().
|
private |
Definition at line 45 of file ShmemSendStrategy.h.
Referenced by start_i().
|
private |
Definition at line 41 of file ShmemSendStrategy.h.
Referenced by send_bytes_i(), and start_i().
|
private |
Definition at line 43 of file ShmemSendStrategy.h.
Referenced by send_bytes_i(), ShmemSendStrategy(), start_i(), and stop_i().