ProfilerObserver.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package Core::observers::ProfilerObserver
19  * @author Manfred Kroehnert (manfred dot kroehnert at kit dot edu)
20  * @date 2015
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
25 #include "ProfilerObserver.h"
26 
31 
32 #include "../observers/variant/TimestampVariant.h"
33 
34 #include <set>
35 #include <algorithm>
36 #include <ArmarXCore/core/services/profiler/Profiler.h> // for ProfilerPtr
37 
38 
39 
41 {
42 }
43 
45 {
46  return "ProfilerObserver";
47 }
48 
49 
51 {
52  usingTopic(armarx::Profiler::PROFILER_TOPIC_NAME);
53 }
54 
55 
57 {
58  offerChannel("activeStateChanged", "Channel reporting the currently active state of statecharts with EnableProfiling property set");
59  offerDataField("activeStateChanged", "activeState", VariantType::String, "Name of the currently active state");
60  offerConditionCheck(checks::equals, new ConditionCheckEquals());
61  offerConditionCheck(checks::updated, new ConditionCheckUpdated());
62  offerConditionCheck(checks::changed, new ConditionCheckChanged());
63  offerConditionCheck(checks::valid, new ConditionCheckValid());
64 
65  setDataField("activeStateChanged", "activeState", "");
66 }
67 
68 
69 void armarx::ProfilerObserver::reportNetworkTraffic(const std::string& id, const std::string& protocol, Ice::Int inBytes, Ice::Int outBytes, const Ice::Current&)
70 {
71  try
72  {
73  if (!existsChannel(id))
74  {
75  offerChannel(id, "Network traffic");
76  }
77 
78  offerOrUpdateDataField(id, protocol + "_inBytes", Variant(inBytes), "Incoming network traffic");
79  offerOrUpdateDataField(id, protocol + "_outBytes", Variant(outBytes), "Outgoing network traffic");
80  updateChannel(id);
81  }
82  catch (...)
83  {
85  }
86 }
87 
88 void armarx::ProfilerObserver::reportEvent(const armarx::ProfilerEvent& event, const Ice::Current&)
89 {
90  std::string stateIdentifier = event.parentName;
91  try
92  {
93  createStateChannelIfRequired(stateIdentifier);
94 
95  int microsecondsModifier = 0;
96  if (event.timestampUnit == "ms")
97  {
98  microsecondsModifier = 1000;
99  }
100  else if (event.timestampUnit == "us")
101  {
102  microsecondsModifier = 1;
103  }
104 
105  TimestampVariant timestamp(event.timestamp * microsecondsModifier);
107  {
108  setDataField(stateIdentifier, "lastEnterTimestamp", timestamp);
109  }
110  else
111  {
112  VariantPtr lastActiveState = VariantPtr::dynamicCast(getDataField(new DataFieldIdentifier(getName(), stateIdentifier, "activeSubstate")));
113  setDataField(stateIdentifier, "lastExitTimestamp", timestamp);
114  setDataField(stateIdentifier, "activeSubstate", Variant(""));
115  if (lastActiveState)
116  {
117  setDataFieldFlatCopy(stateIdentifier, "previousSubstate", lastActiveState);
118  }
119  }
120  updateChannel(stateIdentifier);
121  ARMARX_INFO << "Updating function info channel " << stateIdentifier;
122 
123  }
124  catch (...)
125  {
127  }
128 }
129 
130 void armarx::ProfilerObserver::reportProcessCpuUsage(const ProfilerProcessCpuUsage& process, const Ice::Current&)
131 {
132  std::string id = process.processName + std::to_string(process.processId);
133 
134  try
135  {
136  createResourceChannelIfRequired(id);
137 
138  setDataField(id, "cpuUsage", Variant(process.cpuUsage));
139  updateChannel(id);
140  }
141  catch (...)
142  {
144  }
145 }
146 
147 void armarx::ProfilerObserver::reportProcessMemoryUsage(const ProfilerProcessMemoryUsage& memoryUsage, const Ice::Current&)
148 {
149  std::string id = memoryUsage.processName + std::to_string(memoryUsage.processId);
150 
151  try
152  {
153  createResourceChannelIfRequired(id);
154 
155  setDataField(id, "memoryUsage", Variant(memoryUsage.memoryUsage));
156  updateChannel(id);
157  }
158  catch (...)
159  {
161  }
162 }
163 
164 
165 
166 void armarx::ProfilerObserver::reportStatechartTransition(const ProfilerStatechartTransition& transition, const Ice::Current&)
167 {
168  try
169  {
170  Variant activeSubstate(transition.targetStateIdentifier);
171  setDataField("activeStateChanged", "activeState", activeSubstate);
172  updateChannel("activeStateChanged");
173 
174  std::string stateIdentifier = transition.parentStateIdentifier;
175  createStateChannelIfRequired(stateIdentifier);
176 
177  setDataField(stateIdentifier, "activeSubstate", activeSubstate);
178  setDataField(stateIdentifier, "previousSubstate", Variant(transition.sourceStateIdentifier));
179  setDataField(stateIdentifier, "lastEventName", Variant(transition.eventName));
180  updateChannel(stateIdentifier);
181  ARMARX_INFO << "Updating Transition info channel " << stateIdentifier;
182  }
183  catch (...)
184  {
186  }
187 }
188 
189 
190 void armarx::ProfilerObserver::StateParameterToVariantMap(const armarx::StateParameterMap& parameterMap, armarx::StringValueMap& variantMap)
191 {
192  for (auto& entry : parameterMap)
193  {
194  variantMap.addElement(entry.first, entry.second->value);
195  }
196 }
197 
198 
199 void armarx::ProfilerObserver::reportStatechartInputParameters(const ProfilerStatechartParameters& inputParameters, const Ice::Current&)
200 {
201  try
202  {
203  createStateChannelIfRequired(inputParameters.stateIdentifier);
204 
205  StringValueMap parameters(false);
206  StateParameterToVariantMap(inputParameters.parameterMap, parameters);
207  setDataField(inputParameters.stateIdentifier, "inputParameters", parameters);
208 
209  updateChannel(inputParameters.stateIdentifier);
210  }
211  catch (...)
212  {
214  }
215 }
216 
217 
218 void armarx::ProfilerObserver::reportStatechartLocalParameters(const ProfilerStatechartParameters& localParameters, const Ice::Current&)
219 {
220  try
221  {
222  createStateChannelIfRequired(localParameters.stateIdentifier);
223 
224  StringValueMap parameters(false);
225  StateParameterToVariantMap(localParameters.parameterMap, parameters);
226  setDataField(localParameters.stateIdentifier, "localParameters", parameters);
227 
228  updateChannel(localParameters.stateIdentifier);
229  }
230  catch (...)
231  {
233  }
234 }
235 
236 void armarx::ProfilerObserver::reportStatechartOutputParameters(const ProfilerStatechartParameters& outputParameters, const Ice::Current&)
237 {
238  try
239  {
240  createStateChannelIfRequired(outputParameters.stateIdentifier);
241 
242  StringValueMap parameters(false);
243  StateParameterToVariantMap(outputParameters.parameterMap, parameters);
244  setDataField(outputParameters.stateIdentifier, "outputParameters", parameters);
245  updateChannel(outputParameters.stateIdentifier);
246  }
247  catch (...)
248  {
250  }
251 }
252 
254  const armarx::ProfilerStatechartTransitionWithParameters& outputParameters, const Ice::Current&)
255 {
256  // ignore this in the observer
257 }
258 
259 
260 
261 void armarx::ProfilerObserver::createStateChannelIfRequired(const std::string& channelName)
262 {
263  std::unique_lock lock(channelCheckMutex);
264  if (existsChannel(channelName))
265  {
266  return;
267  }
268 
269  offerChannel(channelName, "Statechart State Channel");
270 
271  offerDataField(channelName, "activeSubstate", VariantType::String, "Currently Active Substate");
272  offerDataField(channelName, "previousSubstate", VariantType::String, "Last Active Substate");
273  offerDataField(channelName, "lastEventName", VariantType::String, "Last Event/Transition Name");
274  offerDataField(channelName, "inputParameters", VariantType::VariantContainer, "State Input Parameters");
275  offerDataField(channelName, "localParameters", VariantType::VariantContainer, "State Local Parameters");
276  offerDataField(channelName, "outputParameters", VariantType::VariantContainer, "State Output Parameters");
277  offerDataField(channelName, "lastEnterTimestamp", VariantType::Timestamp, "Timestamp of when onEnter() of the state was last called");
278  offerDataField(channelName, "lastExitTimestamp", VariantType::Timestamp, "Timestamp of when onExit() or onBreak() of the state was last called");
279 }
280 
281 
282 void armarx::ProfilerObserver::createResourceChannelIfRequired(const std::string& channelName)
283 {
284  std::unique_lock lock(channelCheckMutex);
285  if (existsChannel(channelName))
286  {
287  return;
288  }
289 
290  offerChannel(channelName, "Resource Information");
291 
292  offerDataField(channelName, "cpuUsage", VariantType::Float, "Cpu Usage of process specified by the channelname");
293  offerDataField(channelName, "memoryUsage", VariantType::Int, "Memory Usage of process specified by the channelname");
294 }
295 
296 
297 
298 
299 
300 void armarx::ProfilerObserver::reportEventList(const armarx::ProfilerEventList& events, const Ice::Current&)
301 {
302  // ignore these events in the observer
303 }
304 
305 void armarx::ProfilerObserver::reportStatechartTransitionList(const armarx::ProfilerStatechartTransitionList& transitions, const Ice::Current&)
306 {
307  armarx::ProfilerStatechartTransition lastTransition = transitions.back();
308  setDataField("activeStateChanged", "activeState", Variant(lastTransition.targetStateIdentifier));
309  updateChannel("activeStateChanged");
310 }
311 
312 void armarx::ProfilerObserver::reportStatechartInputParametersList(const ProfilerStatechartParametersList& inputParametersList, const Ice::Current&)
313 {
314  // remove all but the latest occurence of an entry in the list of profiler entries
315  auto compareFunction = [](const ProfilerStatechartParameters & lhs, const ProfilerStatechartParameters & rhs)
316  {
317  return lhs.stateIdentifier < rhs.stateIdentifier;
318  };
319  std::set<ProfilerStatechartParameters, decltype(compareFunction)> latestElements(inputParametersList.rbegin(), inputParametersList.rend(), compareFunction);
320 
321  for (const auto& element : latestElements)
322  {
323  reportStatechartInputParameters(element);
324  }
325 }
326 
327 void armarx::ProfilerObserver::reportStatechartLocalParametersList(const ProfilerStatechartParametersList& localParametersList, const Ice::Current&)
328 {
329  // remove all but the latest occurence of an entry in the list of profiler entries
330  auto compareFunction = [](const ProfilerStatechartParameters & lhs, const ProfilerStatechartParameters & rhs)
331  {
332  return lhs.stateIdentifier < rhs.stateIdentifier;
333  };
334  std::set<ProfilerStatechartParameters, decltype(compareFunction)> latestElements(localParametersList.rbegin(), localParametersList.rend(), compareFunction);
335 
336  for (const auto& element : latestElements)
337  {
338  reportStatechartLocalParameters(element);
339  }
340 }
341 
342 void armarx::ProfilerObserver::reportStatechartOutputParametersList(const ProfilerStatechartParametersList& outputParametersList, const Ice::Current&)
343 {
344  // remove all but the latest occurence of an entry in the list of profiler entries
345  auto compareFunction = [](const ProfilerStatechartParameters & lhs, const ProfilerStatechartParameters & rhs)
346  {
347  return lhs.stateIdentifier < rhs.stateIdentifier;
348  };
349  std::set<ProfilerStatechartParameters, decltype(compareFunction)> latestElements(outputParametersList.rbegin(), outputParametersList.rend(), compareFunction);
350 
351  for (const auto& element : latestElements)
352  {
353  reportStatechartOutputParameters(element);
354  }
355 }
356 
358  const armarx::ProfilerStatechartTransitionWithParametersList& outputParameters, const Ice::Current&)
359 {
360  // ignore this in the observer
361 }
362 
363 void armarx::ProfilerObserver::reportProcessCpuUsageList(const ProfilerProcessCpuUsageList& processes, const Ice::Current&)
364 {
365  // remove all but the latest occurence of an entry in the list of profiler entries
366  auto compareFunction = [](const ProfilerProcessCpuUsage & lhs, const ProfilerProcessCpuUsage & rhs)
367  {
368  return lhs.processId < rhs.processId;
369  };
370  std::set<ProfilerProcessCpuUsage, decltype(compareFunction)> latestElements(processes.rbegin(), processes.rend(), compareFunction);
371 
372  for (const auto& element : latestElements)
373  {
374  reportProcessCpuUsage(element);
375  }
376 }
377 
378 void armarx::ProfilerObserver::reportProcessMemoryUsageList(const ProfilerProcessMemoryUsageList& memoryUsages, const Ice::Current&)
379 {
380  // remove all but the latest occurence of an entry in the list of profiler entries
381  auto compareFunction = [](const ProfilerProcessMemoryUsage & lhs, const ProfilerProcessMemoryUsage & rhs)
382  {
383  return lhs.processId < rhs.processId;
384  };
385  std::set<ProfilerProcessMemoryUsage, decltype(compareFunction)> latestElements(memoryUsages.rbegin(), memoryUsages.rend(), compareFunction);
386 
387  for (const auto& element : latestElements)
388  {
389  reportProcessMemoryUsage(element);
390  }
391 }
ConditionCheckChanged.h
armarx::Variant
The Variant class is described here: Variants.
Definition: Variant.h:224
armarx::VariantType::Float
const VariantTypeId Float
Definition: Variant.h:918
armarx::ProfilerObserver::reportEventList
void reportEventList(const ProfilerEventList &events, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:300
armarx::ProfilerObserver::reportStatechartTransitionWithParametersList
void reportStatechartTransitionWithParametersList(const ProfilerStatechartTransitionWithParametersList &outputParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:357
armarx::ProfilerObserver::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: ProfilerObserver.cpp:44
ConditionCheckEquals.h
armarx::ProfilerObserver::onInitObserver
void onInitObserver() override
Framework hook.
Definition: ProfilerObserver.cpp:50
armarx::VariantType::VariantContainer
const VariantTypeId VariantContainer
Definition: VariantContainer.h:41
armarx::TimestampVariant
Definition: TimestampVariant.h:54
armarx::ProfilerObserver::reportStatechartInputParameters
void reportStatechartInputParameters(const ProfilerStatechartParameters &inputParametes, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:199
armarx::ProfilerObserver::reportProcessMemoryUsageList
void reportProcessMemoryUsageList(const ProfilerProcessMemoryUsageList &memoryUsages, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:378
armarx::ProfilerObserver::reportStatechartLocalParametersList
void reportStatechartLocalParametersList(const ProfilerStatechartParametersList &localParametersList, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:327
armarx::Profiler::Profiler::eFunctionStart
@ eFunctionStart
Definition: Profiler.h:96
armarx::Profiler::Profiler::GetEventName
static std::string GetEventName(Profiler::EventType eventType)
getEventName maps enum values from armarx::Profiler::Profiler::EventType to strings
Definition: Profiler.cpp:31
IceInternal::Handle< Variant >
armarx::ConditionCheckChanged
Definition: ConditionCheckChanged.h:41
armarx::ProfilerObserver::reportStatechartInputParametersList
void reportStatechartInputParametersList(const ProfilerStatechartParametersList &inputParametersList, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:312
armarx::ConditionCheckUpdated
Definition: ConditionCheckUpdated.h:41
armarx::statechartmodel::StateParameterMap
QMap< QString, StateParameterPtr > StateParameterMap
Definition: StateParameter.h:46
armarx::ProfilerObserver::~ProfilerObserver
~ProfilerObserver() override
Definition: ProfilerObserver.cpp:40
armarx::ProfilerObserver::reportStatechartLocalParameters
void reportStatechartLocalParameters(const ProfilerStatechartParameters &localParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:218
armarx::StringValueMap::addElement
void addElement(const std::string &key, const VariantContainerBasePtr &variantContainer, const Ice::Current &c=Ice::emptyCurrent) override
Definition: StringValueMap.cpp:92
armarx::ProfilerObserver::onConnectObserver
void onConnectObserver() override
Framework hook.
Definition: ProfilerObserver.cpp:56
armarx::VariantType::Timestamp
const VariantTypeId Timestamp
Definition: TimestampVariant.h:38
armarx::to_string
const std::string & to_string(const std::string &s)
Definition: StringHelpers.h:40
armarx::ProfilerObserver::reportStatechartTransition
void reportStatechartTransition(const ProfilerStatechartTransition &transition, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:166
armarx::ProfilerObserver::reportProcessCpuUsageList
void reportProcessCpuUsageList(const ProfilerProcessCpuUsageList &processes, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:363
armarx::ProfilerObserver::reportProcessCpuUsage
void reportProcessCpuUsage(const ProfilerProcessCpuUsage &process, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:130
armarx::ProfilerObserver::reportNetworkTraffic
void reportNetworkTraffic(const std::string &id, const std::string &protocol, Ice::Int inBytes, Ice::Int outBytes, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:69
Profiler.h
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:174
armarx::ProfilerObserver::reportStatechartTransitionList
void reportStatechartTransitionList(const ProfilerStatechartTransitionList &transitions, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:305
set
set(LIBS ArmarXCoreInterfaces ${CMAKE_THREAD_LIBS_INIT} ${dl_LIBRARIES} ${rt_LIBRARIES} ${QT_LIBRARIES} ${Boost_LIBRARIES} BoostAssertionHandler ArmarXCPPUtility SimoxUtility) set(LIB_FILES ArmarXManager.cpp ArmarXMultipleObjectsScheduler.cpp ArmarXObjectScheduler.cpp ManagedIceObject.cpp ManagedIceObjectPlugin.cpp Component.cpp ComponentPlugin.cpp IceGridAdmin.cpp ArmarXObjectObserver.cpp IceManager.cpp PackagePath.cpp RemoteReferenceCount.cpp logging/LoggingUtil.cpp logging/Logging.cpp logging/LogSender.cpp logging/ArmarXLogBuf.cpp system/ArmarXDataPath.cpp system/DynamicLibrary.cpp system/ProcessWatcher.cpp system/FactoryCollectionBase.cpp system/cmake/CMakePackageFinder.cpp system/cmake/CMakePackageFinderCache.cpp system/cmake/ArmarXPackageToolInterface.cpp system/RemoteObjectNode.cpp services/sharedmemory/HardwareId.cpp services/tasks/RunningTask.cpp services/tasks/ThreadList.cpp services/tasks/ThreadPool.cpp services/profiler/Profiler.cpp services/profiler/FileLoggingStrategy.cpp services/profiler/IceLoggingStrategy.cpp application/Application.cpp application/ApplicationOptions.cpp application/ApplicationProcessFacet.cpp application/ApplicationNetworkStats.cpp application/properties/PropertyUser.cpp application/properties/Property.cpp application/properties/PropertyDefinition.cpp application/properties/PropertyDefinitionContainer.cpp application/properties/PropertyDefinitionHelpFormatter.cpp application/properties/PropertyDefinitionConfigFormatter.cpp application/properties/PropertyDefinitionBriefHelpFormatter.cpp application/properties/PropertyDefinitionXmlFormatter.cpp application/properties/PropertyDefinitionDoxygenFormatter.cpp application/properties/PropertyDefinitionDoxygenComponentPagesFormatter.cpp application/properties/PropertyDefinitionContainerBriefHelpFormatter.cpp application/properties/IceProperties.cpp exceptions/Exception.cpp exceptions/local/UnexpectedEnumValueException.cpp util/FileSystemPathBuilder.cpp util/StringHelpers.cpp util/IceReportSkipper.cpp util/Throttler.cpp util/distributed/AMDCallbackCollection.cpp util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.cpp util/distributed/RemoteHandle/RemoteHandle.cpp util/distributed/RemoteHandle/RemoteHandleControlBlock.cpp time/ice_conversions.cpp time/json_conversions.cpp time/CallbackWaitLock.cpp time/Clock.cpp time/ClockType.cpp time/ClockTypeNames.cpp time/CycleUtil.cpp time/DateTime.cpp time/Duration.cpp time/Frequency.cpp time/LocalTimeServer.cpp time/Metronome.cpp time/ScopedStopWatch.cpp time/StopWatch.cpp time/Timer.cpp time/TimeKeeper.cpp time/TimeUtil.cpp csv/CsvWriter.cpp csv/CsvReader.cpp eigen/conversions.cpp eigen/ice_conversions.cpp) set(LIB_HEADERS ArmarXManager.h ArmarXDummyManager.h ArmarXMultipleObjectsScheduler.h ArmarXObjectObserver.h ArmarXObjectScheduler.h ArmarXFwd.h Component.h ComponentPlugin.h ComponentFactories.h CoreObjectFactories.h IceGridAdmin.h IceManager.h IceManagerImpl.h json_conversions.h ManagedIceObject.h ManagedIceObjectPlugin.h ManagedIceObjectImpl.h ManagedIceObjectDependency.h ManagedIceObjectRegistryInterface.h PackagePath.h RemoteReferenceCount.h system/ImportExport.h system/ImportExportComponent.h system/AbstractFactoryMethod.h system/FactoryCollectionBase.h system/Synchronization.h system/ArmarXDataPath.h system/DynamicLibrary.h system/ProcessWatcher.h system/ConditionSynchronization.h system/cmake/CMakePackageFinder.h system/cmake/CMakePackageFinderCache.h system/cmake/FindPackageX.cmake system/cmake/ArmarXPackageToolInterface.h system/RemoteObjectNode.h logging/LoggingUtil.h logging/LogSender.h logging/Logging.h logging/ArmarXLogBuf.h logging/SpamFilterData.h services/tasks/RunningTask.h services/tasks/PeriodicTask.h services/tasks/ThreadList.h services/tasks/TaskUtil.h services/tasks/ThreadPool.h services/sharedmemory/SharedMemoryProvider.h services/sharedmemory/SharedMemoryConsumer.h services/sharedmemory/IceSharedMemoryProvider.h services/sharedmemory/IceSharedMemoryConsumer.h services/sharedmemory/HardwareIdentifierProvider.h services/sharedmemory/HardwareId.h services/sharedmemory/exceptions/SharedMemoryExceptions.h services/profiler/Profiler.h services/profiler/LoggingStrategy.h services/profiler/FileLoggingStrategy.h services/profiler/IceLoggingStrategy.h application/Application.h application/ApplicationOptions.h application/ApplicationProcessFacet.h application/ApplicationNetworkStats.h application/properties/forward_declarations.h application/properties/Properties.h application/properties/Property.h application/properties/PluginEigen.h application/properties/PluginEnumNames.h application/properties/PluginCfgStruct.h application/properties/PluginAll.h application/properties/PropertyUser.h application/properties/PropertyDefinition.h application/properties/PropertyDefinition.hpp application/properties/PropertyDefinitionInterface.h application/properties/PropertyDefinitionContainer.h application/properties/PropertyDefinitionFormatter.h application/properties/PropertyDefinitionContainerFormatter.h application/properties/PropertyDefinitionConfigFormatter.h application/properties/PropertyDefinitionHelpFormatter.h application/properties/PropertyDefinitionBriefHelpFormatter.h application/properties/PropertyDefinitionXmlFormatter.h application/properties/PropertyDefinitionDoxygenFormatter.h application/properties/PropertyDefinitionDoxygenComponentPagesFormatter.h application/properties/PropertyDefinitionContainerBriefHelpFormatter.h application/properties/ProxyPropertyDefinition.h application/properties/IceProperties.h exceptions/Exception.h exceptions/LocalException.h exceptions/local/DynamicLibraryException.h exceptions/local/ExpressionException.h exceptions/local/FileIOException.h exceptions/local/InvalidPropertyValueException.h exceptions/local/MissingRequiredPropertyException.h exceptions/local/PropertyInheritanceCycleException.h exceptions/local/ProxyNotInitializedException.h exceptions/local/UnexpectedEnumValueException.h exceptions/local/UnmappedValueException.h exceptions/local/ValueRangeExceededException.h exceptions/user/NotImplementedYetException.h rapidxml/rapidxml.hpp rapidxml/rapidxml_print.hpp rapidxml/rapidxml_iterators.hpp rapidxml/rapidxml_utils.hpp rapidxml/wrapper/RapidXmlReader.h rapidxml/wrapper/RapidXmlWriter.h rapidxml/wrapper/DefaultRapidXmlReader.h rapidxml/wrapper/MultiNodeRapidXMLReader.h util/IceBlobToObject.h util/ObjectToIceBlob.h util/FileSystemPathBuilder.h util/FiniteStateMachine.h util/StringHelpers.h util/StringHelperTemplates.h util/algorithm.h util/OnScopeExit.h util/Predicates.h util/Preprocessor.h util/PropagateConst.h util/Registrar.h util/TemplateMetaProgramming.h util/TripleBuffer.h util/IceReportSkipper.h util/Throttler.h util/distributed/AMDCallbackCollection.h util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.h util/distributed/RemoteHandle/RemoteHandle.h util/distributed/RemoteHandle/RemoteHandleControlBlock.h util/SimpleStatemachine.h time.h time_minimal.h time/forward_declarations.h time/ice_conversions.h time/json_conversions.h time/CallbackWaitLock.h time/Clock.h time/ClockType.h time/ClockTypeNames.h time/CycleUtil.h time/DateTime.h time/Duration.h time/Frequency.h time/LocalTimeServer.h time/Metronome.h time/ScopedStopWatch.h time/StopWatch.h time/Timer.h time/TimeUtil.h time/TimeKeeper.h csv/CsvWriter.h csv/CsvReader.h eigen/conversions.h eigen/ice_conversions.h ice_conversions.h ice_conversions/ice_conversions_boost_templates.h ice_conversions/ice_conversions_templates.h ice_conversions/ice_conversions_templates.tpp $
Definition: CMakeLists.txt:12
ProfilerObserver.h
armarx::VariantType::Int
const VariantTypeId Int
Definition: Variant.h:916
armarx::ConditionCheckEquals
Definition: ConditionCheckEquals.h:46
armarx::ProfilerObserver::reportStatechartOutputParameters
void reportStatechartOutputParameters(const ProfilerStatechartParameters &outputParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:236
armarx::handleExceptions
void handleExceptions()
Definition: Exception.cpp:141
armarx::VariantType::String
const VariantTypeId String
Definition: Variant.h:920
armarx::ProfilerObserver::reportProcessMemoryUsage
void reportProcessMemoryUsage(const ProfilerProcessMemoryUsage &memoryUsage, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:147
armarx::ProfilerObserver::reportStatechartOutputParametersList
void reportStatechartOutputParametersList(const ProfilerStatechartParametersList &outputParametersList, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:342
ConditionCheckValid.h
armarx::ConditionCheckValid
Definition: ConditionCheckValid.h:40
armarx::StringValueMap
The StringValueMap class is a subclass of VariantContainer and is comparable to a std::map<std::strin...
Definition: StringValueMap.h:49
armarx::ProfilerObserver::reportEvent
void reportEvent(const ProfilerEvent &event, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:88
armarx::DataFieldIdentifier
DataFieldIdentifier provide the basis to identify data field within a distributed ArmarX scenario.
Definition: DataFieldIdentifier.h:48
armarx::ProfilerObserver::reportStatechartTransitionWithParameters
void reportStatechartTransitionWithParameters(const ProfilerStatechartTransitionWithParameters &outputParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:253
ConditionCheckUpdated.h