MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / get_ordered_data

Method get_ordered_data

dds/DCPS/DataReaderImpl.cpp:2926–2953  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2924
2925
2926void DataReaderImpl::get_ordered_data(GroupRakeData& data,
2927 DDS::SampleStateMask sample_states,
2928 DDS::ViewStateMask view_states,
2929 DDS::InstanceStateMask instance_states)
2930{
2931 SubscriptionInstanceSet localsubs;
2932 {
2933 ACE_GUARD(ACE_Recursive_Thread_Mutex, instance_guard, instances_lock_);
2934 for (SubscriptionInstanceMapType::iterator iter = instances_.begin();
2935 iter != instances_.end(); ++iter) {
2936 localsubs.insert(iter->second);
2937 }
2938 }
2939
2940 ACE_GUARD(ACE_Recursive_Thread_Mutex, guard, sample_lock_);
2941
2942 for (SubscriptionInstanceSet::iterator iter = localsubs.begin(); iter != localsubs.end(); ++iter) {
2943 const SubscriptionInstance_rch inst = *iter;
2944 if (inst->instance_state_->match(view_states, instance_states)) {
2945 size_t i(0);
2946 for (ReceivedDataElement* item = inst->rcvd_samples_.get_next_match(sample_states, 0);
2947 item; item = inst->rcvd_samples_.get_next_match(sample_states, item)) {
2948 data.insert_sample(item, &inst->rcvd_samples_, *iter, ++i);
2949 group_coherent_ordered_data_.insert_sample(item, &inst->rcvd_samples_, *iter, ++i);
2950 }
2951 }
2952 }
2953}
2954
2955#endif // OPENDDS_NO_OBJECT_MODEL_PROFILE
2956

Callers 1

get_datareadersMethod · 0.80

Calls 6

get_next_matchMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
matchMethod · 0.45
insert_sampleMethod · 0.45

Tested by

no test coverage detected