25#ifndef _ARMARX_CORE_STATECHARTCONTEXT_H
26#define _ARMARX_CORE_STATECHARTCONTEXT_H
29#include <unordered_map>
31#include <ArmarXCore/interface/observers/ConditionHandlerInterface.h>
32#include <ArmarXCore/interface/observers/SystemObserverInterface.h>
40 class StatechartEventDistributor;
89 void onInitComponent()
override;
90 void onConnectComponent()
override;
91 void onDisconnectComponent()
override;
92 void onExitComponent()
override;
135 const std::string& channelName)
override;
138 const std::string& datafieldName)
override;
152 StringVariantContainerBaseMap startParameters = StringVariantContainerBaseMap());
190 std::unordered_map<std::string, ObserverInterfacePrx>
observerMap;
Default component property definition container.
Component()
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead.
DataFieldIdentifier provide the basis to identify data field within a distributed ArmarX scenario.
IceManagerPtr getIceManager() const
Returns the IceManager.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Class that offers the main functionality needed to create a statechart.
StatechartContextPropertyDefinitions(std::string prefix)
std::string reportingTopic
TimedVariantBaseList getDataListFromObserver(std::string observerName, const DataFieldIdentifierBaseList &identifierList) override
void startStatechart()
startStatechart actives both, the toplevel startchart stored in the variable statechart and the State...
~StatechartContext() override
VariantBasePtr getDataFromObserver(const DataFieldIdentifierBasePtr &identifier) override
void setAutoEnterToplevelState(bool autoEnter)
setAutoStartStatechart controls whether the toplevelstate is automatically entered,...
DatafieldRefPtr getDatafieldRef(const DataFieldIdentifier &datafieldIdentifier) override
std::unordered_map< std::string, ObserverInterfacePrx > observerMap
StatechartEventDistributorPtr eventDistributor
The EventListenerInterface instance, that receives events from observers and redirects them to the co...
bool setToplevelState(const armarx::StatePtr &newToplevelState, StringVariantContainerBaseMap startParameters=StringVariantContainerBaseMap())
setToplevelState initializes newToplevelState with the current StatechartContext and the current Stat...
virtual void onExitStatechart()
onExitStatechart can be implemented by subclasses
SystemObserverInterfacePrx systemObserverPrx
bool autoEnterToplevelState
StatechartManagerPtr statechartManager
ConditionHandlerInterfacePrx conditionHandlerPrx
virtual void onInitStatechart()=0
onInitStatechart this method is called when the statechart is started.
PropertyDefinitionsPtr createPropertyDefinitions() override
virtual void onConnectStatechart()=0
onConnectStatechart is called before armarx::StatechartContext::startStatechart() and after armarx::S...
virtual void onInitStatechartContext()
onInitStatechartonInitStatechartContext can be implemented by subclasses
Profiler::ProfilerPtr stateReporter
ChannelRefPtr getChannelRef(const std::string &observerName, const std::string &channelName) override
void setReportingTopic(std::string reportingTopic)
virtual void onConnectStatechartContext()
onConnectStatechartContext can be implemented by subclasses
const StatechartProfilePtr & getSelectedStatechartProfile() const
void setSelectedStatechartProfile(const StatechartProfilePtr &value)
friend class XMLStateComponent
std::shared_ptr< Profiler > ProfilerPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< StatechartContext > StatechartContextPtr
IceInternal::Handle< DataFieldIdentifierBase > DataFieldIdentifierBasePtr
IceInternal::Handle< State > StatePtr
IceInternal::Handle< ChannelRef > ChannelRefPtr
::std::vector<::armarx::DataFieldIdentifierBasePtr > DataFieldIdentifierBaseList
IceInternal::Handle< DatafieldRef > DatafieldRefPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
std::shared_ptr< class StatechartProfile > StatechartProfilePtr
::IceInternal::Handle<::armarx::VariantBase > VariantBasePtr
IceUtil::Handle< StatechartManager > StatechartManagerPtr
IceInternal::Handle< StatechartEventDistributor > StatechartEventDistributorPtr