#include <FaceTSS.h>
Public Types | |
typedef DCPS::DDSTraits< Msg > ::DataReaderType | DataReader |
Public Member Functions | |
DDSTypedAdapter (FaceReceiver &rcvr) | |
~DDSTypedAdapter () | |
virtual FACE::RETURN_CODE_TYPE | messages_waiting (FACE::WAITING_RANGE_TYPE &num_waiting) |
Definition at line 58 of file FaceTSS.h.
typedef DCPS::DDSTraits<Msg>::DataReaderType OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >::DataReader |
OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >::DDSTypedAdapter | ( | FaceReceiver & | rcvr | ) | [inline] |
Definition at line 96 of file FaceTSS.h.
00097 : FaceReceiver() 00098 { 00099 dr = rcvr.dr; 00100 last_msg_header = rcvr.last_msg_header; 00101 last_msg_tid = rcvr.last_msg_tid; 00102 sum_recvd_msgs_latency = rcvr.sum_recvd_msgs_latency; 00103 total_msgs_recvd = rcvr.total_msgs_recvd; 00104 }
OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >::~DDSTypedAdapter | ( | ) | [inline] |
FACE::RETURN_CODE_TYPE OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >::messages_waiting | ( | FACE::WAITING_RANGE_TYPE & | num_waiting | ) | [inline, virtual] |
Reimplemented from OpenDDS::FaceTSS::Entities::FaceReceiver.
Definition at line 112 of file FaceTSS.h.
References DDS::ALIVE_INSTANCE_STATE, DDS::ANY_SAMPLE_STATE, DDS::ANY_VIEW_STATE, OpenDDS::FaceTSS::Entities::FaceReceiver::dr, DDS::LENGTH_UNLIMITED, DDS::RETCODE_NO_DATA, and DDS::RETCODE_OK.
00113 { 00114 const typename DataReader::_var_type typedReader = 00115 DataReader::_narrow(dr); 00116 if (!typedReader) { 00117 return FACE::INVALID_PARAM; 00118 } 00119 const DDS::ReadCondition_var rc = 00120 typedReader->create_readcondition(DDS::ANY_SAMPLE_STATE, 00121 DDS::ANY_VIEW_STATE, 00122 DDS::ALIVE_INSTANCE_STATE); 00123 00124 DDS::ReturnCode_t ret; 00125 typename DCPS::DDSTraits<Msg>::MessageSequenceType seq; 00126 DDS::SampleInfoSeq sinfo; 00127 FACE::WAITING_RANGE_TYPE valid_waiting = 0; 00128 ret = typedReader->read_w_condition(seq, sinfo, DDS::LENGTH_UNLIMITED, rc); 00129 if (ret == DDS::RETCODE_OK) { 00130 for (CORBA::ULong i = 0; i < seq.length(); ++i) { 00131 if (sinfo[i].valid_data) { 00132 ++valid_waiting; 00133 } 00134 } 00135 num_waiting = valid_waiting; 00136 return FACE::RC_NO_ERROR; 00137 } else if (ret == DDS::RETCODE_NO_DATA) { 00138 num_waiting = 0; 00139 return FACE::RC_NO_ERROR; 00140 } 00141 return FACE::NOT_AVAILABLE; 00142 }