00001 /* 00002 * Distributed under the OpenDDS License. 00003 * See: http://www.opendds.org/license.html 00004 */ 00005 00006 #ifndef OPENDDS_DCPS_DISCOVERYLISTENER_H 00007 #define OPENDDS_DCPS_DISCOVERYLISTENER_H 00008 00009 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00010 #pragma once 00011 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00012 00013 namespace OpenDDS { 00014 namespace DCPS { 00015 00016 /** 00017 * @class DiscoveryListener 00018 * 00019 * @brief Defines the interface that allows DataWriters (and lower levels) to inform discovery. 00020 * 00021 */ 00022 class DiscoveryListener { 00023 public: 00024 00025 DiscoveryListener() {} 00026 00027 virtual ~DiscoveryListener() {} 00028 00029 virtual void reader_exists(const RepoId& readerid, const RepoId& writerid) = 0; 00030 virtual void reader_does_not_exist(const RepoId& readerid, const RepoId& writerid) = 0; 00031 virtual void writer_exists(const RepoId& writerid, const RepoId& readerid) = 0; 00032 virtual void writer_does_not_exist(const RepoId& writerid, const RepoId& readerid) = 0; 00033 }; 00034 00035 } // namespace DCPS 00036 } // namespace OpenDDS 00037 00038 #endif /* OPENDDS_DCPS_DISCOVERYLISTENER_H */