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 54 of file SegmentUtilImplementations.h.

Member Typedef Documentation

◆ ScopedSharedLock

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

Definition at line 61 of file SegmentUtilImplementations.h.

◆ ScopedSharedLockPtr

using ScopedSharedLockPtr = std::unique_ptr<ScopedSharedLock>

Definition at line 62 of file SegmentUtilImplementations.h.

◆ ScopedUniqueLock

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

Definition at line 63 of file SegmentUtilImplementations.h.

◆ ScopedUniqueLockPtr

using ScopedUniqueLockPtr = std::unique_ptr<ScopedSharedLock>

Definition at line 64 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 79 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 136 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 67 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 56 of file SegmentUtilImplementations.cpp.

+ Here is the caller graph for this function:

◆ keepAliveCheck()

void keepAliveCheck ( )
protected

Definition at line 229 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 173 of file SegmentUtilImplementations.cpp.

+ Here is the call graph for this function:

◆ lockSegment()

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

Definition at line 149 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 193 of file SegmentUtilImplementations.cpp.

◆ unlockSegmentWithToken()

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

Definition at line 212 of file SegmentUtilImplementations.cpp.

Member Data Documentation

◆ keepAliveCheckTask

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

Definition at line 91 of file SegmentUtilImplementations.h.

◆ keepAliveTimestamp

IceUtil::Time keepAliveTimestamp
protected

Definition at line 88 of file SegmentUtilImplementations.h.

◆ keepAliveTimestampMutex

std::mutex keepAliveTimestampMutex
protected

Definition at line 87 of file SegmentUtilImplementations.h.

◆ lockToken

std::string lockToken
protected

Definition at line 90 of file SegmentUtilImplementations.h.

◆ mutex

std::mutex mutex
mutableprotected

Definition at line 81 of file SegmentUtilImplementations.h.

◆ readLock

ScopedSharedLockPtr readLock
protected

Definition at line 84 of file SegmentUtilImplementations.h.

◆ segmentMutex

std::shared_mutex segmentMutex
mutableprotected

Definition at line 86 of file SegmentUtilImplementations.h.

◆ selfProxy

EntityMemorySegmentInterfacePrx selfProxy
protected

Definition at line 83 of file SegmentUtilImplementations.h.

◆ tokenMutex

std::mutex tokenMutex
mutableprotected

Definition at line 89 of file SegmentUtilImplementations.h.

◆ writeLock

ScopedUniqueLockPtr writeLock
protected

Definition at line 85 of file SegmentUtilImplementations.h.


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