SegmentUtilImplementations Class Reference

#include <MemoryX/core/memory/SegmentUtilImplementations.h>

+ Inheritance diagram for SegmentUtilImplementations:

Public Types

using ScopedSharedLock = std::unique_lock<std::shared_mutex>
 
using ScopedSharedLockPtr = std::unique_ptr<ScopedSharedLock>
 
using ScopedUniqueLock = std::unique_lock<std::shared_mutex>
 
using ScopedUniqueLockPtr = std::unique_ptr<ScopedSharedLock>
 

Public Member Functions

EntityBaseList getEntityWithChildrenById (const std::string &id, bool includeMetaEntities, const Ice::Current &c=Ice::emptyCurrent) const override
 
EntityBaseList getEntityWithChildrenByName (const std::string &, bool includeMetaEntities, const Ice::Current &c=Ice::emptyCurrent) const override
 
std::string getJSONEntityById (const std::string &id, const Ice::Current &) const override
 
ScopedSharedLockPtr getReadLock (const Ice::Current &c) const
 
ScopedUniqueLockPtr getWriteLock (const Ice::Current &c) const
 
bool keepLockAlive (const std::string &token, const Ice::Current &) override
 
SegmentLockBasePtr lockSegment (const Ice::Current &c) override
 
 SegmentUtilImplementations ()
 
bool unlockSegment (const SegmentLockBasePtr &lock, const Ice::Current &c) override
 
bool unlockSegmentWithToken (const std::string &token, const Ice::Current &c) override
 

Protected Member Functions

void keepAliveCheck ()
 

Protected Attributes

armarx::PeriodicTask< SegmentUtilImplementations >::pointer_type keepAliveCheckTask
 
IceUtil::Time keepAliveTimestamp
 
std::mutex keepAliveTimestampMutex
 
std::string lockToken
 
std::mutex mutex
 
ScopedSharedLockPtr readLock
 
std::shared_mutex segmentMutex
 
EntityMemorySegmentInterfacePrx selfProxy
 
std::mutex tokenMutex
 
ScopedUniqueLockPtr writeLock
 

Member Typedef Documentation

◆ ScopedSharedLock

using ScopedSharedLock = std::unique_lock<std::shared_mutex>

◆ ScopedSharedLockPtr

using ScopedSharedLockPtr = std::unique_ptr<ScopedSharedLock>

◆ ScopedUniqueLock

using ScopedUniqueLock = std::unique_lock<std::shared_mutex>

◆ ScopedUniqueLockPtr

using ScopedUniqueLockPtr = std::unique_ptr<ScopedSharedLock>

Constructor & Destructor Documentation

◆ SegmentUtilImplementations()

Member Function Documentation

◆ getEntityWithChildrenById()

EntityBaseList getEntityWithChildrenById ( const std::string & id,
bool includeMetaEntities,
const Ice::Current & c = Ice::emptyCurrent ) const
override

◆ getEntityWithChildrenByName()

EntityBaseList getEntityWithChildrenByName ( const std::string & entityName,
bool includeMetaEntities,
const Ice::Current & c = Ice::emptyCurrent ) const
override

◆ getJSONEntityById()

std::string getJSONEntityById ( const std::string & id,
const Ice::Current &  ) const
override

◆ getReadLock()

auto getReadLock ( const Ice::Current & c) const

◆ getWriteLock()

auto getWriteLock ( const Ice::Current & c) const

◆ keepAliveCheck()

void keepAliveCheck ( )
protected

◆ keepLockAlive()

bool keepLockAlive ( const std::string & token,
const Ice::Current &  )
override

◆ lockSegment()

SegmentLockBasePtr lockSegment ( const Ice::Current & c)
override

◆ unlockSegment()

bool unlockSegment ( const SegmentLockBasePtr & lock,
const Ice::Current & c )
override

◆ unlockSegmentWithToken()

bool unlockSegmentWithToken ( const std::string & token,
const Ice::Current & c )
override

Member Data Documentation

◆ keepAliveCheckTask

armarx::PeriodicTask<SegmentUtilImplementations>::pointer_type keepAliveCheckTask
protected

◆ keepAliveTimestamp

IceUtil::Time keepAliveTimestamp
protected

◆ keepAliveTimestampMutex

std::mutex keepAliveTimestampMutex
protected

◆ lockToken

std::string lockToken
protected

◆ mutex

std::mutex mutex
mutableprotected

◆ readLock

ScopedSharedLockPtr readLock
protected

◆ segmentMutex

std::shared_mutex segmentMutex
mutableprotected

◆ selfProxy

EntityMemorySegmentInterfacePrx selfProxy
protected

◆ tokenMutex

std::mutex tokenMutex
mutableprotected

◆ writeLock

ScopedUniqueLockPtr writeLock
protected

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