GraspCandidateObserverComponentPlugin.cpp
Go to the documentation of this file.
2
3#include <SimoxUtility/algorithm/string/string_tools.h>
4
6
7namespace armarx
8{
9 namespace plugins
10 {
11
12 void
14 {
15 parent<Component>().usingProxyFromProperty(PROPERTY_NAME);
16 if (!_graspCandidateObserver && _graspCandidateObserverName.empty())
17 {
18 parent<Component>().getProperty(_graspCandidateObserverName,
19 makePropertyName(PROPERTY_NAME));
20 }
21
22 if (!_graspCandidateObserver)
23 {
24 parent<Component>().usingProxy(_graspCandidateObserverName);
25 }
26 }
27
28 void
30 {
31 if (!_graspCandidateObserver)
32 {
33 parent<Component>().getProxy(_graspCandidateObserver, _graspCandidateObserverName);
34 }
35 }
36
37 void
39 {
40 _graspCandidateObserver = nullptr;
41 }
42
43 void
46 {
47 if (!properties->hasDefinition(PROPERTY_NAME))
48 {
49 properties->defineOptionalProperty<std::string>(
50 PROPERTY_NAME, "GraspCandidateObserver", "Name of the GraspCandidateObserver");
51 }
52 }
53
54 grasping::GraspCandidateObserverInterfacePrx
56 {
57 return _graspCandidateObserver;
58 }
59
60 const std::string&
62 {
63 return _graspCandidateObserverName;
64 }
65
66 grasping::GraspCandidateSeq
68 {
69 if (_graspCandidateObserver)
70 {
71 return _graspCandidateObserver->getAllCandidates();
72 }
73 return {};
74 }
75
76 grasping::GraspCandidateSeq
78 {
79 if (!_graspCandidateObserver)
80 {
81 return {};
82 }
83 if (_upstream_providers.empty())
84 {
85 return _graspCandidateObserver->getAllCandidates();
86 }
87 return _graspCandidateObserver->getCandidatesByProviders(_upstream_providers);
88 }
89
90 void
92 std::vector<std::string> pr)
93 {
94 _upstream_providers = std::move(pr);
95 }
96
97 void
99 const std::string& csv,
100 const std::string& delim)
101 {
102 setUpstreamGraspCandidateProviders(simox::alg::split(csv, delim));
103 }
104
105 void
107 const std::string& name)
108 {
109 _graspCandidateObserverName = name;
110 }
111 } // namespace plugins
112} // namespace armarx
113
114namespace armarx
115{
120
121 grasping::GraspCandidateObserverInterfacePrx
123 {
124 return plugin->getGraspCandidateObserver();
125 }
126
133
140
141 grasping::GraspCandidateSeq
146
147 grasping::GraspCandidateSeq
152} // namespace armarx
grasping::GraspCandidateObserverInterfacePrx getGraspCandidateObserver()
armarx::plugins::GraspCandidateObserverComponentPlugin & getGraspCandidateObserverComponentPlugin()
std::string makePropertyName(const std::string &name)
bool usingProxy(const std::string &name, const std::string &endpoints="")
Registers a proxy for retrieval after initialization and adds it to the dependency list.
PluginT * addPlugin(const std::string prefix="", ParamsT &&... params)
Ice::ObjectPrx getProxy(long timeoutMs=0, bool waitForScheduler=true) const
Returns the proxy of this object (optionally it waits for the proxy)
void setUpstreamGraspCandidateProvidersFromCSV(const std::string &csv, const std::string &delim=",;")
void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties) override
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
This file is part of ArmarX.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.