Go to the documentation of this file.
24 #include <MemoryX/interface/core/MemoryInterface.h>
28 #include <shared_mutex>
31 #define MEMORYX_TOKEN(lock) {{"token", lock->token}}
36 public SegmentLockBase
44 void unlock(
const Ice::Current&
c = Ice::emptyCurrent)
override;
55 virtual public EntityMemorySegmentInterface
69 std::string
getJSONEntityById(
const std::string&
id,
const Ice::Current&)
const override;
70 EntityBaseList
getEntityWithChildrenById(
const std::string&
id,
bool includeMetaEntities,
const Ice::Current&
c = Ice::emptyCurrent)
const override;
71 EntityBaseList
getEntityWithChildrenByName(
const std::string&,
bool includeMetaEntities,
const Ice::Current&
c = Ice::emptyCurrent)
const override;
73 SegmentLockBasePtr
lockSegment(
const Ice::Current&
c)
override;
74 bool keepLockAlive(
const std::string& token,
const Ice::Current&)
override;
75 bool unlockSegment(
const SegmentLockBasePtr& lock,
const Ice::Current&
c)
override;
std::string getJSONEntityById(const std::string &id, const Ice::Current &) const override
std::unique_lock< std::shared_mutex > ScopedSharedLock
void ice_postUnmarshal() override
bool unlockSegment(const SegmentLockBasePtr &lock, const Ice::Current &c) override
ScopedSharedLockPtr readLock
ScopedSharedLockPtr getReadLock(const Ice::Current &c) const
SegmentUtilImplementations()
IceUtil::Time keepAliveTimestamp
armarx::PeriodicTask< SegmentUtilImplementations >::pointer_type keepAliveCheckTask
std::shared_mutex segmentMutex
std::mutex keepAliveTimestampMutex
std::unique_lock< std::shared_mutex > ScopedUniqueLock
SegmentLockBasePtr lockSegment(const Ice::Current &c) override
ScopedUniqueLockPtr getWriteLock(const Ice::Current &c) const
armarx::PeriodicTask< SegmentLock >::pointer_type keepAliveTask
EntityBaseList getEntityWithChildrenByName(const std::string &, bool includeMetaEntities, const Ice::Current &c=Ice::emptyCurrent) const override
armarx::core::time::DateTime Time
EntityMemorySegmentInterfacePrx selfProxy
ScopedUniqueLockPtr writeLock
std::unique_ptr< ScopedSharedLock > ScopedUniqueLockPtr
EntityBaseList getEntityWithChildrenById(const std::string &id, bool includeMetaEntities, const Ice::Current &c=Ice::emptyCurrent) const override
std::unique_ptr< ScopedSharedLock > ScopedSharedLockPtr
void unlock(const Ice::Current &c=Ice::emptyCurrent) override
bool unlockSegmentWithToken(const std::string &token, const Ice::Current &c) override
SegmentLock(bool start_watchdog=false)
bool keepLockAlive(const std::string &token, const Ice::Current &) override