WorkingMemoryEntitySegment< T > Class Template Reference

#include <MemoryX/libraries/workingmemory/WorkingMemoryEntitySegment.h>

+ Inheritance diagram for WorkingMemoryEntitySegment< T >:

Public Member Functions

std::string addEntity (const EntityBasePtr &entity, const ::Ice::Current &c=Ice::emptyCurrent) override
 addEntity addes an entity to this segment. The registered fusion methods are applied in order to fuse the entity entry.
 
EntityIdList addEntityList (const EntityBaseList &entityList, const ::Ice::Current &c) override
 
void addFusionMethod (const ::memoryx::EntityFusionMethodBasePtr &fusionMethod, const ::Ice::Current &c=Ice::emptyCurrent) override
 
void clear (const ::Ice::Current &c=Ice::emptyCurrent) override
 
EntityBaseList getAllEntities (const Ice::Current &c=Ice::emptyCurrent) const override
 
EntityIdList getAllEntityIds (const Ice::Current &c=Ice::emptyCurrent) const override
 
EntityBaseList getEntitiesByAttrValue (const ::std::string &attrName, const ::std::string &attrValue) const
 
EntityBaseList getEntitiesByAttrValue (const ::std::string &attrName, const ::std::string &attrValue, const ::Ice::Current &c) const override
 
EntityBaseList getEntitiesByAttrValueList (const ::std::string &attrName, const NameList &attrValueList) const
 
EntityBaseList getEntitiesByAttrValueList (const ::std::string &attrName, const NameList &attrValueList, const ::Ice::Current &c) const override
 
EntityBasePtr getEntityById (const ::std::string &id) const
 
EntityBasePtr getEntityById (const ::std::string &id, const ::Ice::Current &c) const override
 
EntityBasePtr getEntityByName (const ::std::string &name) const
 
EntityBasePtr getEntityByName (const ::std::string &name, const ::Ice::Current &c) const override
 
EntityRefBasePtr getEntityRefById (const std::string &id, const Ice::Current &c) const override
 
EntityRefBasePtr getEntityRefByName (const std::string &name, const Ice::Current &c) const override
 
Ice::Identity getIceId (const ::Ice::Current &c) const override
 
IdEntityMap getIdEntityMap (const Ice::Current &c=Ice::emptyCurrent) const override
 
WorkingMemoryListenerInterfacePrx getListenerProxy (const ::Ice::Current &c=Ice::emptyCurrent) override
 getListener The topic on which changes are reported.
 
std::string getObjectTypeId (const ::Ice::Current &c=Ice::emptyCurrent) const override
 getObjectTypeId returns the ice_staticId() of the entities stored inside this WorkingMemorySegment
 
std::string getSegmentName (const ::Ice::Current &c=Ice::emptyCurrent) const override
 
bool hasEntityById (const std::string &entityId, const ::Ice::Current &c) const override
 
bool hasEntityByName (const std::string &entityName, const ::Ice::Current &c) const override
 
void print (const ::Ice::Current &c=Ice::emptyCurrent) const override
 
void removeAllEntities (const ::Ice::Current &c=Ice::emptyCurrent) override
 
void removeEntity (const ::std::string &id, const ::Ice::Current &c=Ice::emptyCurrent) override
 
void setEntityAttribute (const std::string &entityId, const EntityAttributeBasePtr &attribute, const ::Ice::Current &c) override
 
void setEntityAttributes (const std::string &entityId, const EntityAttributeList &attributeMap, const ::Ice::Current &c) override
 
Ice::Int size (const ::Ice::Current &c=Ice::emptyCurrent) const override
 
void updateEntity (const std::string &entityId, const EntityBasePtr &update, const ::Ice::Current &c=Ice::emptyCurrent) override
 
void updateEntity (const std::string &entityId, const EntityBasePtr &update, const Ice::StringSeq &deactivatedFusionMethods, const ::Ice::Current &c=Ice::emptyCurrent)
 
std::string upsertEntity (const std::string &entityId, const EntityBasePtr &newEntity, const ::Ice::Current &c=Ice::emptyCurrent) override
 
std::string upsertEntityByName (const std::string &entityName, const EntityBasePtr &newEntity, const ::Ice::Current &c=Ice::emptyCurrent) override
 
EntityIdList upsertEntityList (const EntityBaseList &entityList, const ::Ice::Current &c) override
 
 WorkingMemoryEntitySegment ()
 
- Public Member Functions inherited from SegmentUtilImplementations
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

std::string addEntityThreadUnsafe (const EntityBasePtr &newEntity)
 adds the entity to the segment.
 
void fuseEntity (const EntityBasePtr &entity)
 
EntityBasePtr getEntityByIdUnsafe (const ::std::string &id) const
 
EntityBasePtr getEntityByNameThreadUnsafe (const ::std::string &name) const
 
bool hasEntityByIdThreadUnsafe (const std::string &entityId) const
 
void setListenerProxy (const WorkingMemoryListenerInterfacePrx &listenerProxy, const ::Ice::Current &c=Ice::emptyCurrent) override
 
void setParentMemory (const MemoryInterfacePtr &memory, const ::Ice::Current &c) override
 
void setSegmentName (const std::string &segmentName, const ::Ice::Current &c=Ice::emptyCurrent) override
 
void updateEntityThreadUnsafe (const std::string &entityId, const EntityBasePtr &update, const Ice::StringSeq &deactivatedFusionMethods)
 
- Protected Member Functions inherited from SegmentUtilImplementations
void keepAliveCheck ()
 

Protected Attributes

IdEntityMap entityMap
 
EntityFusionMethodPtr fusionMethod
 
int lastEntityId
 
MemoryInterfacePtr parentMemory
 
std::string segmentName
 
- Protected Attributes inherited from SegmentUtilImplementations
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
 

Friends

class SegmentedMemory
 

Additional Inherited Members

- Public Types inherited from SegmentUtilImplementations
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>
 

Detailed Description

template<class T>
class memoryx::WorkingMemoryEntitySegment< T >

This class represents segments in the WorkingMemory

Constructor & Destructor Documentation

◆ WorkingMemoryEntitySegment()

template<class T>
WorkingMemoryEntitySegment ( )
inline

Member Function Documentation

◆ addEntity()

template<class T>
std::string addEntity ( const EntityBasePtr & entity,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverride

addEntity addes an entity to this segment. The registered fusion methods are applied in order to fuse the entity entry.

When ObjectInstances are used as template parameter the

See also
PriorAttributeEnrichmentFusion is used to enrich the attributes by prior knowledge data (i.e. 3D models etc)
Parameters
entityThe entity to add. The attributes of the added entry may be enriched by fusion methods (e.g. PriorAttributeEnrichmentFusion)
Returns
The id of the newly created entry.

◆ addEntityList()

template<class T>
EntityIdList addEntityList ( const EntityBaseList & entityList,
const ::Ice::Current & c )
inlineoverride

◆ addEntityThreadUnsafe()

template<class T>
std::string addEntityThreadUnsafe ( const EntityBasePtr & newEntity)
inlineprotected

adds the entity to the segment.

Note
Does not lock the segment! use AddEntity instead.
Parameters
newEntity
Returns
id of new entity
See also
addEntity

◆ addFusionMethod()

template<class T>
void addFusionMethod ( const ::memoryx::EntityFusionMethodBasePtr & fusionMethod,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverride

◆ clear()

template<class T>
void clear ( const ::Ice::Current & c = Ice::emptyCurrent)
inlineoverride

◆ fuseEntity()

template<class T>
void fuseEntity ( const EntityBasePtr & entity)
inlineprotected

◆ getAllEntities()

template<class T>
EntityBaseList getAllEntities ( const Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

◆ getAllEntityIds()

template<class T>
EntityIdList getAllEntityIds ( const Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

◆ getEntitiesByAttrValue() [1/2]

template<class T>
EntityBaseList getEntitiesByAttrValue ( const ::std::string & attrName,
const ::std::string & attrValue ) const
inline

◆ getEntitiesByAttrValue() [2/2]

template<class T>
EntityBaseList getEntitiesByAttrValue ( const ::std::string & attrName,
const ::std::string & attrValue,
const ::Ice::Current & c ) const
inlineoverride

◆ getEntitiesByAttrValueList() [1/2]

template<class T>
EntityBaseList getEntitiesByAttrValueList ( const ::std::string & attrName,
const NameList & attrValueList ) const
inline

◆ getEntitiesByAttrValueList() [2/2]

template<class T>
EntityBaseList getEntitiesByAttrValueList ( const ::std::string & attrName,
const NameList & attrValueList,
const ::Ice::Current & c ) const
inlineoverride

◆ getEntityById() [1/2]

template<class T>
EntityBasePtr getEntityById ( const ::std::string & id) const
inline

◆ getEntityById() [2/2]

template<class T>
EntityBasePtr getEntityById ( const ::std::string & id,
const ::Ice::Current & c ) const
inlineoverride

◆ getEntityByIdUnsafe()

template<class T>
EntityBasePtr getEntityByIdUnsafe ( const ::std::string & id) const
inlineprotected

◆ getEntityByName() [1/2]

template<class T>
EntityBasePtr getEntityByName ( const ::std::string & name) const
inline

◆ getEntityByName() [2/2]

template<class T>
EntityBasePtr getEntityByName ( const ::std::string & name,
const ::Ice::Current & c ) const
inlineoverride

◆ getEntityByNameThreadUnsafe()

template<class T>
EntityBasePtr getEntityByNameThreadUnsafe ( const ::std::string & name) const
inlineprotected

◆ getEntityRefById()

template<class T>
EntityRefBasePtr getEntityRefById ( const std::string & id,
const Ice::Current & c ) const
inlineoverride

◆ getEntityRefByName()

template<class T>
EntityRefBasePtr getEntityRefByName ( const std::string & name,
const Ice::Current & c ) const
inlineoverride

◆ getIceId()

template<class T>
Ice::Identity getIceId ( const ::Ice::Current & c) const
inlineoverride

◆ getIdEntityMap()

template<class T>
IdEntityMap getIdEntityMap ( const Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

◆ getListenerProxy()

template<class T>
WorkingMemoryListenerInterfacePrx getListenerProxy ( const ::Ice::Current & c = Ice::emptyCurrent)
inlineoverride

getListener The topic on which changes are reported.

Returns
NULL if disabled.

◆ getObjectTypeId()

template<class T>
std::string getObjectTypeId ( const ::Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

getObjectTypeId returns the ice_staticId() of the entities stored inside this WorkingMemorySegment

Returns

◆ getSegmentName()

template<class T>
std::string getSegmentName ( const ::Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

◆ hasEntityById()

template<class T>
bool hasEntityById ( const std::string & entityId,
const ::Ice::Current & c ) const
inlineoverride

◆ hasEntityByIdThreadUnsafe()

template<class T>
bool hasEntityByIdThreadUnsafe ( const std::string & entityId) const
inlineprotected

◆ hasEntityByName()

template<class T>
bool hasEntityByName ( const std::string & entityName,
const ::Ice::Current & c ) const
inlineoverride

◆ print()

template<class T>
void print ( const ::Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

◆ removeAllEntities()

template<class T>
void removeAllEntities ( const ::Ice::Current & c = Ice::emptyCurrent)
inlineoverride

◆ removeEntity()

template<class T>
void removeEntity ( const ::std::string & id,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverride

◆ setEntityAttribute()

template<class T>
void setEntityAttribute ( const std::string & entityId,
const EntityAttributeBasePtr & attribute,
const ::Ice::Current & c )
inlineoverride

◆ setEntityAttributes()

template<class T>
void setEntityAttributes ( const std::string & entityId,
const EntityAttributeList & attributeMap,
const ::Ice::Current & c )
inlineoverride

◆ setListenerProxy()

template<class T>
void setListenerProxy ( const WorkingMemoryListenerInterfacePrx & listenerProxy,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverrideprotected

◆ setParentMemory()

template<class T>
void setParentMemory ( const MemoryInterfacePtr & memory,
const ::Ice::Current & c )
inlineoverrideprotected

◆ setSegmentName()

template<class T>
void setSegmentName ( const std::string & segmentName,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverrideprotected

◆ size()

template<class T>
Ice::Int size ( const ::Ice::Current & c = Ice::emptyCurrent) const
inlineoverride

◆ updateEntity() [1/2]

template<class T>
void updateEntity ( const std::string & entityId,
const EntityBasePtr & update,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverride

◆ updateEntity() [2/2]

template<class T>
void updateEntity ( const std::string & entityId,
const EntityBasePtr & update,
const Ice::StringSeq & deactivatedFusionMethods,
const ::Ice::Current & c = Ice::emptyCurrent )
inline

◆ updateEntityThreadUnsafe()

template<class T>
void updateEntityThreadUnsafe ( const std::string & entityId,
const EntityBasePtr & update,
const Ice::StringSeq & deactivatedFusionMethods )
inlineprotected

◆ upsertEntity()

template<class T>
std::string upsertEntity ( const std::string & entityId,
const EntityBasePtr & newEntity,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverride

◆ upsertEntityByName()

template<class T>
std::string upsertEntityByName ( const std::string & entityName,
const EntityBasePtr & newEntity,
const ::Ice::Current & c = Ice::emptyCurrent )
inlineoverride

◆ upsertEntityList()

template<class T>
EntityIdList upsertEntityList ( const EntityBaseList & entityList,
const ::Ice::Current & c )
inlineoverride

Friends And Related Symbol Documentation

◆ SegmentedMemory

template<class T>
friend class SegmentedMemory
friend

Member Data Documentation

◆ entityMap

template<class T>
IdEntityMap entityMap
protected

◆ fusionMethod

template<class T>
EntityFusionMethodPtr fusionMethod
protected

◆ lastEntityId

template<class T>
int lastEntityId
protected

◆ parentMemory

template<class T>
MemoryInterfacePtr parentMemory
protected

◆ segmentName

template<class T>
std::string segmentName
protected

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