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 00014 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00015 #pragma once 00016 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00017 00018 namespace OpenDDS { 00019 namespace DCPS { 00020 00021 /** 00022 * @class DataReaderCallbacks 00023 * 00024 * @brief Defines the interface for Discovery callbacks into the DataReader. 00025 * 00026 */ 00027 class DataReaderCallbacks { 00028 public: 00029 00030 DataReaderCallbacks() {} 00031 00032 virtual ~DataReaderCallbacks() {} 00033 00034 virtual void add_association(const RepoId& yourId, 00035 const WriterAssociation& writer, 00036 bool active) = 0; 00037 00038 virtual void association_complete(const RepoId& remote_id) = 0; 00039 00040 virtual void remove_associations(const WriterIdSeq& writers, 00041 CORBA::Boolean callback) = 0; 00042 00043 virtual void update_incompatible_qos(const IncompatibleQosStatus& status) = 0; 00044 00045 virtual void inconsistent_topic() = 0; 00046 00047 virtual void signal_liveliness(const RepoId& remote_participant) = 0; 00048 00049 virtual void register_for_writer(const RepoId& /*participant*/, 00050 const RepoId& /*readerid*/, 00051 const RepoId& /*writerid*/, 00052 const TransportLocatorSeq& /*locators*/, 00053 DiscoveryListener* /*listener*/) { } 00054 00055 virtual void unregister_for_writer(const RepoId& /*participant*/, 00056 const RepoId& /*readerid*/, 00057 const RepoId& /*writerid*/) { } 00058 }; 00059 00060 } // namespace DCPS 00061 } // namespace OpenDDS 00062 00063 #endif /* OPENDDS_DCPS_DATAREADERCALLBACKS_H */