31#include <IceUtil/Handle.h>
34#include <ArmarXCore/interface/observers/Event.h>
35#include <ArmarXCore/interface/observers/VariantBase.h>
60 virtual public ConditionRootBase
63 template <
class BaseClass,
class VariantClass>
72 void update(
const Ice::Current&
c = Ice::emptyCurrent)
override;
73 void updateWithData(
const Ice::Current&
c = Ice::emptyCurrent)
override;
80 void output(std::ostream& out)
const override;
92 const EventBasePtr& event,
93 const std::string& description,
95 const DatafieldRefList& refs);
120 static std::vector<LiteralImplPtr> ExtractLiterals(
const TermImplBasePtr& expression);
124 std::mutex updateMutex;
125 DatafieldRefList refs;
std::ostream & operator<<(std::ostream &strm, const AbstractInterface &a)
#define ARMARXCORE_IMPORT_EXPORT
ConditionRoot Condition roots are top-level nodes of the expression tree.
void update(const Ice::Current &c=Ice::emptyCurrent) override
Update state f the ConditionRoot object based on the child.
friend class GenericFactory
void updateWithData(const Ice::Current &c=Ice::emptyCurrent) override
void output(std::ostream &out) const override
output to stream.
friend class ConditionHandler
ConditionRoot()
Creates an empty ConditionRoot.
LiteralImpls are the basic elements for defining conditional expressions.
TermImpl is the superclass for all implementations of terms in the expression tree,...
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< ConditionRoot > ConditionRootPtr
Typedef of ConditionRootPtr as IceInternal::Handle<ConditionRoot> for convenience.
IceInternal::Handle< LiteralImpl > LiteralImplPtr
Typedef of LiteralImplPtr as IceInternal::Handle<LiteralImpl> for convenience.