OpenDDS::DCPS::SourceDataStrategy Class Reference

#include <ReceivedDataStrategy.h>

Inheritance diagram for OpenDDS::DCPS::SourceDataStrategy:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::SourceDataStrategy:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SourceDataStrategy (ReceivedDataElementList &rcvd_samples)
 ~SourceDataStrategy ()
virtual void add (ReceivedDataElement *data_sample)

Detailed Description

Definition at line 49 of file ReceivedDataStrategy.h.


Constructor & Destructor Documentation

OpenDDS::DCPS::SourceDataStrategy::SourceDataStrategy ( ReceivedDataElementList rcvd_samples  )  [explicit]

Definition at line 128 of file ReceivedDataStrategy.cpp.

00130   : ReceivedDataStrategy(rcvd_samples)
00131 {}

OpenDDS::DCPS::SourceDataStrategy::~SourceDataStrategy (  ) 

Definition at line 133 of file ReceivedDataStrategy.cpp.

00134 {}


Member Function Documentation

void OpenDDS::DCPS::SourceDataStrategy::add ( ReceivedDataElement data_sample  )  [virtual]

Reimplemented from OpenDDS::DCPS::ReceivedDataStrategy.

Definition at line 137 of file ReceivedDataStrategy.cpp.

References OpenDDS::DCPS::ReceivedDataElementList::add(), OpenDDS::DCPS::ReceivedDataElementList::head_, OpenDDS::DCPS::ReceivedDataElement::next_data_sample_, OpenDDS::DCPS::ReceivedDataElement::previous_data_sample_, OpenDDS::DCPS::ReceivedDataStrategy::rcvd_samples_, OpenDDS::DCPS::ReceivedDataElementList::size_, and OpenDDS::DCPS::ReceivedDataElement::source_timestamp_.

00138 {
00139   for (ReceivedDataElement* it = this->rcvd_samples_.head_;
00140        it != 0; it = it->next_data_sample_) {
00141     if (data_sample->source_timestamp_ < it->source_timestamp_) {
00142       data_sample->previous_data_sample_ = it->previous_data_sample_;
00143       data_sample->next_data_sample_ = it;
00144 
00145       // Are we replacing the head?
00146       if (it->previous_data_sample_ == 0) {
00147         this->rcvd_samples_.head_ = data_sample;
00148 
00149       } else {
00150         it->previous_data_sample_->next_data_sample_ = data_sample;
00151       }
00152 
00153       it->previous_data_sample_ = data_sample;
00154 
00155       ++this->rcvd_samples_.size_;
00156 
00157       return;
00158     }
00159   }
00160 
00161   this->rcvd_samples_.add(data_sample);
00162 }

Here is the call graph for this function:


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1