ManagedIceObjectImpl.h
Go to the documentation of this file.
1#pragma once
2
3#include <condition_variable>
4#include <mutex>
5#include <string>
6
7#include "ManagedIceObject.h"
8
9namespace armarx
10{
12 {
13 /**
14 * Name of object. Corresponds to name of Ice well-known object.
15 */
16 std::string name;
17
18 /**
19 * Component manager instance. The manager can be used to add and remove
20 * components dynamically.
21 */
23
24 /**
25 * The Ice manager used for adapter registration, proxy retrieval topic
26 * and session management.
27 */
29
30 /**
31 * The Ice manager used for adapter registration, proxy retrieval topic
32 * and session management.
33 */
35
36 /**
37 * State of the ManagedIceObject.
38 */
39 ManagedIceObjectState objectState;
40 std::mutex objectStateMutex;
41
42 /**
43 * Proxy of this object needed for storm topic subscriptions.
44 */
45 Ice::ObjectPrx proxy;
46
47 /**
48 * Component object adapter.
49 */
51
52 /**
53 * connectivity.
54 */
55 ManagedIceObjectConnectivity connectivity;
56 std::map<std::string, bool> orderedTopicPublishing;
57
58 /**
59 * Mutex for connectivity.
60 */
62
63 /**
64 * @brief startedCondition is used to signal waiting threads, that
65 * this object is started (i.e. onConnectComponent() was called)
66 *
67 * @see onConnectComponent(), waitForObjectStart()
68 */
69 std::condition_variable stateCondition;
70
71 /**
72 * Holds an instance of armarx::Profiler wich can be accessed via ManagedIceObject::getProfiler().
73 * Enable or disable the profiler via ManagedIceObject::enable().
74 */
76
77 /**
78 * @brief enableProfilerFunction is used to defer the creation of the IceLoggingStrategy topic proxy
79 *
80 * This function pointer normally executes MangedIceObject::Noop() and is called in ManagedIceObject::init() after the IceManager is set.
81 *
82 * In case ManagedIceObject::enableProfiler() is called before ManagedIceObject::init() the creation of the the IceLoggingStrategy
83 * is put into this function object and executed when Ice is available.
84 */
86
87 std::mutex metaInfoMapMutex;
89
90 std::map<std::string, PeriodicTaskPtr> periodicTasks;
91 };
92} // namespace armarx
ManagedIceObject(ManagedIceObject const &other)
::IceInternal::Handle<::Ice::ObjectAdapter > ObjectAdapterPtr
Definition IceManager.h:52
std::shared_ptr< Profiler > ProfilerPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< ArmarXManager > ArmarXManagerPtr
std::map< std::string, VariantBasePtr > StringVariantBaseMap
IceUtil::Handle< ArmarXObjectScheduler > ArmarXObjectSchedulerPtr
Definition ArmarXFwd.h:33
IceUtil::Handle< IceManager > IceManagerPtr
IceManager smart pointer.
Definition ArmarXFwd.h:39
Ice::ObjectPrx proxy
Proxy of this object needed for storm topic subscriptions.
std::condition_variable stateCondition
startedCondition is used to signal waiting threads, that this object is started (i....
void(* enableProfilerFunction)(ManagedIceObject *object)
enableProfilerFunction is used to defer the creation of the IceLoggingStrategy topic proxy
IceManagerPtr iceManager
The Ice manager used for adapter registration, proxy retrieval topic and session management.
std::map< std::string, PeriodicTaskPtr > periodicTasks
ManagedIceObjectState objectState
State of the ManagedIceObject.
Profiler::ProfilerPtr profiler
Holds an instance of armarx::Profiler wich can be accessed via ManagedIceObject::getProfiler().
std::string name
Name of object.
Ice::ObjectAdapterPtr objectAdapter
Component object adapter.
ManagedIceObjectConnectivity connectivity
connectivity.
std::map< std::string, bool > orderedTopicPublishing
std::mutex connectivityMutex
Mutex for connectivity.
ArmarXManagerPtr armarXManager
Component manager instance.
ArmarXObjectSchedulerPtr objectScheduler
The Ice manager used for adapter registration, proxy retrieval topic and session management.