#include <ReceivedDataStrategy.h>
Public Member Functions | |
SourceDataStrategy (ReceivedDataElementList &rcvd_samples) | |
~SourceDataStrategy () | |
virtual void | add (ReceivedDataElement *data_sample) |
Definition at line 49 of file ReceivedDataStrategy.h.
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.
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 }