Go to the documentation of this file.
29 #include <ArmarXCore/interface/core/RemoteObjectNode.h>
30 #include <Ice/BuiltinSequences.h>
31 #include <Ice/Config.h>
32 #include <Ice/Current.h>
33 #include <Ice/Handle.h>
34 #include <Ice/Identity.h>
35 #include <Ice/ObjectF.h>
36 #include <Ice/PropertiesF.h>
37 #include <Ice/ProxyF.h>
44 #include <unordered_map>
51 #include "ArmarXCore/interface/core/util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.h"
55 class RemoteObjectNode;
76 defineOptionalProperty<int>(
"CoreCount", 0,
"The used count of cores (<=0 => autodetect)");
87 virtual public RemoteObjectNodeInterface,
113 return "RemoteObjectNode";
139 Ice::ObjectPrx
createPersistentComponent(
const std::string& componentFactoryName,
const std::string& registrationName,
const ComponentParameter& params,
const Ice::Current& = Ice::emptyCurrent)
override;
140 ClientSideRemoteHandleControlBlockBasePtr
createRemoteHandledComponent(
const std::string& componentFactoryName,
const std::string& registrationName,
const ComponentParameter& params,
const Ice::Current& = Ice::emptyCurrent)
override;
Ice::StringSeq getKnownComponentFactories(const Ice::Current &=Ice::emptyCurrent) const override
std::string getDefaultName() const override
Returns the object node's default name.
ManagedIceObjectPtrAndPrx setupManagedIceObject(ManagedIceObjectPtr mioPtr, std::string registrationName)
Ice::IdentitySeq persistentIceObjectIdentities
The identities of persistent ice objects.
Ice::ObjectPrx registerPersistentObject(const std::string ®istrationName, const Ice::ObjectPtr ®istree, const Ice::Current &=Ice::emptyCurrent) override
void onConnectComponent() override
Pure virtual hook for the subclass.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
std::atomic< Ice::Long > nextRemoteHandledObjectId
Ice::Long getNumberOfRemoteHandledObjects(const Ice::Current &=Ice::emptyCurrent) const override
Properties for a RemoteObjectNodeComponent.
ClientSideRemoteHandleControlBlockBasePtr doRegisterRemoteHandledManagedIceObjectAtRON(ManagedIceObjectPtrAndPrx mio)
std::vector< ManagedIceObjectPtr > persistentManagedIceObjects
The persistent managed ice objects.
static unsigned getDefaultCoreCount()
void Identity(MatrixXX< N, N, T > *a)
void onInitComponent() override
reads in properties
void onExitComponent() override
Removes all remote objects.
RemoteObjectNodePropertyDefinitions(std::string prefix)
ctor
ManagedIceObjectPtrAndPrx setupComponent(const std::string &componentFactoryName, const std::string ®istrationName, const ComponentParameter ¶ms)
Ice::ObjectPrx doRegisterPersistentIceObjectAtRON(IceObjectIdentityAndPrx io)
Ice::Long getNumberOfCores(const Ice::Current &=Ice::emptyCurrent) const override
Returns the number of cores to use.
Ice::Long getNumberOfPersistentObjects(const Ice::Current &=Ice::emptyCurrent) const override
ClientSideRemoteHandleControlBlockBasePtr registerRemoteHandledObjectWithIdentity(const Ice::Identity &ident, const Ice::ObjectPtr ®istree, const Ice::Current &=Ice::emptyCurrent) override
Ice::Long getNumberOfObjects(const Ice::Current &=Ice::emptyCurrent) const override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
std::size_t coreCountUsed
The nuber of cores returned, when querried for it.
Baseclass for all ArmarX ManagedIceObjects requiring properties.
void shutdownAndCleanup()
IceObjectIdentityAndPrx setupIceObject(const Ice::ObjectPtr &ptr, Ice::Identity ident)
Ice::ObjectPrx createPersistentComponent(const std::string &componentFactoryName, const std::string ®istrationName, const ComponentParameter ¶ms, const Ice::Current &=Ice::emptyCurrent) override
RemoteObjectNode()=default
ctor
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
virtual void setCoreCount(int newCount)
std::atomic_bool shuttingDown
ClientSideRemoteHandleControlBlockBasePtr doRegisterRemoteHandledIceObjectAtRON(IceObjectIdentityAndPrx io)
~RemoteObjectNode() override
dtor
Default component property definition container.
ClientSideRemoteHandleControlBlockBasePtr registerRemoteHandledObject(const std::string ®istrationName, const Ice::ObjectPtr ®istree, const Ice::Current &=Ice::emptyCurrent) override
std::mutex dataMutex
mutex to protect the map
ClientSideRemoteHandleControlBlockBasePtr createRemoteHandledComponent(const std::string &componentFactoryName, const std::string ®istrationName, const ComponentParameter ¶ms, const Ice::Current &=Ice::emptyCurrent) override
void removeRemoteHandledObject(Ice::Long id)
std::shared_ptr< Object > ObjectPtr
Ice::ObjectPrx doRegisterPersistentManagedIceObjectAtRON(ManagedIceObjectPtrAndPrx mio)
std::unordered_map< Ice::Long, RemoteHandleControlBlockPtr > remoteHandledObjects
the map of running objects
Ice::ObjectPrx registerPersistentObjectWithIdentity(const Ice::Identity &ident, const Ice::ObjectPtr ®istree, const Ice::Current &=Ice::emptyCurrent) override
This file offers overloads of toIce() and fromIce() functions for STL container types.