00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 */ 00007 00008 #ifndef UPDATER_H 00009 #define UPDATER_H 00010 00011 #include "UpdateDataTypes.h" 00012 #include "dds/DCPS/GuidUtils.h" 00013 #include "ace/Synch_Traits.h" 00014 00015 OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 00016 00017 namespace Update { 00018 00019 /** 00020 * Base class for use by the UpdateManager class. 00021 */ 00022 class Updater { 00023 public: 00024 virtual ~Updater(); 00025 00026 /** 00027 * Request an image refresh to be sent to the specified 00028 * callback (asynchronously). 00029 */ 00030 virtual void requestImage() = 0; 00031 00032 ///@{ 00033 /// Propagate an entity has been created. 00034 virtual void create(const UTopic& topic) = 0; 00035 virtual void create(const UParticipant& participant) = 0; 00036 virtual void create(const URActor& actor) = 0; 00037 virtual void create(const UWActor& actor) = 0; 00038 virtual void create(const OwnershipData& data) = 0; 00039 ///@} 00040 00041 ///@{ 00042 /// Propagate updated Qos parameters for an entity. 00043 virtual void update(const IdPath& id, const DDS::DomainParticipantQos& qos) = 0; 00044 virtual void update(const IdPath& id, const DDS::TopicQos& qos) = 0; 00045 virtual void update(const IdPath& id, const DDS::DataWriterQos& qos) = 0; 00046 virtual void update(const IdPath& id, const DDS::PublisherQos& qos) = 0; 00047 virtual void update(const IdPath& id, const DDS::DataReaderQos& qos) = 0; 00048 virtual void update(const IdPath& id, const DDS::SubscriberQos& qos) = 0; 00049 virtual void update(const IdPath& id, const DDS::StringSeq& exprParams) = 0; 00050 ///@} 00051 00052 /// Propagate that an entity has been destroyed. 00053 virtual void destroy(const IdPath& id, ItemType type, ActorType actor) = 0; 00054 00055 /// Update Last Participant Id for the repo 00056 virtual void updateLastPartId(PartIdType partId) { 00057 ACE_UNUSED_ARG(partId); 00058 }; 00059 }; 00060 00061 inline 00062 Updater::~Updater() 00063 { 00064 } 00065 00066 } // namespace Update 00067 00068 OPENDDS_END_VERSIONED_NAMESPACE_DECL 00069 00070 #endif /* UPDATER_H */