MIRA
ActionAttribute.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2013,
3  Neuroinformatics and Cognitive Robotics Labs at TU Ilmenau, Germany
4 
5 All rights reserved.
6 
7 Copying, resale, or redistribution, with or without modification, is strictly
8 prohibited.
9 
10 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
11 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
12 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
13 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
14 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES,
15 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16 */
17 
26 #pragma once
27 
29 
30 #include <topomap/Attribute.h>
31 
32 namespace viros { namespace topomap {
33 
35 
36 class ActionAttribute : public Attribute
37 {
39 public:
40 
42  ActionAttribute(const std::string& iType,
43  const std::string& iValue,
44  const std::string& iQualifier = "") :
45  type(iType), value(iValue), qualifier(iQualifier) {}
46 
48  return boost::make_shared<ActionAttribute>();
49  }
50 
51  static ActionAttributePtr create(const std::string& iType,
52  const std::string& iValue,
53  const std::string& iQualifier = "") {
54  return boost::make_shared<ActionAttribute>(iType, iValue, iQualifier);
55  }
56 
57  template<typename Reflector>
58  void reflect(Reflector& r)
59  {
61  r.member("Type", type, "");
62  r.member("Value", value, "");
63  r.member("Qualifier", qualifier, "");
64  }
65 public:
66  std::string type;
67  std::string value;
68  std::string qualifier;
69 };
70 
72 {
74 public:
75 
77  InitActionAttribute(const std::string& iType, const std::string& iValue) :
78  ActionAttribute(iType, iValue) {}
79 
81  return boost::make_shared<InitActionAttribute>();
82  }
83 
84  static InitActionAttributePtr create(const std::string& iType, const std::string& iValue) {
85  return boost::make_shared<InitActionAttribute>(iType, iValue);
86  }
87 };
88 
90 
91 } } // namespace
Definition: ActionAttribute.h:36
std::string type
Definition: ActionAttribute.h:66
static InitActionAttributePtr create()
Definition: ActionAttribute.h:80
static InitActionAttributePtr create(const std::string &iType, const std::string &iValue)
Definition: ActionAttribute.h:84
InitActionAttribute()
Definition: ActionAttribute.h:76
boost::shared_ptr< ActionAttribute > ActionAttributePtr
Definition: TopoMapFwd.h:74
#define MIRA_REFLECT_BASE(reflector, BaseClass)
std::string qualifier
Definition: ActionAttribute.h:68
static ActionAttributePtr create()
Definition: ActionAttribute.h:47
Definition: Attribute.h:37
void reflect(Reflector &r)
Definition: ActionAttribute.h:58
boost::shared_ptr< InitActionAttribute > InitActionAttributePtr
Definition: TopoMapFwd.h:75
std::string value
Definition: ActionAttribute.h:67
#define MIRA_OBJECT(classIdentifier)
static ActionAttributePtr create(const std::string &iType, const std::string &iValue, const std::string &iQualifier="")
Definition: ActionAttribute.h:51
ActionAttribute(const std::string &iType, const std::string &iValue, const std::string &iQualifier="")
Definition: ActionAttribute.h:42
InitActionAttribute(const std::string &iType, const std::string &iValue)
Definition: ActionAttribute.h:77
Definition: ActionAttribute.h:71
Definition: MetricCostmapTopoMapPlanner.h:45
ActionAttribute()
Definition: ActionAttribute.h:41