|
The controller for the communication with the working memory. More...
#include <MemoryX/gui-plugins/SceneEditor/memoryxcontroller/WorkingMemoryController.h>
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 LogSenderPtr & | getLogSender () 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 |
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.
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.
workingMemoryPrx | the proxy to the used working memory |
workingMemoryUpdatesTopic | the name of the topic this ice object will subscribe to recieve events from the working memory |
objectInstancesSegmentName | the name of the segment in the data base where the object instances are stored |
memoryXController | the MemoryXController |
|
override |
Destructor.
Destructs this instance of this class.
Definition at line 58 of file WorkingMemoryController.cpp.
void addAllInstancesToLocalScene | ( | ) | const |
Adds all object instances of the working memory to the local scene.
Definition at line 190 of file WorkingMemoryController.cpp.
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.
objectName | the name of the added object instance |
objectClassPtr | a pointer to the object class of the new object instance |
Definition at line 62 of file WorkingMemoryController.cpp.
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
instancePtrs | object instances to add to the working memory |
Definition at line 83 of file WorkingMemoryController.cpp.
std::vector<std::string> getAllObjectInstances | ( | ) | const |
Returns all object ids that are currently in the working memory.
|
overrideprotectedvirtual |
Returns the default name of this managed ice object.
Implements ManagedIceObject.
Definition at line 394 of file WorkingMemoryController.cpp.
|
static |
Returns the rotation of a object instance.
The rotation is translated to the format used in the Scene.
Definition at line 400 of file WorkingMemoryController.cpp.
|
static |
Returns the position of a object instance.
The position is translated to the format used in the Scene.
Definition at line 407 of file WorkingMemoryController.cpp.
|
overrideprotectedvirtual |
Implements ManagedIceObject.
Definition at line 389 of file WorkingMemoryController.cpp.
|
overrideprotectedvirtual |
Implements ManagedIceObject.
Definition at line 384 of file WorkingMemoryController.cpp.
void removeObjectInstance | ( | const std::string & | id | ) |
Removes the object instance with the given id.
Exception | when there is no object instance with the given id |
id | the id of the object instance that should be removed from the working memory |
Definition at line 142 of file WorkingMemoryController.cpp.
|
overrideprotected |
Recognises when an entity is created in the working memory.
|
overrideprotected |
Recognises when an entity is removed from the working memory.
|
overrideprotected |
Recognises when an entity is updated in the working memory.
|
overrideprotected |
Recognises when an entity is created on the working memory.
|
inlineoverrideprotected |
Definition at line 214 of file WorkingMemoryController.h.
|
overrideprotected |
Recognises when a segment was loaded from a snapshot.
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
id | the id of the object that gets the new orientation and position |
newOrientation | the new orientation |
newPosition | the new position |
Definition at line 157 of file WorkingMemoryController.cpp.
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.
snapshotName | the name of the snapshot where the object instances are saved |
longtermMemoryPrx | a proxy for the longterm-memory where the snapshot will be stored |
objectIds | the list of ids |
Definition at line 437 of file WorkingMemoryController.cpp.
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.
snapshotName | the name of the snapshot where all object instances of the working memory are saved |
longtermMemoryPrx | a proxy for the longterm-memory where the snapshot will be stored |
Definition at line 432 of file WorkingMemoryController.cpp.