Update Namespace Reference

Classes

struct  TopicStrt< QosSeq, ACE_CString >
struct  ParticipantStrt< QosSeq >
struct  ActorStrt< QosSeq, QosSeq, ACE_CString, BinSeq, ContentSubscriptionBin >
class  PersistenceUpdater
struct  IdPath
struct  OwnershipData
struct  TopicStrt
struct  ParticipantStrt
struct  ContentSubscriptionInfo
struct  ContentSubscriptionBin
struct  ActorStrt
struct  ImageData
class  SeqGuard
class  Manager
class  Updater

Typedefs

typedef DDS::DomainId_t DomainIdType
typedef OpenDDS::DCPS::RepoId IdType
typedef std::pair< size_t, char * > BinSeq
typedef std::pair< SpecificQos,
BinSeq
QosSeq
typedef long PartIdType
typedef struct TopicStrt
< DDS::TopicQos &, std::string > 
UTopic
typedef struct TopicStrt
< QosSeq, std::string > 
DTopic
typedef struct ParticipantStrt
< DDS::DomainParticipantQos & > 
UParticipant
typedef struct ParticipantStrt
< QosSeq
DParticipant
typedef struct ActorStrt
< DDS::SubscriberQos
&, DDS::DataReaderQos
&, std::string,
OpenDDS::DCPS::TransportLocatorSeq
&, ContentSubscriptionInfo & > 
URActor
typedef struct ActorStrt
< DDS::PublisherQos
&, DDS::DataWriterQos
&, std::string,
OpenDDS::DCPS::TransportLocatorSeq
&, ContentSubscriptionInfo & > 
UWActor
typedef struct ActorStrt
< QosSeq, QosSeq, std::string,
BinSeq, ContentSubscriptionBin
DActor
typedef struct ImageData
< UTopic *, UParticipant
*, URActor *, UWActor * > 
UImage
typedef struct ImageData
< DTopic, DParticipant, DActor,
DActor
DImage

Enumerations

enum  ItemType { Topic, Participant, Actor }
enum  ActorType { DataReader, DataWriter }
enum  SpecificQos {
  NoQos, ParticipantQos, TopicQos, DataWriterQos,
  PublisherQos, DataReaderQos, SubscriberQos
}

Functions

void * createIndex (const std::string &tag, PersistenceUpdater::ALLOCATOR &allocator, size_t size, bool &exists)
template<typename I >
void index_cleanup (I *index, PersistenceUpdater::ALLOCATOR *allocator)

Typedef Documentation

typedef std::pair<size_t, char*> Update::BinSeq

Definition at line 36 of file UpdateDataTypes.h.

Definition at line 175 of file UpdateDataTypes.h.

Definition at line 195 of file UpdateDataTypes.h.

Definition at line 34 of file UpdateDataTypes.h.

Definition at line 106 of file UpdateDataTypes.h.

typedef struct TopicStrt< QosSeq, std::string > Update::DTopic

Definition at line 86 of file UpdateDataTypes.h.

Definition at line 35 of file UpdateDataTypes.h.

typedef long Update::PartIdType

Definition at line 38 of file UpdateDataTypes.h.

typedef std::pair<SpecificQos, BinSeq> Update::QosSeq

Definition at line 37 of file UpdateDataTypes.h.

Definition at line 194 of file UpdateDataTypes.h.

Definition at line 105 of file UpdateDataTypes.h.

Definition at line 163 of file UpdateDataTypes.h.

typedef struct TopicStrt< DDS::TopicQos &, std::string > Update::UTopic

Definition at line 85 of file UpdateDataTypes.h.

Definition at line 169 of file UpdateDataTypes.h.


Enumeration Type Documentation

Enumerator:
DataReader 
DataWriter 

Definition at line 23 of file UpdateDataTypes.h.

00023 { DataReader, DataWriter };

Enumerator:
Topic 
Participant 
Actor 

Definition at line 22 of file UpdateDataTypes.h.

00022 { Topic, Participant, Actor };

Enumerator:
NoQos 
ParticipantQos 
TopicQos 
DataWriterQos 
PublisherQos 
DataReaderQos 
SubscriberQos 

Definition at line 24 of file UpdateDataTypes.h.

00024                  {
00025   NoQos,
00026   ParticipantQos,
00027   TopicQos,
00028   DataWriterQos,
00029   PublisherQos,
00030   DataReaderQos,
00031   SubscriberQos
00032 };


Function Documentation

void* Update::createIndex ( const std::string &  tag,
PersistenceUpdater::ALLOCATOR &  allocator,
size_t  size,
bool &  exists 
)

Definition at line 228 of file PersistenceUpdater.cpp.

References ACE_TEXT(), ACE_Allocator_Adapter< class >::bind(), ACE_Allocator_Adapter< class >::find(), ACE_Allocator_Adapter< class >::free(), LM_ERROR, and ACE_Allocator_Adapter< class >::malloc().

Referenced by Update::PersistenceUpdater::init().

00231 {
00232   void* index = 0;
00233 
00234   // This is the easy case since if we find hash table in the
00235   // memory-mapped file we know it's already initialized.
00236   if (allocator.find(tag.c_str(), index) == 0) {
00237     exists = true;
00238     return index;
00239 
00240   } else {
00241     ACE_ALLOCATOR_RETURN(index, allocator.malloc(size), 0);
00242 
00243     if (allocator.bind(tag.c_str(), index) == -1) {
00244       allocator.free(index);
00245       index = 0;
00246     }
00247   }
00248 
00249   if (!index) {
00250     ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: PersistenceUpdater::init "
00251       "Initial allocation/Bind failed for %C.\n"), tag.c_str()));
00252   }
00253 
00254   return index;
00255 }

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename I >
void Update::index_cleanup ( I *  index,
PersistenceUpdater::ALLOCATOR *  allocator 
) [inline]

Definition at line 258 of file PersistenceUpdater.cpp.

References ACE_TEXT(), and LM_ERROR.

Referenced by Update::PersistenceUpdater::init().

00260 {
00261   for (typename I::ITERATOR iter = index->begin()
00262                                    ; iter != index->end();) {
00263     typename I::ITERATOR current_iter = iter;
00264     iter++;
00265 
00266     if (index->unbind((*current_iter).ext_id_, allocator) != 0) {
00267       ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: PersistenceUpdater::init:"
00268         "Index unbind failed.\n")));
00269     }
00270   }
00271 }

Here is the call graph for this function:

Here is the caller graph for this function:

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1