WorkingMemoryController Class Reference

The controller for the communication with the working memory. More...

#include <MemoryX/gui-plugins/SceneEditor/memoryxcontroller/WorkingMemoryController.h>

+ Inheritance diagram for WorkingMemoryController:

Public Member Functions

void addAllInstancesToLocalScene () const
 Adds all object instances of the working memory to the local scene. More...
 
std::string addObjectInstance (const std::string &objectName, const memoryx::ObjectClassPtr &objectClassPtr)
 Adds a new object instance to the working memory. More...
 
std::vector< std::string > addObjectInstances (const std::vector< memoryx::ObjectInstancePtr > &instancePtrs)
 Adds all given object instances to the working memory. More...
 
std::vector< std::string > getAllObjectInstances () const
 Returns all object ids that are currently in the working memory. More...
 
void removeObjectInstance (const std::string &id)
 Removes the object instance with the given id. More...
 
void rotateTranslateObject (const std::string &id, const SbRotation &newOrientation, const SbVec3f &newPosition)
 Applies the given orientation and position to the object instance with the given id. More...
 
bool saveObjectsInSnapshot (const std::string &snapshotName, const memoryx::LongtermMemoryInterfacePrx &longtermMemoryPrx, const std::vector< std::string > &objectIds) const
 Saves the object instances with the given ids in a snapshot with the given name. More...
 
bool saveSceneInSnapshot (const std::string &snapshotName, const memoryx::LongtermMemoryInterfacePrx &longtermMemoryPrx) const
 Saves the whole scene in a snapshot with the given name. More...
 
 WorkingMemoryController (const memoryx::WorkingMemoryInterfacePrx &workingMemoryPrx, const std::string &workingMemoryUpdatesTopic, const std::string &objectInstancesSegmentName, const std::shared_ptr< MemoryXController > &memoryXController)
 Constructor. More...
 
 ~WorkingMemoryController () override
 Destructor. More...
 
- Public Member Functions inherited from ManagedIceObject
void enableProfiler (bool enable)
 setProfiler allows setting ManagedIceObject::profiler to a new instance (if the new instance is actually not a null pointer) More...
 
std::string generateSubObjectName (const std::string &subObjectName)
 Generates a unique name for a sub object from a general name. More...
 
ArmarXManagerPtr getArmarXManager () const
 Returns the ArmarX manager used to add and remove components. More...
 
ManagedIceObjectConnectivity getConnectivity () const
 Retrieve connectivity of the object (topcis as well as proxies) More...
 
IceManagerPtr getIceManager () const
 Returns the IceManager. More...
 
VariantBasePtr getMetaInfo (const std::string &id)
 
StringVariantBaseMap getMetaInfoMap () const
 
std::string getName () const
 Retrieve name of object. More...
 
Ice::ObjectAdapterPtr getObjectAdapter () const
 Returns object's Ice adapter. More...
 
ArmarXObjectSchedulerPtr getObjectScheduler () const
 
PeriodicTaskPtr getPeriodicTask (const std::string &name)
 
Profiler::ProfilerPtr getProfiler () const
 getProfiler returns an instance of armarx::Profiler More...
 
template<class ProxyTarg , class... Args>
void getProxy (const char *name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args)
 
template<class ProxyType >
ProxyType getProxy (const std::string &name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true)
 Retrieves a proxy object. More...
 
template<class ProxyTarg , class... Args>
void getProxy (const std::string &name, IceInternal::ProxyHandle< ProxyTarg > &proxy, Args &&...args)
 
template<class ProxyTarg , class... Args>
void getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const char *name, Args &&...args)
 
template<class ProxyTarg , class... Args>
void getProxy (IceInternal::ProxyHandle< ProxyTarg > &proxy, const std::string &name, Args &&...args)
 Assigns a proxy to proxy. More...
 
Ice::ObjectPrx getProxy (long timeoutMs=0, bool waitForScheduler=true) const
 Returns the proxy of this object (optionally it waits for the proxy) More...
 
template<class Prx >
Prx getProxy (long timeoutMs=0, bool waitForScheduler=true) const
 
template<class ProxyType >
void getProxy (ProxyType &proxy, const char *name, bool addToDependencies=false, const std::string &endpoints="", bool throwOnProxyError=true)
 Overload to allow using string literals as name (solve ambiguous overload). More...
 
template<class Prx >
void getProxy (Prx &prx, long timeoutMs=0, bool waitForScheduler=true) const
 
int getState () const
 Retrieve current state of the ManagedIceObject. More...
 
template<class TopicProxyType >
TopicProxyType getTopic (const std::string &name)
 Returns a proxy of the specified topic. More...
 
template<class TopicProxyType >
void getTopic (TopicProxyType &topicProxy, const std::string &name)
 Assigns a proxy of the specified topic to topicProxy. More...
 
std::vector< std::string > getUnresolvedDependencies () const
 returns the names of all unresolved dependencies More...
 
 ManagedIceObject (ManagedIceObject const &other)
 
void offeringTopic (const std::string &name)
 Registers a topic for retrival after initialization. More...
 
void preambleGetTopic (std::string const &name)
 
void setMetaInfo (const std::string &id, const VariantBasePtr &value)
 Allows to set meta information that can be queried live via Ice interface on the ArmarXManager. More...
 
void startPeriodicTask (const std::string &uniqueName, std::function< void(void)> f, int periodMs, bool assureMeanInterval=false, bool forceSystemTime=true)
 
bool stopPeriodicTask (const std::string &name)
 
bool unsubscribeFromTopic (const std::string &name)
 Unsubscribe from a topic. More...
 
bool usingProxy (const std::string &name, const std::string &endpoints="")
 Registers a proxy for retrieval after initialization and adds it to the dependency list. More...
 
void usingTopic (const std::string &name, bool orderedPublishing=false)
 Registers a proxy for subscription after initialization. More...
 
void waitForObjectScheduler ()
 Waits until the ObjectScheduler could resolve all dependencies. More...
 
void waitForProxy (std::string const &name, bool addToDependencies)
 
- Public Member Functions inherited from Logging
SpamFilterDataPtr deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const
 disables the logging for the current line for the given amount of seconds. More...
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More...
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 

Static Public Member Functions

static SbRotation getSbRotationFromInstance (const memoryx::ObjectInstancePtr &objectInstance)
 Returns the rotation of a object instance. More...
 
static SbVec3f getSbVec3fFromInstance (const memoryx::ObjectInstancePtr &objectInstance)
 Returns the position of a object instance. More...
 
- Static Public Member Functions inherited from ManagedIceObject
static std::string generateSubObjectName (const std::string &superObjectName, const std::string &subObjectName)
 Generates a unique name for a sub object from a general name and unique name. More...
 
static std::string GetObjectStateAsString (int state)
 

Protected Member Functions

std::string getDefaultName () const override
 Returns the default name of this managed ice object. More...
 
void onConnectComponent () override
 
void onInitComponent () override
 
void reportEntityCreated (const std::string &segmentName, const ::memoryx::EntityBasePtr &entity, const ::Ice::Current &=Ice::emptyCurrent) override
 Recognises when an entity is created in the working memory. More...
 
void reportEntityRemoved (const std::string &segmentName, const ::memoryx::EntityBasePtr &entity, const ::Ice::Current &=Ice::emptyCurrent) override
 Recognises when an entity is removed from the working memory. More...
 
void reportEntityUpdated (const std::string &segmentName, const ::memoryx::EntityBasePtr &entityOld, const ::memoryx::EntityBasePtr &entityNew, const ::Ice::Current &=Ice::emptyCurrent) override
 Recognises when an entity is updated in the working memory. More...
 
void reportMemoryCleared (const std::string &segmentName, const ::Ice::Current &=Ice::emptyCurrent) override
 Recognises when an entity is created on the working memory. More...
 
void reportSnapshotCompletelyLoaded (const Ice::Current &c=Ice::emptyCurrent) override
 
void reportSnapshotLoaded (const std::string &segmentName, const ::Ice::Current &=Ice::emptyCurrent) override
 Recognises when a segment was loaded from a snapshot. More...
 
- Protected Member Functions inherited from ManagedIceObject
template<class PluginT , class... ParamsT>
PluginT * addPlugin (const std::string prefix="", ParamsT &&...params)
 
template<class PluginT , class... ParamsT>
void addPlugin (PluginT *&targ, const std::string prefix="", ParamsT &&...params)
 
template<class PluginT , class... ParamsT>
void addPlugin (std::experimental::observer_ptr< PluginT > &targ, const std::string prefix="", ParamsT &&...params)
 
Ice::CommunicatorPtr getCommunicator () const
 
std::unique_ptr< ManagedIceObjectPlugin > & getPluginPointer (std::type_info const &type, std::string const &prefix)
 
 ManagedIceObject ()
 Protected default constructor. More...
 
virtual void onDisconnectComponent ()
 Hook for subclass. More...
 
virtual void onExitComponent ()
 Hook for subclass. More...
 
virtual void postOnConnectComponent ()
 
virtual void postOnDisconnectComponent ()
 
virtual void postOnExitComponent ()
 
virtual void postOnInitComponent ()
 
virtual void preOnConnectComponent ()
 
virtual void preOnDisconnectComponent ()
 
virtual void preOnExitComponent ()
 
virtual void preOnInitComponent ()
 
bool removeProxyDependency (const std::string &name)
 This function removes the dependency of this object on the in parameter name specified object. More...
 
void setName (std::string name)
 Override name of well-known object. More...
 
void terminate ()
 Initiates termination of this IceManagedObject. More...
 
 ~ManagedIceObject () override
 
- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtrgetLogSender () const
 Retrieve log sender. More...
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 

Additional Inherited Members

- Public Types inherited from ManagedIceObject
using PeriodicTaskPtr = IceUtil::Handle< SimplePeriodicTask< std::function< void(void)> >>
 
- Static Public Attributes inherited from ManagedIceObject
static const ManagedIceObjectPtr NullPtr
 A nullptr to be used when a const ref to a nullptr is required. More...
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Detailed Description

The controller for the communication with the working memory.

This class provides methods to add, change and remove object instances in the working memory. Furthermore it is possible to get the content of the memory and save its content in snapshots.

Definition at line 57 of file WorkingMemoryController.h.

Constructor & Destructor Documentation

◆ WorkingMemoryController()

WorkingMemoryController ( const memoryx::WorkingMemoryInterfacePrx &  workingMemoryPrx,
const std::string &  workingMemoryUpdatesTopic,
const std::string &  objectInstancesSegmentName,
const std::shared_ptr< MemoryXController > &  memoryXController 
)

Constructor.

Creates a new instance of this class and registers this managed ice object.

Parameters
workingMemoryPrxthe proxy to the used working memory
workingMemoryUpdatesTopicthe name of the topic this ice object will subscribe to recieve events from the working memory
objectInstancesSegmentNamethe name of the segment in the data base where the object instances are stored
memoryXControllerthe MemoryXController
See also
memoryxcontroller::MemoryXController

◆ ~WorkingMemoryController()

~WorkingMemoryController ( )
override

Destructor.

Destructs this instance of this class.

Definition at line 58 of file WorkingMemoryController.cpp.

Member Function Documentation

◆ addAllInstancesToLocalScene()

void addAllInstancesToLocalScene ( ) const

Adds all object instances of the working memory to the local scene.

Definition at line 190 of file WorkingMemoryController.cpp.

◆ addObjectInstance()

std::string addObjectInstance ( const std::string &  objectName,
const memoryx::ObjectClassPtr objectClassPtr 
)

Adds a new object instance to the working memory.

Returns the id of the new object instance.

Parameters
objectNamethe name of the added object instance
objectClassPtra pointer to the object class of the new object instance
Returns
std::string the unique id of this object instance that is set by the working memory

Definition at line 62 of file WorkingMemoryController.cpp.

◆ addObjectInstances()

std::vector< std::string > addObjectInstances ( const std::vector< memoryx::ObjectInstancePtr > &  instancePtrs)

Adds all given object instances to the working memory.

This method will also add the given object instances to the local scene

Parameters
instancePtrsobject instances to add to the working memory
Returns
std::vector<std::string>

Definition at line 83 of file WorkingMemoryController.cpp.

◆ getAllObjectInstances()

std::vector<std::string> getAllObjectInstances ( ) const

Returns all object ids that are currently in the working memory.

Returns
std::vector<std::string> all object ids of the objects in the working memory

◆ getDefaultName()

std::string getDefaultName ( ) const
overrideprotectedvirtual

Returns the default name of this managed ice object.

See also
armarx::ManagedIceObject::getDefaultName()

Implements ManagedIceObject.

Definition at line 394 of file WorkingMemoryController.cpp.

◆ getSbRotationFromInstance()

SbRotation getSbRotationFromInstance ( const memoryx::ObjectInstancePtr objectInstance)
static

Returns the rotation of a object instance.

The rotation is translated to the format used in the Scene.

Returns
The rotation.

Definition at line 400 of file WorkingMemoryController.cpp.

◆ getSbVec3fFromInstance()

SbVec3f getSbVec3fFromInstance ( const memoryx::ObjectInstancePtr objectInstance)
static

Returns the position of a object instance.

The position is translated to the format used in the Scene.

Returns
The position.

Definition at line 407 of file WorkingMemoryController.cpp.

◆ onConnectComponent()

void onConnectComponent ( )
overrideprotectedvirtual

◆ onInitComponent()

void onInitComponent ( )
overrideprotectedvirtual

◆ removeObjectInstance()

void removeObjectInstance ( const std::string &  id)

Removes the object instance with the given id.

Exceptions
Exceptionwhen there is no object instance with the given id
Parameters
idthe id of the object instance that should be removed from the working memory

Definition at line 142 of file WorkingMemoryController.cpp.

◆ reportEntityCreated()

void reportEntityCreated ( const std::string &  segmentName,
const ::memoryx::EntityBasePtr &  entity,
const ::Ice::Current &  = Ice::emptyCurrent 
)
overrideprotected

Recognises when an entity is created in the working memory.

See also
armarx::ManagedIceObject::reportEntityCreated()

◆ reportEntityRemoved()

void reportEntityRemoved ( const std::string &  segmentName,
const ::memoryx::EntityBasePtr &  entity,
const ::Ice::Current &  = Ice::emptyCurrent 
)
overrideprotected

Recognises when an entity is removed from the working memory.

See also
armarx::ManagedIceObject::reportEntityRemoved()

◆ reportEntityUpdated()

void reportEntityUpdated ( const std::string &  segmentName,
const ::memoryx::EntityBasePtr &  entityOld,
const ::memoryx::EntityBasePtr &  entityNew,
const ::Ice::Current &  = Ice::emptyCurrent 
)
overrideprotected

Recognises when an entity is updated in the working memory.

See also
armarx::ManagedIceObject::reportEntityUpdated()

◆ reportMemoryCleared()

void reportMemoryCleared ( const std::string &  segmentName,
const ::Ice::Current &  = Ice::emptyCurrent 
)
overrideprotected

Recognises when an entity is created on the working memory.

See also
armarx::ManagedIceObject::reportMemoryCleared()

◆ reportSnapshotCompletelyLoaded()

void reportSnapshotCompletelyLoaded ( const Ice::Current &  c = Ice::emptyCurrent)
inlineoverrideprotected

Definition at line 214 of file WorkingMemoryController.h.

◆ reportSnapshotLoaded()

void reportSnapshotLoaded ( const std::string &  segmentName,
const ::Ice::Current &  = Ice::emptyCurrent 
)
overrideprotected

Recognises when a segment was loaded from a snapshot.

See also
armarx::ManagedIceObject::reportSnapshotLoaded()

◆ rotateTranslateObject()

void rotateTranslateObject ( const std::string &  id,
const SbRotation &  newOrientation,
const SbVec3f &  newPosition 
)

Applies the given orientation and position to the object instance with the given id.

Important: The values of the position vector will be multiplied by 1000 because the working memory uses another scale

Parameters
idthe id of the object that gets the new orientation and position
newOrientationthe new orientation
newPositionthe new position

Definition at line 157 of file WorkingMemoryController.cpp.

◆ saveObjectsInSnapshot()

bool saveObjectsInSnapshot ( const std::string &  snapshotName,
const memoryx::LongtermMemoryInterfacePrx &  longtermMemoryPrx,
const std::vector< std::string > &  objectIds 
) const

Saves the object instances with the given ids in a snapshot with the given name.

Retruns true if the saving was sucessful.

Parameters
snapshotNamethe name of the snapshot where the object instances are saved
longtermMemoryPrxa proxy for the longterm-memory where the snapshot will be stored
objectIdsthe list of ids
Returns
bool returns true if the saving was succesful

Definition at line 437 of file WorkingMemoryController.cpp.

◆ saveSceneInSnapshot()

bool saveSceneInSnapshot ( const std::string &  snapshotName,
const memoryx::LongtermMemoryInterfacePrx &  longtermMemoryPrx 
) const

Saves the whole scene in a snapshot with the given name.

Retruns true if the saving was sucessful.

Parameters
snapshotNamethe name of the snapshot where all object instances of the working memory are saved
longtermMemoryPrxa proxy for the longterm-memory where the snapshot will be stored
Returns
bool returns true if the saving was succesful

Definition at line 432 of file WorkingMemoryController.cpp.


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