OpenDDS  Snapshot(2023/04/28-20:55)
TransportControlElement.h
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTCONTROLELEMENT_H
9 #define OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTCONTROLELEMENT_H
10 
11 #include "dds/DCPS/dcps_export.h"
12 #include "dds/DCPS/GuidUtils.h"
14 #include "TransportDefs.h"
15 #include "TransportQueueElement.h"
16 
18 class ACE_Message_Block;
20 
22 
23 namespace OpenDDS {
24 namespace DCPS {
25 
27  : public TransportQueueElement {
28 public:
29 
30  /**
31  * msg_block - chain of ACE_Message_Blocks containing the control
32  * sample held by this queue element, if any.
33  */
34  explicit TransportControlElement(Message_Block_Ptr msg_block,
35  const GUID_t& publication_id = GUID_UNKNOWN);
36 
37  virtual ~TransportControlElement();
38 
39  virtual bool owned_by_transport();
40 
41 protected:
42 
43  virtual bool requires_exclusive_packet() const;
44 
45  virtual GUID_t publication_id() const;
46 
47  virtual ACE_Message_Block* duplicate_msg() const;
48 
49  virtual const ACE_Message_Block* msg() const;
50 
51  virtual const ACE_Message_Block* msg_payload() const;
52 
53  virtual void release_element(bool dropped_by_transport);
54 
55  virtual void data_delivered();
56 
57 private:
59  /// The control message.
62 };
63 
64 } // namespace DCPS
65 } // namespace OpenDDS
66 
68 
69 #if defined (__ACE_INLINE__)
71 #endif /* __ACE_INLINE__ */
72 
73 #endif /* OPENDDS_DCPS_TRANSPORTGDCONTROLELEMENT_H */
#define ACE_BEGIN_VERSIONED_NAMESPACE_DECL
const GUID_t GUID_UNKNOWN
Nil value for GUID.
Definition: GuidUtils.h:59
#define OpenDDS_Dcps_Export
Definition: dcps_export.h:24
#define ACE_END_VERSIONED_NAMESPACE_DECL
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
Message_Block_Ptr msg_
The control message.
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28
Base wrapper class around a data/control sample to be sent.