Go to the documentation of this file.
34 #include <RobotComponents/interface/components/MotionPlanning/Tasks/RRTConnect/WorkerNode.h>
35 #include "../../util/Samplers.h"
36 #include "../../util/CollisionCheckUtil.h"
43 template <
class IceBaseClass,
class DerivedClass>
class GenericFactory;
55 virtual public WorkerNodeBase
61 using WorkerNodeBase::WorkerNodeBase;
68 #pragma GCC diagnostic push
69 #pragma GCC diagnostic ignored "-Wterminate"
71 #pragma GCC diagnostic pop
81 return "RRTConnectWorkerNode";
85 Update
getUpdate(
Ice::Long updateId,
const Ice::Current& = Ice::emptyCurrent)
const override;
86 void setWorkerNodes(
const WorkerNodeBasePrxList&
workers,
const Ice::Current& = Ice::emptyCurrent)
override;
88 void abort(const ::Ice::Current& = Ice::emptyCurrent)
override
94 void updateTree(
const Update& u,
const Ice::Current& = Ice::emptyCurrent)
override;
116 <<
"] requesting update " << workerNodeId <<
" / " << updateSubId;
118 return workers.at(workerNodeId)->getUpdate(updateSubId);
129 NodeId
addNode(
const ConfigType& cfg,
const NodeId& parent,
bool addToPrimaryTree);
133 return addNode(cfg, parent,
true);
137 return addNode(cfg, parent,
false);
145 return cspace->getDimensionality();
std::string getDefaultName() const override
Retrieve default name of component.
WorkerNode()=default
Only used when transmitting through ice.
void abort(const ::Ice::Current &=Ice::emptyCurrent) override
void onInitComponent() override
Pure virtual hook for the subclass.
std::atomic_bool abortRequest
WorkerNodeBasePrxList workers
NodeId addNode(const ConfigType &cfg, const NodeId &parent, bool addToPrimaryTree)
std::deque< Update > localUpdates
NodeId addNodeToPrimaryTree(const ConfigType &cfg, const NodeId &parent)
std::unique_ptr< CuboidSampler > sampler
Ice::Byte getPrimaryTreeId() const
std::atomic_bool doApplyUpdates
std::size_t getDimensionality()
bool fromStartIsPrimaryTree
Tree & getSecondaryTree()
void onConnectComponent() override
Pure virtual hook for the subclass.
Update getRemoteUpdate(Ice::Long workerNodeId, Ice::Long updateSubId)
void workerTask()
The worker task.
void updateTree(const Update &u, const Ice::Current &=Ice::emptyCurrent) override
The ManagedIceObject is the base class for all ArmarX objects.
#define ARMARX_CHECK_EXPRESSION(expression)
This macro evaluates the expression and if it turns out to be false it will throw an ExpressionExcept...
void onExitComponent() override
Hook for subclass.
NodeId addNodeToSecondaryTree(const ConfigType &cfg, const NodeId &parent)
TreeUpdateInterfacePrx globalWorkers
~WorkerNode() override
dtor.
Update getUpdate(Ice::Long updateId, const Ice::Current &=Ice::emptyCurrent) const override
This file offers overloads of toIce() and fromIce() functions for STL container types.
Ice::Byte getSecondaryTreeId() const
void ice_postUnmarshal() override
void setWorkerNodes(const WorkerNodeBasePrxList &workers, const Ice::Current &=Ice::emptyCurrent) override