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.h" 00014 00015 namespace Update { 00016 00017 class Updater { 00018 public: 00019 // Virtual destructor. 00020 virtual ~Updater(); 00021 00022 // Request an image refresh to be sent to 00023 // the specified callback (asynchronously). 00024 virtual void requestImage() = 0; 00025 00026 // Propagate that an entity has been created. 00027 virtual void create(const UTopic& topic) = 0; 00028 virtual void create(const UParticipant& participant) = 0; 00029 virtual void create(const URActor& actor) = 0; 00030 virtual void create(const UWActor& actor) = 0; 00031 virtual void create(const OwnershipData& data) = 0; 00032 00033 // Propagate updated Qos parameters for an entity. 00034 virtual void update(const IdPath& id, const DDS::DomainParticipantQos& qos) = 0; 00035 virtual void update(const IdPath& id, const DDS::TopicQos& qos) = 0; 00036 virtual void update(const IdPath& id, const DDS::DataWriterQos& qos) = 0; 00037 virtual void update(const IdPath& id, const DDS::PublisherQos& qos) = 0; 00038 virtual void update(const IdPath& id, const DDS::DataReaderQos& qos) = 0; 00039 virtual void update(const IdPath& id, const DDS::SubscriberQos& qos) = 0; 00040 virtual void update(const IdPath& id, const DDS::StringSeq& exprParams) = 0; 00041 00042 // Propagate that an entity has been destroyed. 00043 virtual void destroy(const IdPath& id, ItemType type, ActorType actor) = 0; 00044 }; 00045 00046 inline 00047 Updater::~Updater() 00048 { 00049 } 00050 00051 } // namespace Update 00052 00053 #endif /* UPDATER_H */