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
 

Detailed Description

Definition at line 59 of file SegmentUtilImplementations.h.

Member Typedef Documentation

◆ ScopedSharedLock

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

Definition at line 65 of file SegmentUtilImplementations.h.

◆ ScopedSharedLockPtr

using ScopedSharedLockPtr = std::unique_ptr<ScopedSharedLock>

Definition at line 66 of file SegmentUtilImplementations.h.

◆ ScopedUniqueLock

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

Definition at line 67 of file SegmentUtilImplementations.h.

◆ ScopedUniqueLockPtr

using ScopedUniqueLockPtr = std::unique_ptr<ScopedSharedLock>

Definition at line 68 of file SegmentUtilImplementations.h.

Constructor & Destructor Documentation

◆ SegmentUtilImplementations()

Member Function Documentation

◆ getEntityWithChildrenById()

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

Definition at line 82 of file SegmentUtilImplementations.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getEntityWithChildrenByName()

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

Definition at line 140 of file SegmentUtilImplementations.cpp.

+ Here is the call graph for this function:

◆ getJSONEntityById()

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

Definition at line 69 of file SegmentUtilImplementations.cpp.

◆ getReadLock()

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

Definition at line 45 of file SegmentUtilImplementations.cpp.

+ Here is the caller graph for this function:

◆ getWriteLock()

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

Definition at line 57 of file SegmentUtilImplementations.cpp.

+ Here is the caller graph for this function:

◆ keepAliveCheck()

void keepAliveCheck ( )
protected

Definition at line 246 of file SegmentUtilImplementations.cpp.

+ Here is the caller graph for this function:

◆ keepLockAlive()

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

Definition at line 188 of file SegmentUtilImplementations.cpp.

+ Here is the call graph for this function:

◆ lockSegment()

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

Definition at line 156 of file SegmentUtilImplementations.cpp.

+ Here is the call graph for this function:

◆ unlockSegment()

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

Definition at line 209 of file SegmentUtilImplementations.cpp.

◆ unlockSegmentWithToken()

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

Definition at line 227 of file SegmentUtilImplementations.cpp.

Member Data Documentation

◆ keepAliveCheckTask

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

Definition at line 101 of file SegmentUtilImplementations.h.

◆ keepAliveTimestamp

IceUtil::Time keepAliveTimestamp
protected

Definition at line 98 of file SegmentUtilImplementations.h.

◆ keepAliveTimestampMutex

std::mutex keepAliveTimestampMutex
protected

Definition at line 97 of file SegmentUtilImplementations.h.

◆ lockToken

std::string lockToken
protected

Definition at line 100 of file SegmentUtilImplementations.h.

◆ mutex

std::mutex mutex
mutableprotected

Definition at line 91 of file SegmentUtilImplementations.h.

◆ readLock

ScopedSharedLockPtr readLock
protected

Definition at line 94 of file SegmentUtilImplementations.h.

◆ segmentMutex

std::shared_mutex segmentMutex
mutableprotected

Definition at line 96 of file SegmentUtilImplementations.h.

◆ selfProxy

EntityMemorySegmentInterfacePrx selfProxy
protected

Definition at line 93 of file SegmentUtilImplementations.h.

◆ tokenMutex

std::mutex tokenMutex
mutableprotected

Definition at line 99 of file SegmentUtilImplementations.h.

◆ writeLock

ScopedUniqueLockPtr writeLock
protected

Definition at line 95 of file SegmentUtilImplementations.h.


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