|
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... | |
Public Member Functions inherited from OpenDDS::DCPS::TransportSendStrategy | |
| 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... | |
Public Member Functions inherited from OpenDDS::DCPS::ThreadSynchWorker | |
| 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... | |
Public Member Functions inherited from OpenDDS::DCPS::RcObject | |
| 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) |
Protected Member Functions inherited from OpenDDS::DCPS::TransportSendStrategy | |
| 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) |
Protected Member Functions inherited from OpenDDS::DCPS::ThreadSynchWorker | |
| ThreadSynchWorker (std::size_t id=0) | |
Protected Member Functions inherited from OpenDDS::DCPS::RcObject | |
| 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 | |
Public Types inherited from OpenDDS::DCPS::TransportSendStrategy | |
| enum | SendMode { MODE_NOT_SET, MODE_DIRECT, MODE_QUEUE, MODE_SUSPEND, MODE_TERMINATED } |
| typedef BasicQueue< TransportQueueElement > | QueueType |
Public Types inherited from OpenDDS::DCPS::ThreadSynchWorker | |
| enum | WorkOutcome { WORK_OUTCOME_MORE_TO_DO, WORK_OUTCOME_NO_MORE_TO_DO, WORK_OUTCOME_CLOGGED_RESOURCE, WORK_OUTCOME_BROKEN_RESOURCE } |
Static Public Member Functions inherited from OpenDDS::DCPS::TransportSendStrategy | |
| static int | mb_to_iov (const ACE_Message_Block &msg, iovec *iov) |
Static Public Attributes inherited from OpenDDS::DCPS::TransportSendStrategy | |
| 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().
1.8.13