Line data Source code
1 : /* 2 : * 3 : * 4 : * Distributed under the OpenDDS License. 5 : * See: http://www.opendds.org/license.html 6 : */ 7 : 8 : #include "EntryExit.h" 9 : #include "TransportSendElement.h" 10 : 11 : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 12 : 13 : namespace OpenDDS { 14 : namespace DCPS { 15 : 16 : ACE_INLINE 17 0 : TransportCustomizedElement::TransportCustomizedElement( 18 0 : TransportQueueElement* orig) 19 : : TransportQueueElement(1), 20 0 : orig_(orig), 21 0 : original_send_element_(find_original_send_element(orig)), 22 0 : publication_id_(orig ? orig->publication_id() : GUID_UNKNOWN), 23 0 : subscription_id_(GUID_UNKNOWN), 24 0 : sequence_(SequenceNumber::SEQUENCENUMBER_UNKNOWN()), 25 0 : fragment_(false), 26 0 : exclusive_(false) 27 : { 28 : DBG_ENTRY_LVL("TransportCustomizedElement", "TransportCustomizedElement", 6); 29 0 : } 30 : 31 : ACE_INLINE 32 0 : GUID_t TransportCustomizedElement::publication_id() const 33 : { 34 : DBG_ENTRY_LVL("TransportCustomizedElement", "publication_id", 6); 35 0 : return publication_id_; 36 : } 37 : 38 : ACE_INLINE 39 0 : void TransportCustomizedElement::set_publication_id(const GUID_t& id) 40 : { 41 0 : publication_id_ = id; 42 0 : } 43 : 44 : ACE_INLINE 45 0 : GUID_t TransportCustomizedElement::subscription_id() const 46 : { 47 0 : if (subscription_id_ != GUID_UNKNOWN) { 48 0 : return subscription_id_; 49 : } 50 : DBG_ENTRY_LVL("TransportCustomizedElement", "subscription_id", 6); 51 0 : const TransportSendElement* ose = original_send_element(); 52 0 : return ose ? ose->subscription_id() : GUID_UNKNOWN; 53 : } 54 : 55 : ACE_INLINE 56 0 : void TransportCustomizedElement::set_subscription_id(const GUID_t& id) 57 : { 58 0 : subscription_id_ = id; 59 0 : } 60 : 61 : ACE_INLINE 62 : SequenceNumber 63 0 : TransportCustomizedElement::sequence() const 64 : { 65 0 : if (sequence_ != SequenceNumber::SEQUENCENUMBER_UNKNOWN()) { 66 0 : return sequence_; 67 : } 68 0 : return orig_ ? orig_->sequence() 69 0 : : SequenceNumber::SEQUENCENUMBER_UNKNOWN(); 70 : } 71 : 72 : ACE_INLINE 73 0 : void TransportCustomizedElement::set_sequence(const SequenceNumber& value) 74 : { 75 0 : sequence_ = value; 76 0 : } 77 : 78 : ACE_INLINE 79 0 : void TransportCustomizedElement::set_fragment(TransportQueueElement* orig) 80 : { 81 0 : fragment_ = true; 82 0 : set_publication_id(orig->publication_id()); 83 0 : set_subscription_id(orig->subscription_id()); 84 0 : set_sequence(orig->sequence()); 85 0 : } 86 : 87 : } // namespace DCPS 88 : } // namespace OpenDDS 89 : 90 : OPENDDS_END_VERSIONED_NAMESPACE_DECL