RtpsCustomizedElement.h

Go to the documentation of this file.
00001 /*
00002  *
00003  *
00004  * Distributed under the OpenDDS License.
00005  * See: http://www.opendds.org/license.html
00006  */
00007 
00008 #ifndef OPENDDS_RTPSCUSTOMIZEDELEMENT_H
00009 #define OPENDDS_RTPSCUSTOMIZEDELEMENT_H
00010 
00011 #include "Rtps_Udp_Export.h"
00012 
00013 #include "dds/DCPS/transport/framework/TransportCustomizedElement.h"
00014 
00015 #include "dds/DCPS/Dynamic_Cached_Allocator_With_Overflow_T.h"
00016 
00017 namespace OpenDDS {
00018 namespace DCPS {
00019 
00020 class OpenDDS_Rtps_Udp_Export RtpsCustomizedElement
00021   : public TransportCustomizedElement {
00022 
00023 public:
00024   static RtpsCustomizedElement* alloc(TransportQueueElement* orig,
00025                                       ACE_Message_Block* msg,
00026                                       ACE_Allocator* allocator = 0);
00027 
00028   SequenceNumber sequence() const;
00029   SequenceNumber last_fragment() const;
00030 
00031 private:
00032   RtpsCustomizedElement(TransportQueueElement* orig,
00033                         ACE_Message_Block* msg,
00034                         ACE_Allocator* allocator);
00035   virtual ~RtpsCustomizedElement();
00036 
00037   ElementPair fragment(size_t size);
00038   const ACE_Message_Block* msg_payload() const;
00039 
00040   SequenceNumber seq_, last_frag_;
00041 };
00042 
00043 typedef Dynamic_Cached_Allocator_With_Overflow<ACE_Thread_Mutex>
00044   RtpsCustomizedElementAllocator;
00045 
00046 
00047 } // namespace DCPS
00048 } // namespace OpenDDS
00049 
00050 #if defined (__ACE_INLINE__)
00051 #include "RtpsCustomizedElement.inl"
00052 #endif /* __ACE_INLINE__ */
00053 
00054 #endif  /* OPENDDS_RTPSCUSTOMIZEDELEMENT_H */

Generated on Fri Feb 12 20:05:25 2016 for OpenDDS by  doxygen 1.4.7