00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_DATAREADERCALLBACKS_H 00009 #define OPENDDS_DCPS_DATAREADERCALLBACKS_H 00010 00011 #include "dds/DCPS/Definitions.h" 00012 #include "dds/DCPS/DiscoveryListener.h" 00013 #include "dds/DCPS/RcObject.h" 00014 00015 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00016 #pragma once 00017 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00018 00019 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 00020 00021 namespace OpenDDS { 00022 namespace DCPS { 00023 00024 /** 00025 * @class DataReaderCallbacks 00026 * 00027 * @brief Defines the interface for Discovery callbacks into the DataReader. 00028 * 00029 */ 00030 class DataReaderCallbacks 00031 : public virtual RcObject { 00032 public: 00033 00034 DataReaderCallbacks() {} 00035 00036 virtual ~DataReaderCallbacks() {} 00037 00038 virtual void add_association(const RepoId& yourId, 00039 const WriterAssociation& writer, 00040 bool active) = 0; 00041 00042 virtual void association_complete(const RepoId& remote_id) = 0; 00043 00044 virtual void remove_associations(const WriterIdSeq& writers, 00045 CORBA::Boolean callback) = 0; 00046 00047 virtual void update_incompatible_qos(const IncompatibleQosStatus& status) = 0; 00048 00049 virtual void inconsistent_topic() = 0; 00050 00051 virtual void signal_liveliness(const RepoId& remote_participant) = 0; 00052 00053 virtual void register_for_writer(const RepoId& /*participant*/, 00054 const RepoId& /*readerid*/, 00055 const RepoId& /*writerid*/, 00056 const TransportLocatorSeq& /*locators*/, 00057 DiscoveryListener* /*listener*/) { } 00058 00059 virtual void unregister_for_writer(const RepoId& /*participant*/, 00060 const RepoId& /*readerid*/, 00061 const RepoId& /*writerid*/) { } 00062 }; 00063 00064 } // namespace DCPS 00065 } // namespace OpenDDS 00066 00067 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00068 00069 #endif /* OPENDDS_DCPS_DATAREADERCALLBACKS_H */