reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
resip::InMemorySyncPubDb Class Reference

Implementation of a persistence manager. More...

#include <InMemorySyncPubDb.hxx>

Inheritance diagram for resip::InMemorySyncPubDb:
[legend]

Public Member Functions

 InMemorySyncPubDb (bool syncEnabled=false)
 
virtual ~InMemorySyncPubDb ()=default
 
virtual void addHandler (InMemorySyncPubDbHandler *handler)
 
virtual void removeHandler (InMemorySyncPubDbHandler *handler)
 
virtual void initialSync (unsigned int connectionId)
 
virtual void addUpdateDocument (const PubDocument &document)
 
virtual bool removeDocument (const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t lastUpdated, bool syncPublication=false)
 
virtual bool getMergedETags (const Data &eventType, const Data &documentKey, ETagMerger &merger, Contents *destination)
 
virtual bool documentExists (const Data &eventType, const Data &documentKey, const Data &eTag)
 
virtual bool checkExpired (const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t lastUpdated)
 
virtual void lockDocuments ()
 
virtual KeyToETagMap & getDocuments ()
 
virtual void unlockDocuments ()
 
- Public Member Functions inherited from resip::PublicationPersistenceManager
 PublicationPersistenceManager ()=default
 
virtual ~PublicationPersistenceManager ()=default
 
virtual void addUpdateDocument (const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t expirationTime, const Contents *contents, const SecurityAttributes *securityAttributes, bool syncPublication=false)
 
virtual bool getDocument (const resip::Data &eventType, const resip::Data &documentKey, const resip::Data &eTag, PubDocument &document)
 

Protected Types

typedef std::list< InMemorySyncPubDbHandler * > HandlerList
 

Protected Member Functions

void invokeOnDocumentModified (bool sync, const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t expirationTime, uint64_t lastUpdated, const Contents *contents, const SecurityAttributes *securityAttributes)
 
void invokeOnDocumentRemoved (bool sync, const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t lastUpdated)
 
void invokeOnInitialSyncDocument (unsigned int connectionId, const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t expirationTime, uint64_t lastUpdated, const Contents *contents, const SecurityAttributes *securityAttributes)
 
bool shouldEraseDocument (PubDocument &document, uint64_t now)
 

Protected Attributes

bool mSyncEnabled
 
HandlerList mHandlers
 
Mutex mHandlerMutex
 
KeyToETagMap mPublicationDb
 
Mutex mDatabaseMutex
 

Additional Inherited Members

- Public Types inherited from resip::PublicationPersistenceManager
typedef std::map< resip::Data, PubDocument > ETagToDocumentMap
 
typedef std::map< resip::Data, ETagToDocumentMap > KeyToETagMap
 

Detailed Description

Implementation of a persistence manager.

This class keeps all publications in memory, and is used for remote replication.

The InMemorySyncPubDbHandler can be used by an external mechanism to transport publication documents to a remote peer for replication. See the RegSyncClient and RegSyncServer implementations in the repro project.

Definition at line 42 of file InMemorySyncPubDb.hxx.

Member Typedef Documentation

◆ HandlerList

Definition at line 70 of file InMemorySyncPubDb.hxx.

Constructor & Destructor Documentation

◆ InMemorySyncPubDb()

InMemorySyncPubDb::InMemorySyncPubDb ( bool  syncEnabled = false)
explicit

Definition at line 11 of file InMemorySyncPubDb.cxx.

◆ ~InMemorySyncPubDb()

virtual resip::InMemorySyncPubDb::~InMemorySyncPubDb ( )
virtualdefault

Member Function Documentation

◆ addHandler()

void InMemorySyncPubDb::addHandler ( InMemorySyncPubDbHandler *  handler)
virtual

Definition at line 16 of file InMemorySyncPubDb.cxx.

◆ addUpdateDocument()

void InMemorySyncPubDb::addUpdateDocument ( const PubDocument &  document)
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 106 of file InMemorySyncPubDb.cxx.

◆ checkExpired()

bool InMemorySyncPubDb::checkExpired ( const Data &  eventType,
const Data &  documentKey,
const Data &  eTag,
uint64_t  lastUpdated 
)
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 292 of file InMemorySyncPubDb.cxx.

◆ documentExists()

bool InMemorySyncPubDb::documentExists ( const Data &  eventType,
const Data &  documentKey,
const Data &  eTag 
)
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 264 of file InMemorySyncPubDb.cxx.

◆ getDocuments()

PublicationPersistenceManager::KeyToETagMap & InMemorySyncPubDb::getDocuments ( )
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 343 of file InMemorySyncPubDb.cxx.

◆ getMergedETags()

bool InMemorySyncPubDb::getMergedETags ( const Data &  eventType,
const Data &  documentKey,
ETagMerger &  merger,
Contents *  destination 
)
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 216 of file InMemorySyncPubDb.cxx.

◆ initialSync()

void InMemorySyncPubDb::initialSync ( unsigned int  connectionId)
virtual

Definition at line 68 of file InMemorySyncPubDb.cxx.

◆ invokeOnDocumentModified()

void InMemorySyncPubDb::invokeOnDocumentModified ( bool  sync,
const Data &  eventType,
const Data &  documentKey,
const Data &  eTag,
uint64_t  expirationTime,
uint64_t  lastUpdated,
const Contents *  contents,
const SecurityAttributes *  securityAttributes 
)
protected

Definition at line 355 of file InMemorySyncPubDb.cxx.

◆ invokeOnDocumentRemoved()

void InMemorySyncPubDb::invokeOnDocumentRemoved ( bool  sync,
const Data &  eventType,
const Data &  documentKey,
const Data &  eTag,
uint64_t  lastUpdated 
)
protected

Definition at line 370 of file InMemorySyncPubDb.cxx.

◆ invokeOnInitialSyncDocument()

void InMemorySyncPubDb::invokeOnInitialSyncDocument ( unsigned int  connectionId,
const Data &  eventType,
const Data &  documentKey,
const Data &  eTag,
uint64_t  expirationTime,
uint64_t  lastUpdated,
const Contents *  contents,
const SecurityAttributes *  securityAttributes 
)
protected

Definition at line 385 of file InMemorySyncPubDb.cxx.

◆ lockDocuments()

void InMemorySyncPubDb::lockDocuments ( )
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 337 of file InMemorySyncPubDb.cxx.

◆ removeDocument()

bool InMemorySyncPubDb::removeDocument ( const Data &  eventType,
const Data &  documentKey,
const Data &  eTag,
uint64_t  lastUpdated,
bool  syncPublication = false 
)
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 173 of file InMemorySyncPubDb.cxx.

◆ removeHandler()

void InMemorySyncPubDb::removeHandler ( InMemorySyncPubDbHandler *  handler)
virtual

Definition at line 23 of file InMemorySyncPubDb.cxx.

◆ shouldEraseDocument()

bool InMemorySyncPubDb::shouldEraseDocument ( PubDocument &  document,
uint64_t  now 
)
protected

Definition at line 37 of file InMemorySyncPubDb.cxx.

◆ unlockDocuments()

void InMemorySyncPubDb::unlockDocuments ( )
virtual

Implements resip::PublicationPersistenceManager.

Definition at line 349 of file InMemorySyncPubDb.cxx.

Member Data Documentation

◆ mDatabaseMutex

Mutex resip::InMemorySyncPubDb::mDatabaseMutex
protected

Definition at line 75 of file InMemorySyncPubDb.hxx.

◆ mHandlerMutex

Mutex resip::InMemorySyncPubDb::mHandlerMutex
protected

Definition at line 72 of file InMemorySyncPubDb.hxx.

◆ mHandlers

HandlerList resip::InMemorySyncPubDb::mHandlers
protected

Definition at line 71 of file InMemorySyncPubDb.hxx.

◆ mPublicationDb

KeyToETagMap resip::InMemorySyncPubDb::mPublicationDb
protected

Definition at line 74 of file InMemorySyncPubDb.hxx.

◆ mSyncEnabled

bool resip::InMemorySyncPubDb::mSyncEnabled
protected

Definition at line 69 of file InMemorySyncPubDb.hxx.


The documentation for this class was generated from the following files: