1#if !defined(RESIP_PUBLICATIONPERSISTENCEMANAGER_HXX)
2#define RESIP_PUBLICATIONPERSISTENCEMANAGER_HXX
34 if (securityAttributes)
103 s <<
" <identitystrength>";
110 s <<
"failedidentity";
131 bool success =
false;
138 Data mimeSubtypeString;
210 Mime mimeType(mimeTypeString, mimeSubtypeString);
217 delete serializedContents;
218 serializedContents = 0;
#define resip_assert(x)
This file needs to work for both C and C++ code.
Base class for all SIP body types.
static Contents * createContents(const Mime &contentType, const Data &contents)
factory method to create a Contents object from a mime type and a payload
virtual Contents * clone() const =0
returns a copy of a Contents object
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Data xmlCharDataDecode() const
Performs in-place XML Character Data un-escaping of a Data.
Data xmlCharDataEncode() const
Performs in-place XML Character Data escaping of a Data.
uint64_t convertUInt64() const
Takes the contents of the Data and converts them to an unsigned 64-bit integer.
Represents the "media-type" element in the RFC 3261 grammar.
const Data & subType() const
const Data & type() const
virtual ~ETagMerger()=default
virtual bool mergeETag(Contents *eTagDest, Contents *eTagSrc, bool isFirst)=0
Abstract interface of a datastore of all publication documents processed by DUM.
virtual bool getDocument(const resip::Data &eventType, const resip::Data &documentKey, const resip::Data &eTag, PubDocument &document)
virtual void unlockDocuments()=0
virtual ~PublicationPersistenceManager()=default
std::map< resip::Data, ETagToDocumentMap > KeyToETagMap
virtual KeyToETagMap & getDocuments()=0
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 void addUpdateDocument(const PubDocument &document)=0
virtual bool getMergedETags(const Data &eventType, const Data &documentKey, ETagMerger &merger, Contents *destination)=0
virtual void lockDocuments()=0
virtual bool checkExpired(const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t lastUpdated)=0
virtual bool removeDocument(const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t lastUpdated, bool syncPublication=false)=0
virtual bool documentExists(const Data &eventType, const Data &documentKey, const Data &eTag)=0
PublicationPersistenceManager()=default
std::map< resip::Data, PubDocument > ETagToDocumentMap
This class is used to get the current system time.
static uint64_t getTimeSecs()
Returns the current clock time in seconds.
const Data & getValue() const
const Data & getTag() const
dcm! – add UnusedChecking(_enum) below;
bool isEqualNoCase(const Data &left, const Data &right)
unsigned long long uint64_t
std::shared_ptr< SecurityAttributes > mSecurityAttributes
void stream(std::iostream &s) const
PubDocument(const Data &eventType, const Data &documentKey, const Data &eTag, uint64_t expirationTime, const Contents *contents, const SecurityAttributes *securityAttributes, bool syncPublication=false)
std::shared_ptr< Contents > mContents
bool deserialize(resip::XMLCursor &xml, uint64_t now=0)