00001 #ifndef DATAREADER_LISTENER_IMPL
00002 #define DATAREADER_LISTENER_IMPL
00003
00004 #include <dds/DdsDcpsSubscriptionS.h>
00005
00006 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00007 #pragma once
00008 #endif
00009
00010 namespace ddsnc{
00011
00012
00021 class DataReaderListenerImpl
00022 : public virtual OpenDDS::DCPS::LocalObject<DDS::DataReaderListener>
00023 {
00024 public:
00025
00026 DataReaderListenerImpl ();
00027
00028
00029 ~DataReaderListenerImpl (void);
00030
00031 void on_requested_deadline_missed (
00032 DDS::DataReader_ptr reader,
00033 const DDS::RequestedDeadlineMissedStatus & status)
00034 throw (CORBA::SystemException);
00035
00036 void on_requested_incompatible_qos (
00037 DDS::DataReader_ptr reader,
00038 const DDS::RequestedIncompatibleQosStatus & status)
00039 throw (CORBA::SystemException);
00040
00041 void on_liveliness_changed (
00042 DDS::DataReader_ptr reader,
00043 const DDS::LivelinessChangedStatus & status)
00044 throw (CORBA::SystemException);
00045
00046 void on_subscription_match (
00047 DDS::DataReader_ptr reader,
00048 const DDS::SubscriptionMatchStatus & status
00049 )
00050 throw (CORBA::SystemException);
00051
00052 void on_sample_rejected(
00053 DDS::DataReader_ptr reader,
00054 const DDS::SampleRejectedStatus& status
00055 )
00056 throw (CORBA::SystemException);
00057
00058 virtual void on_data_available(
00059 DDS::DataReader_ptr reader
00060 )
00061 throw (CORBA::SystemException);
00062
00063 void on_sample_lost(
00064 DDS::DataReader_ptr reader,
00065 const DDS::SampleLostStatus& status
00066 )
00067 throw (CORBA::SystemException);
00068
00069 long num_reads() const {
00070 return num_reads_;
00071 }
00072
00073 protected:
00074 DDS::DataReader_var reader_;
00075 long num_reads_;
00076 };
00077 }
00078 #endif