OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg > Class Template Reference

#include <FaceTSS.h>

Inheritance diagram for OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >:
Collaboration graph
[legend]

List of all members.

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)

Detailed Description

template<typename Msg>
class OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >

Definition at line 58 of file FaceTSS.h.


Member Typedef Documentation

template<typename Msg>
typedef DCPS::DDSTraits<Msg>::DataReaderType OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >::DataReader

Definition at line 63 of file FaceTSS.h.


Constructor & Destructor Documentation

template<typename Msg >
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 }

template<typename Msg >
OpenDDS::FaceTSS::Entities::DDSTypedAdapter< Msg >::~DDSTypedAdapter (  )  [inline]

Definition at line 107 of file FaceTSS.h.

00108 {
00109 }


Member Function Documentation

template<typename Msg >
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 }


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

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1