Visitor.cpp
Go to the documentation of this file.
1 #include "Visitor.h"
2 
4 
8 
9 
10 namespace armarx::armem::wm
11 {
12 
14  {
15  }
16 
18  {
19  }
20 
22  {
24  bool cont = memory.forEachCoreSegment([this](CoreSegment & coreSeg)
25  {
26  return applyTo(coreSeg);
27  });
29  return cont;
30  }
31 
32  bool Visitor::applyTo(CoreSegment& coreSegment)
33  {
34  visitEnter(coreSegment);
35  bool cont = coreSegment.forEachProviderSegment([this](ProviderSegment & provSeg)
36  {
37  return applyTo(provSeg);
38  });
39  visitExit(coreSegment);
40  return cont;
41  }
42 
43  bool Visitor::applyTo(ProviderSegment& providerSegment)
44  {
45  visitEnter(providerSegment);
46  bool cont = providerSegment.forEachEntity([this](Entity & entity)
47  {
48  return applyTo(entity);
49  });
50  visitExit(providerSegment);
51  return cont;
52  }
53 
54  bool Visitor::applyTo(Entity& entity)
55  {
56  visitEnter(entity);
57  bool cont = entity.forEachSnapshot([this](EntitySnapshot & snapshot)
58  {
59  return applyTo(snapshot);
60  });
61  visitExit(entity);
62  return cont;
63  }
64 
66  {
67  visitEnter(snapshot);
68  bool cont = snapshot.forEachInstance([this](EntityInstance & instance)
69  {
70  return applyTo(instance);
71  });
72  visitExit(snapshot);
73  return cont;
74  }
75 
77  {
78  return visit(instance);
79  }
80 
81 
83  {
85  bool cont = memory.forEachCoreSegment([this](const CoreSegment & coreSeg)
86  {
87  return applyTo(coreSeg);
88  });
90  return cont;
91  }
92 
93  bool Visitor::applyTo(const CoreSegment& coreSegment)
94  {
95  visitEnter(coreSegment);
96  bool cont = coreSegment.forEachProviderSegment([this](const ProviderSegment & provSeg)
97  {
98  return applyTo(provSeg);
99  });
100  visitExit(coreSegment);
101  return cont;
102  }
103 
104  bool Visitor::applyTo(const ProviderSegment& providerSegment)
105  {
106  visitEnter(providerSegment);
107  bool cont = providerSegment.forEachEntity([this](const Entity & entity)
108  {
109  return applyTo(entity);
110  });
111  visitExit(providerSegment);
112  return cont;
113  }
114 
115  bool Visitor::applyTo(const Entity& entity)
116  {
117  visitEnter(entity);
118  bool cont = entity.forEachSnapshot([this](const EntitySnapshot & snapshot)
119  {
120  return applyTo(snapshot);
121  });
122  visitExit(entity);
123  return cont;
124  }
125 
126  bool Visitor::applyTo(const EntitySnapshot& snapshot)
127  {
128  visitEnter(snapshot);
129  bool cont = snapshot.forEachInstance([this](const EntityInstance & instance)
130  {
131  return applyTo(instance);
132  });
133  visitExit(snapshot);
134  return cont;
135  }
136 
137  bool Visitor::applyTo(const EntityInstance& instance)
138  {
139  return visit(instance);
140  }
141 
142 }
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::base::EntitySnapshotBase::forEachInstance
bool forEachInstance(InstanceFunctionT &&func)
Definition: EntitySnapshotBase.h:178
armarx::armem::wm::Visitor::visitExit
virtual bool visitExit(Memory &memory)
Definition: Visitor.h:54
Visitor.h
armarx::memory
Brief description of class memory.
Definition: memory.h:39
armarx::armem::wm::Visitor::~Visitor
virtual ~Visitor()
Definition: Visitor.cpp:17
memory_definitions.h
armarx::armem::wm
Definition: MemoryNameSystem.h:46
armarx::armem::wm::CoreSegment
Client-side working memory core segment.
Definition: memory_definitions.h:119
armarx::armem::base::CoreSegmentBase::forEachProviderSegment
bool forEachProviderSegment(ProviderSegmentFunctionT &&func)
Definition: CoreSegmentBase.h:217
error.h
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::EntitySnapshot
Client-side working memory entity snapshot.
Definition: memory_definitions.h:80
memory_definitions.h
ExpressionException.h
armarx::armem::base::ProviderSegmentBase::forEachEntity
bool forEachEntity(EntityFunctionT &&func)
Definition: ProviderSegmentBase.h:189
armarx::armem::wm::Visitor::Visitor
Visitor()
Definition: Visitor.cpp:13
armarx::armem::base::EntityBase::forEachSnapshot
bool forEachSnapshot(SnapshotFunctionT &&func)
Definition: EntityBase.h:390
armarx::armem::wm::Entity
Client-side working memory entity.
Definition: memory_definitions.h:93
armarx::armem::wm::Visitor::visit
virtual bool visit(EntityInstance &instance)
Definition: Visitor.h:75