OpenDDS  Snapshot(2023/04/28-20:55)
TransportCustomizedElement.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_TRANSPORTCUSTOMIZEDELEMENT_H
9 #define OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTCUSTOMIZEDELEMENT_H
10 
11 #include "dds/DCPS/dcps_export.h"
12 #include "TransportQueueElement.h"
14 
16 
17 namespace OpenDDS {
18 namespace DCPS {
19 
20 class TransportSendElement;
21 
23  : public TransportQueueElement {
24 
25 public:
27 
28  void set_fragment(TransportQueueElement* orig);
29 
30  virtual GUID_t publication_id() const;
31  void set_publication_id(const GUID_t& id);
32 
33  GUID_t subscription_id() const;
34  void set_subscription_id(const GUID_t& id);
35 
36  SequenceNumber sequence() const;
37  void set_sequence(const SequenceNumber& value);
38 
39  virtual ACE_Message_Block* duplicate_msg() const;
40 
41  virtual const ACE_Message_Block* msg() const;
42  void set_msg(Message_Block_Ptr m);
43 
44  virtual const ACE_Message_Block* msg_payload() const;
45 
46  virtual bool owned_by_transport() { return false; }
47 
48  virtual bool is_fragment() const { return fragment_; }
49 
50  const TransportSendElement* original_send_element() const;
51 
52  virtual bool is_last_fragment() const;
53 
54 protected:
55  virtual void release_element(bool dropped_by_transport);
56 
57  virtual bool requires_exclusive_packet() const { return exclusive_; }
58  void set_requires_exclusive() { exclusive_ = true; }
59 
60  virtual ~TransportCustomizedElement();
61 
62  static const TransportSendElement* find_original_send_element(TransportQueueElement* orig);
63 
64 private:
71  bool fragment_, exclusive_;
72 };
73 
74 } // namespace DCPS
75 } // namespace OpenDDS
76 
78 
79 #if defined (__ACE_INLINE__)
81 #endif /* __ACE_INLINE__ */
82 
83 #endif /* OPENDDS_DCPS_TRANSPORTCUSTOMIZEDELEMENT_H */
const LogLevel::Value value
Definition: debug.cpp:61
#define OpenDDS_Dcps_Export
Definition: dcps_export.h:24
virtual bool requires_exclusive_packet() const
Does the sample require an exclusive transport packet?
virtual bool is_fragment() const
Is this QueueElement the result of fragmentation?
virtual bool owned_by_transport()
Is the sample created by the transport?
Sequence number abstraction. Only allows positive 64 bit values.
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28
Base wrapper class around a data/control sample to be sent.