Visitor.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 namespace armarx::armem::wm
5 {
6  class Memory;
7  class CoreSegment;
8  class ProviderSegment;
9  class Entity;
10  class EntitySnapshot;
11  class EntityInstance;
12 
13 
14  /**
15  * @brief A visitor for the hierarchical memory data structure.
16  */
17  class Visitor
18  {
19 
20  public:
21 
22  Visitor();
23  virtual ~Visitor();
24 
25  bool applyTo(Memory& memory);
26  bool applyTo(CoreSegment& coreSegment);
27  bool applyTo(ProviderSegment& providerSegment);
28  bool applyTo(Entity& entity);
29  bool applyTo(EntitySnapshot& snapshot);
30  bool applyTo(EntityInstance& instance);
31 
32 
33  virtual bool visitEnter(Memory& memory)
34  {
35  return visitEnter(const_cast<const Memory&>(memory));
36  }
37  virtual bool visitEnter(CoreSegment& coreSegment)
38  {
39  return visitEnter(const_cast<const CoreSegment&>(coreSegment));
40  }
41  virtual bool visitEnter(ProviderSegment& providerSegment)
42  {
43  return visitEnter(const_cast<const ProviderSegment&>(providerSegment));
44  }
45  virtual bool visitEnter(Entity& entity)
46  {
47  return visitEnter(const_cast<const Entity&>(entity));
48  }
49  virtual bool visitEnter(EntitySnapshot& snapshot)
50  {
51  return visitEnter(const_cast<const EntitySnapshot&>(snapshot));
52  }
53 
54  virtual bool visitExit(Memory& memory)
55  {
56  return visitExit(const_cast<const Memory&>(memory));
57  }
58  virtual bool visitExit(CoreSegment& coreSegment)
59  {
60  return visitExit(const_cast<const CoreSegment&>(coreSegment));
61  }
62  virtual bool visitExit(ProviderSegment& providerSegment)
63  {
64  return visitExit(const_cast<const ProviderSegment&>(providerSegment));
65  }
66  virtual bool visitExit(Entity& entity)
67  {
68  return visitExit(const_cast<const Entity&>(entity));
69  }
70  virtual bool visitExit(EntitySnapshot& snapshot)
71  {
72  return visitExit(const_cast<const EntitySnapshot&>(snapshot));
73  }
74 
75  virtual bool visit(EntityInstance& instance)
76  {
77  return visit(const_cast<const EntityInstance&>(instance));
78  }
79 
80 
81 
82  // Const versions
83 
84  bool applyTo(const Memory& memory);
85  bool applyTo(const CoreSegment& coreSegment);
86  bool applyTo(const ProviderSegment& providerSegment);
87  bool applyTo(const Entity& entity);
88  bool applyTo(const EntitySnapshot& snapshot);
89  bool applyTo(const EntityInstance& instance);
90 
91 
92  virtual bool visitEnter(const Memory& memory)
93  {
94  (void) memory;
95  return true;
96  }
97  virtual bool visitEnter(const CoreSegment& coreSegment)
98  {
99  (void) coreSegment;
100  return true;
101  }
102  virtual bool visitEnter(const ProviderSegment& providerSegment)
103  {
104  (void) providerSegment;
105  return true;
106  }
107  virtual bool visitEnter(const Entity& entity)
108  {
109  (void) entity;
110  return true;
111  }
112  virtual bool visitEnter(const EntitySnapshot& snapshot)
113  {
114  (void) snapshot;
115  return true;
116  }
117 
118  virtual bool visitExit(const Memory& memory)
119  {
120  (void) memory;
121  return true;
122  }
123  virtual bool visitExit(const CoreSegment& coreSegment)
124  {
125  (void) coreSegment;
126  return true;
127  }
128  virtual bool visitExit(const ProviderSegment& providerSegment)
129  {
130  (void) providerSegment;
131  return true;
132  }
133  virtual bool visitExit(const Entity& entity)
134  {
135  (void) entity;
136  return true;
137  }
138  virtual bool visitExit(const EntitySnapshot& snapshot)
139  {
140  (void) snapshot;
141  return true;
142  }
143 
144  virtual bool visit(const EntityInstance& instance)
145  {
146  (void) instance;
147  return true;
148  }
149 
150  };
151 
152 }
armarx::armem::server::wm::EntityInstance
armem::wm::EntityInstance EntityInstance
Definition: forward_declarations.h:64
armarx::armem::wm::ProviderSegment
Client-side working memory provider segment.
Definition: memory_definitions.h:105
armarx::armem::wm::EntityInstance
Client-side working entity instance.
Definition: memory_definitions.h:32
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(Memory &memory)
Definition: Visitor.h:54
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(const Memory &memory)
Definition: Visitor.h:92
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(const Memory &memory)
Definition: Visitor.h:118
armarx::memory
Brief description of class memory.
Definition: memory.h:39
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(const CoreSegment &coreSegment)
Definition: Visitor.h:123
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(const ProviderSegment &providerSegment)
Definition: Visitor.h:102
armarx::armem::wm::Visitor
A visitor for the hierarchical memory data structure.
Definition: Visitor.h:17
armarx::armem::wm::Visitor::~Visitor
virtual ~Visitor()
Definition: Visitor.cpp:17
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(const EntitySnapshot &snapshot)
Definition: Visitor.h:138
armarx::armem::wm
Definition: MemoryNameSystem.h:46
armarx::armem::wm::CoreSegment
Client-side working memory core segment.
Definition: memory_definitions.h:119
armarx::armem::wm::Memory
Client-side working memory.
Definition: memory_definitions.h:133
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(Memory &memory)
Definition: Visitor.h:33
armarx::armem::wm::Visitor::applyTo
bool applyTo(Memory &memory)
Definition: Visitor.cpp:21
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(const Entity &entity)
Definition: Visitor.h:107
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(CoreSegment &coreSegment)
Definition: Visitor.h:37
armarx::armem::wm::EntitySnapshot
Client-side working memory entity snapshot.
Definition: memory_definitions.h:80
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(const Entity &entity)
Definition: Visitor.h:133
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(EntitySnapshot &snapshot)
Definition: Visitor.h:49
armarx::armem::wm::Visitor::visit
virtual bool visit(const EntityInstance &instance)
Definition: Visitor.h:144
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(ProviderSegment &providerSegment)
Definition: Visitor.h:41
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(const ProviderSegment &providerSegment)
Definition: Visitor.h:128
armarx::armem::server::wm::EntitySnapshot
armem::wm::EntitySnapshot EntitySnapshot
Definition: forward_declarations.h:65
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(CoreSegment &coreSegment)
Definition: Visitor.h:58
armarx::armem::wm::Visitor::Visitor
Visitor()
Definition: Visitor.cpp:13
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(ProviderSegment &providerSegment)
Definition: Visitor.h:62
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(Entity &entity)
Definition: Visitor.h:45
armarx::armem::wm::Entity
Client-side working memory entity.
Definition: memory_definitions.h:93
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(EntitySnapshot &snapshot)
Definition: Visitor.h:70
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(const CoreSegment &coreSegment)
Definition: Visitor.h:97
armarx::armem::wm::Visitor::visitEnter
virtual bool visitEnter(const EntitySnapshot &snapshot)
Definition: Visitor.h:112
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(Entity &entity)
Definition: Visitor.h:66
armarx::armem::wm::Visitor::visit
virtual bool visit(EntityInstance &instance)
Definition: Visitor.h:75