00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef OPENDDS_DCPS_DATAWRITERREMOTE_H 00009 #define OPENDDS_DCPS_DATAWRITERREMOTE_H 00010 00011 #include "dds/DCPS/InfoRepoDiscovery/DataWriterRemoteS.h" 00012 #include "dds/DCPS/Definitions.h" 00013 #include "dds/DCPS/RcHandle_T.h" 00014 #include "dds/DCPS/DataWriterCallbacks.h" 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 /** 00026 * @class DataWriterRemoteImpl 00027 * 00028 * @brief Implements the OpenDDS::DCPS::DataWriterRemote interface. 00029 * 00030 */ 00031 class DataWriterRemoteImpl 00032 : public virtual POA_OpenDDS::DCPS::DataWriterRemote { 00033 public: 00034 explicit DataWriterRemoteImpl(DataWriterCallbacks& parent); 00035 00036 virtual ~DataWriterRemoteImpl(); 00037 00038 virtual void add_association(const RepoId& yourId, 00039 const ReaderAssociation& readers, 00040 bool active); 00041 00042 virtual void association_complete(const RepoId& remote_id); 00043 00044 virtual void remove_associations(const ReaderIdSeq& readers, 00045 CORBA::Boolean callback); 00046 00047 virtual void update_incompatible_qos(const IncompatibleQosStatus& status); 00048 00049 virtual void update_subscription_params(const RepoId& readerId, 00050 const DDS::StringSeq& exprParams); 00051 00052 void detach_parent(); 00053 00054 private: 00055 WeakRcHandle<DataWriterCallbacks> parent_; 00056 }; 00057 00058 } // namespace DCPS 00059 } // namespace OpenDDS 00060 00061 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00062 00063 #endif