StateInstanceFactory.h
Go to the documentation of this file.
1 /*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package ArmarX::
17 * @author Christian Mandery (christian.mandery at kit dot edu)
18 * @date 2014
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22 
23 #pragma once
24 
27 
28 #include "../../StatechartViewerPlugin/model/stateinstance/StateInstance.h"
29 
31 {
32  using XmlParentPair = std::pair<rapidxml::xml_node<>*, armarx::statechartmodel::StatePtr>;
33 
35  public AbstractFactoryMethod<StateInstanceFactoryBase, XmlParentPair>
36  {
37  public:
40 
42  {
43  }
44 
46 
47  protected:
50  };
51 
52  using StateInstanceFactoryBasePtr = std::shared_ptr<StateInstanceFactoryBase>;
53 
55  {
56  public:
59 
61 
63 
64  static std::string
66  {
67  return "EndState";
68  }
69 
70  private:
71  static SubClassRegistry registry;
72  };
73 
75  {
76  public:
79 
81 
83 
84  static std::string
86  {
87  return "LocalState";
88  }
89 
90  private:
91  static SubClassRegistry registry;
92  };
93 
95  {
96  public:
99 
101 
103 
104  static std::string
106  {
107  return "RemoteState";
108  }
109 
110  private:
111  static SubClassRegistry registry;
112  };
113 
115  {
116  public:
119 
121 
123 
124  static std::string
126  {
127  return "DynamicRemoteState";
128  }
129 
130  private:
131  static SubClassRegistry registry;
132  };
133 } // namespace armarx::statechartio
armarx::statechartio::RemoteStateInstanceFactory
Definition: StateInstanceFactory.h:94
armarx::AbstractFactoryMethod
A template that can be used as a superclass of a class hierarchy that wants to provide a factory meth...
Definition: AbstractFactoryMethod.h:49
armarx::statechartio
Definition: StateInstanceFactory.h:30
armarx::statechartio::StateInstanceFactoryBase::xmlNode
rapidxml::xml_node * xmlNode
Definition: StateInstanceFactory.h:48
armarx::statechartio::EndStateInstanceFactory
Definition: StateInstanceFactory.h:54
armarx::statechartio::DynamicRemoteStateInstanceFactory::getStateInstance
armarx::statechartmodel::StateInstancePtr getStateInstance() override
Definition: StateInstanceFactory.cpp:173
armarx::statechartio::LocalStateInstanceFactory
Definition: StateInstanceFactory.h:74
armarx::statechartio::DynamicRemoteStateInstanceFactory::DynamicRemoteStateInstanceFactory
DynamicRemoteStateInstanceFactory(rapidxml::xml_node<> *xmlNode, armarx::statechartmodel::StatePtr parentState)
Definition: StateInstanceFactory.cpp:165
armarx::statechartio::LocalStateInstanceFactory::getName
static std::string getName()
Definition: StateInstanceFactory.h:85
armarx::statechartmodel::StateInstancePtr
std::shared_ptr< StateInstance > StateInstancePtr
Definition: StateInstance.h:146
armarx::statechartio::RemoteStateInstanceFactory::createInstance
static StateInstanceFactoryBasePtr createInstance(XmlParentPair)
Definition: StateInstanceFactory.cpp:158
armarx::statechartio::EndStateInstanceFactory::createInstance
static StateInstanceFactoryBasePtr createInstance(XmlParentPair)
Definition: StateInstanceFactory.cpp:98
armarx::statechartio::LocalStateInstanceFactory::createInstance
static StateInstanceFactoryBasePtr createInstance(XmlParentPair)
Definition: StateInstanceFactory.cpp:127
armarx::statechartio::DynamicRemoteStateInstanceFactory
Definition: StateInstanceFactory.h:114
armarx::statechartio::DynamicRemoteStateInstanceFactory::createInstance
static StateInstanceFactoryBasePtr createInstance(XmlParentPair)
Definition: StateInstanceFactory.cpp:188
armarx::statechartio::StateInstanceFactoryBase::~StateInstanceFactoryBase
virtual ~StateInstanceFactoryBase()
Definition: StateInstanceFactory.h:41
armarx::statechartio::LocalStateInstanceFactory::getStateInstance
armarx::statechartmodel::StateInstancePtr getStateInstance() override
Definition: StateInstanceFactory.cpp:113
armarx::statechartio::LocalStateInstanceFactory::LocalStateInstanceFactory
LocalStateInstanceFactory(rapidxml::xml_node<> *xmlNode, armarx::statechartmodel::StatePtr parentState)
Definition: StateInstanceFactory.cpp:105
armarx::statechartio::DynamicRemoteStateInstanceFactory::getName
static std::string getName()
Definition: StateInstanceFactory.h:125
armarx::statechartio::RemoteStateInstanceFactory::getStateInstance
armarx::statechartmodel::StateInstancePtr getStateInstance() override
Definition: StateInstanceFactory.cpp:142
armarx::statechartio::StateInstanceFactoryBasePtr
std::shared_ptr< StateInstanceFactoryBase > StateInstanceFactoryBasePtr
Definition: StateInstanceFactory.h:52
rapidxml::xml_node
Class representing a node of XML document.
Definition: rapidxml.hpp:140
armarx::statechartio::StateInstanceFactoryBase::StateInstanceFactoryBase
StateInstanceFactoryBase(rapidxml::xml_node<> *xmlNode, armarx::statechartmodel::StatePtr parentState)
Definition: StateInstanceFactory.cpp:71
armarx::statechartmodel::StatePtr
std::shared_ptr< State > StatePtr
Definition: State.h:48
armarx::statechartio::StateInstanceFactoryBase
Definition: StateInstanceFactory.h:34
armarx::statechartio::EndStateInstanceFactory::getStateInstance
armarx::statechartmodel::StateInstancePtr getStateInstance() override
Definition: StateInstanceFactory.cpp:84
armarx::statechartio::EndStateInstanceFactory::getName
static std::string getName()
Definition: StateInstanceFactory.h:65
AbstractFactoryMethod.h
armarx::statechartio::XmlParentPair
std::pair< rapidxml::xml_node<> *, armarx::statechartmodel::StatePtr > XmlParentPair
Definition: StateInstanceFactory.h:32
rapidxml.hpp
armarx::statechartio::RemoteStateInstanceFactory::getName
static std::string getName()
Definition: StateInstanceFactory.h:105
armarx::statechartio::StateInstanceFactoryBase::getStateInstance
virtual armarx::statechartmodel::StateInstancePtr getStateInstance()=0
armarx::statechartio::StateInstanceFactoryBase::parentState
armarx::statechartmodel::StatePtr parentState
Definition: StateInstanceFactory.h:49
armarx::statechartio::RemoteStateInstanceFactory::RemoteStateInstanceFactory
RemoteStateInstanceFactory(rapidxml::xml_node<> *xmlNode, armarx::statechartmodel::StatePtr parentState)
Definition: StateInstanceFactory.cpp:134
armarx::statechartio::EndStateInstanceFactory::EndStateInstanceFactory
EndStateInstanceFactory(rapidxml::xml_node<> *xmlNode, armarx::statechartmodel::StatePtr parentState)
Definition: StateInstanceFactory.cpp:77