OpenDDS
Snapshot(2023/04/28-20:55)
|
#include <PersistenceUpdater.h>
Classes | |
class | IdType_ExtId |
Public Types | |
typedef ACE_Allocator_Adapter< ACE_Malloc< ACE_MMAP_MEMORY_POOL, TAO_SYNCH_MUTEX > > | ALLOCATOR |
typedef struct TopicStrt< QosSeq, ACE_CString > | Topic |
Persisted topic data structure. More... | |
typedef struct ParticipantStrt< QosSeq > | Participant |
Persisted participant data structure. More... | |
typedef struct ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq > | RWActor |
Persisted actor data structure. More... | |
typedef ACE_Hash_Map_With_Allocator< IdType_ExtId, Topic * > | TopicIndex |
typedef ACE_Hash_Map_With_Allocator< IdType_ExtId, Participant * > | ParticipantIndex |
typedef ACE_Hash_Map_With_Allocator< IdType_ExtId, RWActor * > | ActorIndex |
![]() | |
typedef long | Reference_Count |
Public Member Functions | |
PersistenceUpdater () | |
virtual | ~PersistenceUpdater () |
virtual int | init (int argc, ACE_TCHAR *argv[]) |
Service object initialization. More... | |
virtual int | fini () |
ACE_Task_Base finish method. More... | |
virtual int | svc () |
ACE_Task_Base start method. More... | |
virtual void | requestImage () |
virtual void | create (const UTopic &topic) |
Add topic to be persisted. More... | |
virtual void | create (const UParticipant &participant) |
Add participant to be persisted. More... | |
virtual void | create (const URActor &actor) |
Add DataReader to be persisted. More... | |
virtual void | create (const UWActor &actor) |
Add DataWriter to be persisted. More... | |
virtual void | create (const OwnershipData &data) |
Add ownership data to be persisted. More... | |
virtual void | update (const IdPath &id, const DDS::DomainParticipantQos &qos) |
Persist updated Qos parameters for a Participant. More... | |
virtual void | update (const IdPath &id, const DDS::TopicQos &qos) |
Persist updated Qos parameters for a Topic. More... | |
virtual void | update (const IdPath &id, const DDS::DataWriterQos &qos) |
Persist updated Qos parameters for a DataWriter. More... | |
virtual void | update (const IdPath &id, const DDS::PublisherQos &qos) |
Persist updated Qos parameters for a Publisher. More... | |
virtual void | update (const IdPath &id, const DDS::DataReaderQos &qos) |
Persist updated Qos parameters for a DataReader. More... | |
virtual void | update (const IdPath &id, const DDS::SubscriberQos &qos) |
Persist updated Qos parameters for a Subscriber. More... | |
virtual void | update (const IdPath &id, const DDS::StringSeq &exprParams) |
Persist updated subscription exprParams. More... | |
virtual void | destroy (const IdPath &id, ItemType type, ActorType actor) |
Remove an entity (but not children) from persistence. More... | |
virtual void | updateLastPartId (PartIdType partId) |
Update Last Participant Id for repo. More... | |
![]() | |
virtual | ~Updater () |
![]() | |
ACE_Task_Base (ACE_Thread_Manager *=0) | |
virtual | ~ACE_Task_Base (void) |
virtual int | open (void *args=0) |
virtual int | close (u_long flags=0) |
virtual int | module_closed (void) |
virtual int | put (ACE_Message_Block *, ACE_Time_Value *=0) |
virtual int | activate (long flags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, int n_threads=1, int force_active=0, long priority=ACE_DEFAULT_THREAD_PRIORITY, int grp_id=-1, ACE_Task_Base *task=0, ACE_hthread_t thread_handles[]=0, void *stack[]=0, size_t stack_size[]=0, ACE_thread_t thread_ids[]=0, const char *thr_name[]=0) |
virtual int | wait (void) |
virtual int | suspend (void) |
virtual int | resume (void) |
int | grp_id (void) const |
void | grp_id (int) |
ACE_Thread_Manager * | thr_mgr (void) const |
void | thr_mgr (ACE_Thread_Manager *) |
int | is_reader (void) const |
int | is_writer (void) const |
size_t | thr_count (void) const |
ACE_thread_t | last_thread (void) const |
![]() | |
ACE_Service_Object (ACE_Reactor *=0) | |
virtual | ~ACE_Service_Object (void) |
![]() | |
virtual | ~ACE_Event_Handler (void) |
virtual ACE_HANDLE | get_handle (void) const |
virtual void | set_handle (ACE_HANDLE) |
virtual int | priority (void) const |
virtual void | priority (int priority) |
virtual int | handle_input (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_output (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_exception (ACE_HANDLE fd=ACE_INVALID_HANDLE) |
virtual int | handle_timeout (const ACE_Time_Value ¤t_time, const void *act=0) |
virtual int | handle_exit (ACE_Process *) |
virtual int | handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask) |
virtual int | handle_signal (int signum, siginfo_t *=0, ucontext_t *=0) |
virtual int | resume_handler (void) |
virtual int | handle_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
virtual int | handle_group_qos (ACE_HANDLE=ACE_INVALID_HANDLE) |
virtual void | reactor (ACE_Reactor *reactor) |
virtual ACE_Reactor * | reactor (void) const |
virtual ACE_Reactor_Timer_Interface * | reactor_timer_interface (void) const |
virtual Reference_Count | add_reference (void) |
virtual Reference_Count | remove_reference (void) |
Reference_Counting_Policy & | reference_counting_policy (void) |
![]() | |
ACE_Shared_Object (void) | |
virtual | ~ACE_Shared_Object (void) |
virtual int | info (ACE_TCHAR **info_string, size_t length=0) const |
Private Member Functions | |
int | parse (int argc, ACE_TCHAR *argv[]) |
void | storeUpdate (const ACE_Message_Block &data, BinSeq &storage) |
Private Attributes | |
ACE_TString | persistence_file_ |
bool | reset_ |
Manager * | um_ |
OpenDDS::DCPS::unique_ptr< ALLOCATOR > | allocator_ |
TopicIndex * | topic_index_ |
Persisted Topics. More... | |
ParticipantIndex * | participant_index_ |
Persisted Participants. More... | |
ActorIndex * | actor_index_ |
Persisted Readers and Writers. More... | |
PartIdType * | last_part_id_ |
What the last participant id is/was. More... | |
Definition at line 33 of file PersistenceUpdater.h.
Definition at line 70 of file PersistenceUpdater.h.
typedef ACE_Allocator_Adapter<ACE_Malloc <ACE_MMAP_MEMORY_POOL , TAO_SYNCH_MUTEX> > Update::PersistenceUpdater::ALLOCATOR |
Definition at line 55 of file PersistenceUpdater.h.
typedef struct ParticipantStrt< QosSeq > Update::PersistenceUpdater::Participant |
Persisted participant data structure.
Definition at line 61 of file PersistenceUpdater.h.
typedef ACE_Hash_Map_With_Allocator<IdType_ExtId, Participant*> Update::PersistenceUpdater::ParticipantIndex |
Definition at line 69 of file PersistenceUpdater.h.
typedef struct ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq > Update::PersistenceUpdater::RWActor |
Persisted actor data structure.
Definition at line 64 of file PersistenceUpdater.h.
typedef struct TopicStrt< QosSeq, ACE_CString > Update::PersistenceUpdater::Topic |
Persisted topic data structure.
Definition at line 58 of file PersistenceUpdater.h.
Definition at line 68 of file PersistenceUpdater.h.
Update::PersistenceUpdater::PersistenceUpdater | ( | ) |
Definition at line 217 of file PersistenceUpdater.cpp.
References ACE_TEXT().
|
virtual |
Definition at line 227 of file PersistenceUpdater.cpp.
|
virtual |
Add topic to be persisted.
Implements Update::Updater.
Definition at line 478 of file PersistenceUpdater.cpp.
References ACE_ALLOCATOR, allocator_, ACE_Message_Block::base(), ACE_OutputCDR::begin(), ACE_Hash_Map_With_Allocator< class, class >::bind(), ACE_CDR::consolidate(), Update::TopicStrt< Q, S >::dataType, Update::TopicStrt< Q, S >::domainId, ACE_Message_Block::length(), Update::TopicStrt< Q, S >::name, Update::TopicStrt< Q, S >::participantId, topic_index_, Update::TopicStrt< Q, S >::topicId, Update::TopicQos, and Update::TopicStrt< Q, S >::topicQos.
Referenced by create().
|
virtual |
Add participant to be persisted.
Implements Update::Updater.
Definition at line 511 of file PersistenceUpdater.cpp.
References ACE_ALLOCATOR, allocator_, ACE_Message_Block::base(), ACE_OutputCDR::begin(), ACE_Hash_Map_With_Allocator< class, class >::bind(), ACE_CDR::consolidate(), Update::ParticipantStrt< Q >::domainId, ACE_Message_Block::length(), Update::ParticipantStrt< Q >::owner, participant_index_, Update::ParticipantStrt< Q >::participantId, Update::ParticipantStrt< QosSeq >::participantId, Update::ParticipantQos, and Update::ParticipantStrt< Q >::participantQos.
|
virtual |
Add DataReader to be persisted.
Implements Update::Updater.
Definition at line 545 of file PersistenceUpdater.cpp.
References ACE_ALLOCATOR, actor_index_, Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::actorId, allocator_, ACE_Message_Block::base(), ACE_OutputCDR::begin(), ACE_Hash_Map_With_Allocator< class, class >::bind(), Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::callback, ACE_CDR::consolidate(), Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::contentSubscriptionProfile, create(), Update::DataReader, Update::DataReaderQos, Update::DataWriter, Update::DataWriterQos, Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::domainId, Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::drdwQos, Update::ContentSubscriptionBin::filterClassName, ACE_Message_Block::length(), Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::participantId, Update::PublisherQos, Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::pubsubQos, ACE_OutputCDR::reset(), Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::serializedTypeInfo, Update::SubscriberQos, Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::topicId, Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::transportContext, and Update::ActorStrt< PSQ, RWQ, C, T, CSP, STI >::transportInterfaceInfo.
|
virtual |
Add DataWriter to be persisted.
Implements Update::Updater.
|
virtual |
Add ownership data to be persisted.
Implements Update::Updater.
Definition at line 672 of file PersistenceUpdater.cpp.
|
virtual |
Remove an entity (but not children) from persistence.
Implements Update::Updater.
Definition at line 839 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), Update::Actor, actor_index_, allocator_, Update::TopicStrt< QosSeq, ACE_CString >::cleanup(), Update::ParticipantStrt< QosSeq >::cleanup(), Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::cleanup(), LM_ERROR, Update::Participant, participant_index_, Update::Topic, topic_index_, and ACE_Hash_Map_With_Allocator< class, class >::unbind().
|
virtual |
ACE_Task_Base finish method.
Reimplemented from ACE_Shared_Object.
Definition at line 393 of file PersistenceUpdater.cpp.
|
virtual |
Service object initialization.
Reimplemented from ACE_Shared_Object.
Definition at line 280 of file PersistenceUpdater.cpp.
References ACE_DEFAULT_BASE_ADDR, ACE_ERROR, ACE_NEW_RETURN, ACE_TEXT(), actor_index_, Update::Manager::add(), allocator_, ACE_String_Base< char >::c_str(), Update::createIndex(), Update::index_cleanup(), ACE_Dynamic_Service< class >::instance(), last_part_id_, LM_ERROR, parse(), participant_index_, persistence_file_, reset_, topic_index_, and um_.
|
private |
Definition at line 361 of file PersistenceUpdater.cpp.
References ACE_DEBUG, ACE_TEXT(), ACE_OS::atoi(), LM_DEBUG, persistence_file_, reset_, and ACE_OS::strcasecmp().
Referenced by init().
|
virtual |
Request an image refresh to be sent upstream. This is currently done synchronously. TBD: Move to an asynchronous model
Implements Update::Updater.
Definition at line 405 of file PersistenceUpdater.cpp.
References ACE_DEBUG, actor_index_, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::actorId, Update::ImageData< T, P, A, W >::actors, ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_Null_Mutex >::begin(), ACE_String_Base< char >::c_str(), Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::callback, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::contentSubscriptionProfile, Update::DataReader, Update::TopicStrt< QosSeq, ACE_CString >::dataType, OpenDDS::DCPS::DCPS_debug_level, Update::TopicStrt< QosSeq, ACE_CString >::domainId, Update::ParticipantStrt< QosSeq >::domainId, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::domainId, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::drdwQos, ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_Null_Mutex >::end(), Update::ContentSubscriptionBin::exprParams, Update::ContentSubscriptionBin::filterClassName, Update::ContentSubscriptionBin::filterExpr, last_part_id_, Update::ImageData< T, P, A, W >::lastPartId, LM_DEBUG, Update::TopicStrt< QosSeq, ACE_CString >::name, OPENDDS_STRING, Update::ParticipantStrt< QosSeq >::owner, participant_index_, Update::TopicStrt< QosSeq, ACE_CString >::participantId, Update::ParticipantStrt< QosSeq >::participantId, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::participantId, Update::ParticipantQos, Update::ParticipantStrt< QosSeq >::participantQos, Update::ImageData< T, P, A, W >::participants, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::pubsubQos, Update::Manager::pushImage(), Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::serializedTypeInfo, topic_index_, Update::TopicStrt< QosSeq, ACE_CString >::topicId, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::topicId, Update::TopicQos, Update::TopicStrt< QosSeq, ACE_CString >::topicQos, Update::ImageData< T, P, A, W >::topics, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::transportContext, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::transportInterfaceInfo, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::type, and um_.
|
private |
Definition at line 882 of file PersistenceUpdater.cpp.
References ACE_ALLOCATOR, allocator_, ACE_Message_Block::base(), ACE_Message_Block::length(), and ACE_OS::memcpy().
Referenced by update().
|
virtual |
ACE_Task_Base start method.
Reimplemented from ACE_Task_Base.
Definition at line 399 of file PersistenceUpdater.cpp.
|
virtual |
Persist updated Qos parameters for a Participant.
Implements Update::Updater.
Definition at line 678 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), ACE_OutputCDR::begin(), ACE_CDR::consolidate(), ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, participant_index_, Update::ParticipantStrt< QosSeq >::participantQos, and storeUpdate().
|
virtual |
Persist updated Qos parameters for a Topic.
Implements Update::Updater.
Definition at line 701 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), ACE_OutputCDR::begin(), ACE_CDR::consolidate(), ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, storeUpdate(), topic_index_, and Update::TopicStrt< QosSeq, ACE_CString >::topicQos.
|
virtual |
Persist updated Qos parameters for a DataWriter.
Implements Update::Updater.
Definition at line 724 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), actor_index_, ACE_OutputCDR::begin(), ACE_CDR::consolidate(), Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::drdwQos, ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, and storeUpdate().
|
virtual |
Persist updated Qos parameters for a Publisher.
Implements Update::Updater.
Definition at line 747 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), actor_index_, ACE_OutputCDR::begin(), ACE_CDR::consolidate(), ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::pubsubQos, and storeUpdate().
|
virtual |
Persist updated Qos parameters for a DataReader.
Implements Update::Updater.
Definition at line 770 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), actor_index_, ACE_OutputCDR::begin(), ACE_CDR::consolidate(), Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::drdwQos, ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, and storeUpdate().
|
virtual |
Persist updated Qos parameters for a Subscriber.
Implements Update::Updater.
Definition at line 793 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), actor_index_, ACE_OutputCDR::begin(), ACE_CDR::consolidate(), ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::pubsubQos, and storeUpdate().
|
virtual |
Persist updated subscription exprParams.
Implements Update::Updater.
Definition at line 816 of file PersistenceUpdater.cpp.
References ACE_ERROR, ACE_TEXT(), actor_index_, allocator_, ACE_OutputCDR::begin(), ACE_CDR::consolidate(), Update::ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin, BinSeq >::contentSubscriptionProfile, Update::ContentSubscriptionBin::exprParams, ACE_Hash_Map_With_Allocator< class, class >::find(), LM_ERROR, and storeUpdate().
|
virtual |
Update Last Participant Id for repo.
Reimplemented from Update::Updater.
Definition at line 894 of file PersistenceUpdater.cpp.
References last_part_id_.
|
private |
Persisted Readers and Writers.
Definition at line 150 of file PersistenceUpdater.h.
Referenced by create(), destroy(), init(), requestImage(), and update().
|
private |
Definition at line 141 of file PersistenceUpdater.h.
Referenced by create(), destroy(), init(), storeUpdate(), and update().
|
private |
What the last participant id is/was.
Definition at line 153 of file PersistenceUpdater.h.
Referenced by init(), requestImage(), and updateLastPartId().
|
private |
Persisted Participants.
Definition at line 147 of file PersistenceUpdater.h.
Referenced by create(), destroy(), init(), requestImage(), and update().
|
private |
Definition at line 136 of file PersistenceUpdater.h.
|
private |
Definition at line 137 of file PersistenceUpdater.h.
|
private |
Persisted Topics.
Definition at line 144 of file PersistenceUpdater.h.
Referenced by create(), destroy(), init(), requestImage(), and update().
|
private |
Definition at line 139 of file PersistenceUpdater.h.
Referenced by init(), and requestImage().