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 
27 #include <algorithm>
28 #include <set>
29 
30 #include <ArmarXCore/core/services/profiler/Profiler.h> // for ProfilerPtr
31 
32 #include "../observers/variant/TimestampVariant.h"
37 
39 {
40 }
41 
42 std::string
44 {
45  return "ProfilerObserver";
46 }
47 
48 void
50 {
51  usingTopic(armarx::Profiler::PROFILER_TOPIC_NAME);
52 }
53 
54 void
56 {
57  offerChannel("activeStateChanged",
58  "Channel reporting the currently active state of statecharts with EnableProfiling "
59  "property set");
60  offerDataField("activeStateChanged",
61  "activeState",
63  "Name of the currently active state");
64  offerConditionCheck(checks::equals, new ConditionCheckEquals());
65  offerConditionCheck(checks::updated, new ConditionCheckUpdated());
66  offerConditionCheck(checks::changed, new ConditionCheckChanged());
67  offerConditionCheck(checks::valid, new ConditionCheckValid());
68 
69  setDataField("activeStateChanged", "activeState", "");
70 }
71 
72 void
74  const std::string& protocol,
75  Ice::Int inBytes,
76  Ice::Int outBytes,
77  const Ice::Current&)
78 {
79  try
80  {
81  if (!existsChannel(id))
82  {
83  offerChannel(id, "Network traffic");
84  }
85 
86  offerOrUpdateDataField(
87  id, protocol + "_inBytes", Variant(inBytes), "Incoming network traffic");
88  offerOrUpdateDataField(
89  id, protocol + "_outBytes", Variant(outBytes), "Outgoing network traffic");
90  updateChannel(id);
91  }
92  catch (...)
93  {
95  }
96 }
97 
98 void
99 armarx::ProfilerObserver::reportEvent(const armarx::ProfilerEvent& event, const Ice::Current&)
100 {
101  std::string stateIdentifier = event.parentName;
102  try
103  {
104  createStateChannelIfRequired(stateIdentifier);
105 
106  int microsecondsModifier = 0;
107  if (event.timestampUnit == "ms")
108  {
109  microsecondsModifier = 1000;
110  }
111  else if (event.timestampUnit == "us")
112  {
113  microsecondsModifier = 1;
114  }
115 
116  TimestampVariant timestamp(event.timestamp * microsecondsModifier);
117  if (event.functionName ==
119  {
120  setDataField(stateIdentifier, "lastEnterTimestamp", timestamp);
121  }
122  else
123  {
124  VariantPtr lastActiveState = VariantPtr::dynamicCast(getDataField(
125  new DataFieldIdentifier(getName(), stateIdentifier, "activeSubstate")));
126  setDataField(stateIdentifier, "lastExitTimestamp", timestamp);
127  setDataField(stateIdentifier, "activeSubstate", Variant(""));
128  if (lastActiveState)
129  {
130  setDataFieldFlatCopy(stateIdentifier, "previousSubstate", lastActiveState);
131  }
132  }
133  updateChannel(stateIdentifier);
134  ARMARX_INFO << "Updating function info channel " << stateIdentifier;
135  }
136  catch (...)
137  {
139  }
140 }
141 
142 void
143 armarx::ProfilerObserver::reportProcessCpuUsage(const ProfilerProcessCpuUsage& process,
144  const Ice::Current&)
145 {
146  std::string id = process.processName + std::to_string(process.processId);
147 
148  try
149  {
150  createResourceChannelIfRequired(id);
151 
152  setDataField(id, "cpuUsage", Variant(process.cpuUsage));
153  updateChannel(id);
154  }
155  catch (...)
156  {
158  }
159 }
160 
161 void
162 armarx::ProfilerObserver::reportProcessMemoryUsage(const ProfilerProcessMemoryUsage& memoryUsage,
163  const Ice::Current&)
164 {
165  std::string id = memoryUsage.processName + std::to_string(memoryUsage.processId);
166 
167  try
168  {
169  createResourceChannelIfRequired(id);
170 
171  setDataField(id, "memoryUsage", Variant(memoryUsage.memoryUsage));
172  updateChannel(id);
173  }
174  catch (...)
175  {
177  }
178 }
179 
180 void
181 armarx::ProfilerObserver::reportStatechartTransition(const ProfilerStatechartTransition& transition,
182  const Ice::Current&)
183 {
184  try
185  {
186  Variant activeSubstate(transition.targetStateIdentifier);
187  setDataField("activeStateChanged", "activeState", activeSubstate);
188  updateChannel("activeStateChanged");
189 
190  std::string stateIdentifier = transition.parentStateIdentifier;
191  createStateChannelIfRequired(stateIdentifier);
192 
193  setDataField(stateIdentifier, "activeSubstate", activeSubstate);
194  setDataField(
195  stateIdentifier, "previousSubstate", Variant(transition.sourceStateIdentifier));
196  setDataField(stateIdentifier, "lastEventName", Variant(transition.eventName));
197  updateChannel(stateIdentifier);
198  ARMARX_INFO << "Updating Transition info channel " << stateIdentifier;
199  }
200  catch (...)
201  {
203  }
204 }
205 
206 void
207 armarx::ProfilerObserver::StateParameterToVariantMap(const armarx::StateParameterMap& parameterMap,
208  armarx::StringValueMap& variantMap)
209 {
210  for (auto& entry : parameterMap)
211  {
212  variantMap.addElement(entry.first, entry.second->value);
213  }
214 }
215 
216 void
218  const ProfilerStatechartParameters& inputParameters,
219  const Ice::Current&)
220 {
221  try
222  {
223  createStateChannelIfRequired(inputParameters.stateIdentifier);
224 
225  StringValueMap parameters(false);
226  StateParameterToVariantMap(inputParameters.parameterMap, parameters);
227  setDataField(inputParameters.stateIdentifier, "inputParameters", parameters);
228 
229  updateChannel(inputParameters.stateIdentifier);
230  }
231  catch (...)
232  {
234  }
235 }
236 
237 void
239  const ProfilerStatechartParameters& localParameters,
240  const Ice::Current&)
241 {
242  try
243  {
244  createStateChannelIfRequired(localParameters.stateIdentifier);
245 
246  StringValueMap parameters(false);
247  StateParameterToVariantMap(localParameters.parameterMap, parameters);
248  setDataField(localParameters.stateIdentifier, "localParameters", parameters);
249 
250  updateChannel(localParameters.stateIdentifier);
251  }
252  catch (...)
253  {
255  }
256 }
257 
258 void
260  const ProfilerStatechartParameters& outputParameters,
261  const Ice::Current&)
262 {
263  try
264  {
265  createStateChannelIfRequired(outputParameters.stateIdentifier);
266 
267  StringValueMap parameters(false);
268  StateParameterToVariantMap(outputParameters.parameterMap, parameters);
269  setDataField(outputParameters.stateIdentifier, "outputParameters", parameters);
270  updateChannel(outputParameters.stateIdentifier);
271  }
272  catch (...)
273  {
275  }
276 }
277 
278 void
280  const armarx::ProfilerStatechartTransitionWithParameters& outputParameters,
281  const Ice::Current&)
282 {
283  // ignore this in the observer
284 }
285 
286 void
287 armarx::ProfilerObserver::createStateChannelIfRequired(const std::string& channelName)
288 {
289  std::unique_lock lock(channelCheckMutex);
290  if (existsChannel(channelName))
291  {
292  return;
293  }
294 
295  offerChannel(channelName, "Statechart State Channel");
296 
297  offerDataField(channelName, "activeSubstate", VariantType::String, "Currently Active Substate");
298  offerDataField(channelName, "previousSubstate", VariantType::String, "Last Active Substate");
299  offerDataField(channelName, "lastEventName", VariantType::String, "Last Event/Transition Name");
300  offerDataField(
301  channelName, "inputParameters", VariantType::VariantContainer, "State Input Parameters");
302  offerDataField(
303  channelName, "localParameters", VariantType::VariantContainer, "State Local Parameters");
304  offerDataField(
305  channelName, "outputParameters", VariantType::VariantContainer, "State Output Parameters");
306  offerDataField(channelName,
307  "lastEnterTimestamp",
309  "Timestamp of when onEnter() of the state was last called");
310  offerDataField(channelName,
311  "lastExitTimestamp",
313  "Timestamp of when onExit() or onBreak() of the state was last called");
314 }
315 
316 void
317 armarx::ProfilerObserver::createResourceChannelIfRequired(const std::string& channelName)
318 {
319  std::unique_lock lock(channelCheckMutex);
320  if (existsChannel(channelName))
321  {
322  return;
323  }
324 
325  offerChannel(channelName, "Resource Information");
326 
327  offerDataField(channelName,
328  "cpuUsage",
330  "Cpu Usage of process specified by the channelname");
331  offerDataField(channelName,
332  "memoryUsage",
334  "Memory Usage of process specified by the channelname");
335 }
336 
337 void
338 armarx::ProfilerObserver::reportEventList(const armarx::ProfilerEventList& events,
339  const Ice::Current&)
340 {
341  // ignore these events in the observer
342 }
343 
344 void
346  const armarx::ProfilerStatechartTransitionList& transitions,
347  const Ice::Current&)
348 {
349  armarx::ProfilerStatechartTransition lastTransition = transitions.back();
350  setDataField(
351  "activeStateChanged", "activeState", Variant(lastTransition.targetStateIdentifier));
352  updateChannel("activeStateChanged");
353 }
354 
355 void
357  const ProfilerStatechartParametersList& inputParametersList,
358  const Ice::Current&)
359 {
360  // remove all but the latest occurence of an entry in the list of profiler entries
361  auto compareFunction =
362  [](const ProfilerStatechartParameters& lhs, const ProfilerStatechartParameters& rhs)
363  { return lhs.stateIdentifier < rhs.stateIdentifier; };
364  std::set<ProfilerStatechartParameters, decltype(compareFunction)> latestElements(
365  inputParametersList.rbegin(), inputParametersList.rend(), compareFunction);
366 
367  for (const auto& element : latestElements)
368  {
369  reportStatechartInputParameters(element);
370  }
371 }
372 
373 void
375  const ProfilerStatechartParametersList& localParametersList,
376  const Ice::Current&)
377 {
378  // remove all but the latest occurence of an entry in the list of profiler entries
379  auto compareFunction =
380  [](const ProfilerStatechartParameters& lhs, const ProfilerStatechartParameters& rhs)
381  { return lhs.stateIdentifier < rhs.stateIdentifier; };
382  std::set<ProfilerStatechartParameters, decltype(compareFunction)> latestElements(
383  localParametersList.rbegin(), localParametersList.rend(), compareFunction);
384 
385  for (const auto& element : latestElements)
386  {
387  reportStatechartLocalParameters(element);
388  }
389 }
390 
391 void
393  const ProfilerStatechartParametersList& outputParametersList,
394  const Ice::Current&)
395 {
396  // remove all but the latest occurence of an entry in the list of profiler entries
397  auto compareFunction =
398  [](const ProfilerStatechartParameters& lhs, const ProfilerStatechartParameters& rhs)
399  { return lhs.stateIdentifier < rhs.stateIdentifier; };
400  std::set<ProfilerStatechartParameters, decltype(compareFunction)> latestElements(
401  outputParametersList.rbegin(), outputParametersList.rend(), compareFunction);
402 
403  for (const auto& element : latestElements)
404  {
405  reportStatechartOutputParameters(element);
406  }
407 }
408 
409 void
411  const armarx::ProfilerStatechartTransitionWithParametersList& outputParameters,
412  const Ice::Current&)
413 {
414  // ignore this in the observer
415 }
416 
417 void
418 armarx::ProfilerObserver::reportProcessCpuUsageList(const ProfilerProcessCpuUsageList& processes,
419  const Ice::Current&)
420 {
421  // remove all but the latest occurence of an entry in the list of profiler entries
422  auto compareFunction =
423  [](const ProfilerProcessCpuUsage& lhs, const ProfilerProcessCpuUsage& rhs)
424  { return lhs.processId < rhs.processId; };
425  std::set<ProfilerProcessCpuUsage, decltype(compareFunction)> latestElements(
426  processes.rbegin(), processes.rend(), compareFunction);
427 
428  for (const auto& element : latestElements)
429  {
430  reportProcessCpuUsage(element);
431  }
432 }
433 
434 void
436  const ProfilerProcessMemoryUsageList& memoryUsages,
437  const Ice::Current&)
438 {
439  // remove all but the latest occurence of an entry in the list of profiler entries
440  auto compareFunction =
441  [](const ProfilerProcessMemoryUsage& lhs, const ProfilerProcessMemoryUsage& rhs)
442  { return lhs.processId < rhs.processId; };
443  std::set<ProfilerProcessMemoryUsage, decltype(compareFunction)> latestElements(
444  memoryUsages.rbegin(), memoryUsages.rend(), compareFunction);
445 
446  for (const auto& element : latestElements)
447  {
448  reportProcessMemoryUsage(element);
449  }
450 }
ConditionCheckChanged.h
armarx::Variant
The Variant class is described here: Variants.
Definition: Variant.h:223
armarx::VariantType::Float
const VariantTypeId Float
Definition: Variant.h:919
armarx::ProfilerObserver::reportEventList
void reportEventList(const ProfilerEventList &events, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:338
armarx::ProfilerObserver::reportStatechartTransitionWithParametersList
void reportStatechartTransitionWithParametersList(const ProfilerStatechartTransitionWithParametersList &outputParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:410
armarx::ProfilerObserver::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: ProfilerObserver.cpp:43
ConditionCheckEquals.h
armarx::ProfilerObserver::onInitObserver
void onInitObserver() override
Framework hook.
Definition: ProfilerObserver.cpp:49
armarx::VariantType::VariantContainer
const VariantTypeId VariantContainer
Definition: VariantContainer.h:40
armarx::TimestampVariant
Definition: TimestampVariant.h:54
armarx::ProfilerObserver::reportStatechartInputParameters
void reportStatechartInputParameters(const ProfilerStatechartParameters &inputParametes, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:217
armarx::ProfilerObserver::reportProcessMemoryUsageList
void reportProcessMemoryUsageList(const ProfilerProcessMemoryUsageList &memoryUsages, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:435
armarx::ProfilerObserver::reportStatechartLocalParametersList
void reportStatechartLocalParametersList(const ProfilerStatechartParametersList &localParametersList, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:374
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:33
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:356
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:38
armarx::ProfilerObserver::reportStatechartLocalParameters
void reportStatechartLocalParameters(const ProfilerStatechartParameters &localParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:238
armarx::StringValueMap::addElement
void addElement(const std::string &key, const VariantContainerBasePtr &variantContainer, const Ice::Current &c=Ice::emptyCurrent) override
Definition: StringValueMap.cpp:91
armarx::ProfilerObserver::onConnectObserver
void onConnectObserver() override
Framework hook.
Definition: ProfilerObserver.cpp:55
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:41
armarx::ProfilerObserver::reportStatechartTransition
void reportStatechartTransition(const ProfilerStatechartTransition &transition, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:181
armarx::ProfilerObserver::reportProcessCpuUsageList
void reportProcessCpuUsageList(const ProfilerProcessCpuUsageList &processes, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:418
armarx::ProfilerObserver::reportProcessCpuUsage
void reportProcessCpuUsage(const ProfilerProcessCpuUsage &process, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:143
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:73
Profiler.h
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
armarx::ProfilerObserver::reportStatechartTransitionList
void reportStatechartTransitionList(const ProfilerStatechartTransitionList &transitions, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:345
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:917
armarx::ConditionCheckEquals
Definition: ConditionCheckEquals.h:46
armarx::ProfilerObserver::reportStatechartOutputParameters
void reportStatechartOutputParameters(const ProfilerStatechartParameters &outputParameters, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:259
armarx::handleExceptions
void handleExceptions()
Definition: Exception.cpp:157
armarx::VariantType::String
const VariantTypeId String
Definition: Variant.h:921
armarx::ProfilerObserver::reportProcessMemoryUsage
void reportProcessMemoryUsage(const ProfilerProcessMemoryUsage &memoryUsage, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:162
armarx::ProfilerObserver::reportStatechartOutputParametersList
void reportStatechartOutputParametersList(const ProfilerStatechartParametersList &outputParametersList, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:392
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:47
armarx::ProfilerObserver::reportEvent
void reportEvent(const ProfilerEvent &event, const Ice::Current &=Ice::emptyCurrent) override
Definition: ProfilerObserver.cpp:99
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:279
ConditionCheckUpdated.h