ObjectClass.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 MemoryX::Core
17 * @author Alexey Kozlov ( kozlov at kit dot edu)
18 * @date 2012
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22 
23 #pragma once
24 
26 
27 #include <MemoryX/interface/core/EntityBase.h>
28 #include <MemoryX/interface/memorytypes/MemoryEntities.h>
30 
31 namespace memoryx
32 {
33 
34  class ObjectClass;
36 
37  class ObjectClass :
38  public memoryx::ObjectClassBase,
39  public memoryx::Entity
40  {
41  public:
42  ObjectClass();
44  ~ObjectClass() override;
45 
46  ::memoryx::NameList getParentClasses(const ::Ice::Current& = Ice::emptyCurrent) const override;
47  void setParentClass(const ::std::string& className, const ::Ice::Current& = Ice::emptyCurrent) override;
48  void addParentClass(const ::std::string& className, const ::Ice::Current& = Ice::emptyCurrent) override;
49  void clearParentClasses(const ::Ice::Current& = Ice::emptyCurrent) override;
50  void setInstanceable(bool isInstanceable, const ::Ice::Current& = Ice::emptyCurrent) override;
51  bool isInstanceable(const ::Ice::Current& = Ice::emptyCurrent) const override;
52  ObjectComparisonResult compare(const ObjectClassBasePtr& other, const Ice::Current& = Ice::emptyCurrent) const override;
53  EntityAttributeBasePtr getParentClassesAttr() const;
54 
55  // cloning
56  Ice::ObjectPtr ice_clone() const override;
57  ObjectClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const;
58 
59  private:
60  void output(std::ostream& stream) const;
61 
62  public: // streaming operator
63  friend std::ostream& operator<<(std::ostream& stream, const ObjectClass& rhs)
64  {
65  rhs.output(stream);
66  return stream;
67  }
68 
69  friend std::ostream& operator<<(std::ostream& stream, const ObjectClassPtr& rhs)
70  {
71  rhs->output(stream);
72  return stream;
73  }
74 
75  friend std::ostream& operator<<(std::ostream& stream, const ObjectClassBasePtr& rhs)
76  {
77  stream << ObjectClassPtr::dynamicCast(rhs);
78  return stream;
79  }
80  };
81 
82 }
83 
memoryx::ObjectClass::getParentClasses
::memoryx::NameList getParentClasses(const ::Ice::Current &=Ice::emptyCurrent) const override
Definition: ObjectClass.cpp:53
memoryx::ObjectClass::isInstanceable
bool isInstanceable(const ::Ice::Current &=Ice::emptyCurrent) const override
Definition: ObjectClass.cpp:99
memoryx::ObjectClass::operator<<
friend std::ostream & operator<<(std::ostream &stream, const ObjectClassBasePtr &rhs)
Definition: ObjectClass.h:75
memoryx::ObjectClass::setInstanceable
void setInstanceable(bool isInstanceable, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: ObjectClass.cpp:85
memoryx
VirtualRobot headers.
Definition: CommonPlacesTester.cpp:48
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
memoryx::ObjectClass::operator<<
friend std::ostream & operator<<(std::ostream &stream, const ObjectClassPtr &rhs)
Definition: ObjectClass.h:69
IceInternal::Handle< ObjectClass >
memoryx::ObjectClass::~ObjectClass
~ObjectClass() override
Definition: ObjectClass.cpp:48
memoryx::ObjectClass::ObjectClass
ObjectClass()
Definition: ObjectClass.cpp:30
memoryx::ObjectClass::getParentClassesAttr
EntityAttributeBasePtr getParentClassesAttr() const
Definition: ObjectClass.cpp:116
memoryx::ObjectClass
Definition: ObjectClass.h:37
boost::source
Vertex source(const detail::edge_base< Directed, Vertex > &e, const PCG &)
Definition: point_cloud_graph.h:681
memoryx::ObjectClass::compare
ObjectComparisonResult compare(const ObjectClassBasePtr &other, const Ice::Current &=Ice::emptyCurrent) const override
Definition: ObjectClass.cpp:136
memoryx::ObjectClass::addParentClass
void addParentClass(const ::std::string &className, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: ObjectClass.cpp:67
memoryx::ObjectClass::operator<<
friend std::ostream & operator<<(std::ostream &stream, const ObjectClass &rhs)
Definition: ObjectClass.h:63
Entity.h
memoryx::ObjectClass::setParentClass
void setParentClass(const ::std::string &className, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: ObjectClass.cpp:73
memoryx::ObjectClass::clearParentClasses
void clearParentClasses(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: ObjectClass.cpp:80
armarx::aron::type::ObjectPtr
std::shared_ptr< Object > ObjectPtr
Definition: Object.h:36
memoryx::ObjectClass::clone
ObjectClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const
Definition: ObjectClass.cpp:126
memoryx::ObjectClass::ice_clone
Ice::ObjectPtr ice_clone() const override
Definition: ObjectClass.cpp:121
memoryx::Entity
Definition: Entity.h:246
Variant.h