21 #ifndef VORTEX_FACE_DATALISTENER_HPP_    22 #define VORTEX_FACE_DATALISTENER_HPP_    30 template <
typename TYPE>
    31 class DataListener : 
public virtual dds::sub::NoOpDataReaderListener<TYPE>
    37                  const std::string &cn,
    38                  typename ::FACE::Read_Callback<TYPE>::send_event cb) :
    49     virtual void on_data_available (dds::sub::DataReader<TYPE>& reader)
    53             typename dds::sub::LoanedSamples<TYPE> samples = reader.take();
    54             typename dds::sub::LoanedSamples<TYPE>::const_iterator sample;
    55             for (sample = samples.begin(); sample != samples.end(); ++sample) {
    56                 TYPE data = sample->data();
    57                 const dds::sub::SampleInfo& info = sample->info();
    59                     this->callback(transactionId++,
    66                         FACE_REPORT_ERROR(status, 
"This was returned by the callback for '%s'<%s> (we can not handle that).", this->connectionName.c_str(), this->typeName.c_str());
    70         } 
catch (
const dds::core::Exception& e) {
    80     std::string connectionName;
    83     typename ::FACE::Read_Callback<TYPE>::send_event callback;
 Vortex::FACE::smart_ptr_traits< DataListener< TYPE > >::shared_ptr shared_ptr
#define FACE_REPORT_ERROR(code,...)
DataListener(const std::string &tn, const std::string &cn, typename ::FACE::Read_Callback< TYPE >::send_event cb)
int64_t TRANSACTION_ID_TYPE
VORTEX_FACE_API ::FACE::RETURN_CODE_TYPE exceptionToReturnCode(const dds::core::Exception &e)
dds::core::array< bool, 32 > WAITSET_TYPE