ComponentPlugin.cpp
Go to the documentation of this file.
1/**
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Fabian Reister ( fabian dot reister at kit dot edu )
17 * @date 2024
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#include "ComponentPlugin.h"
23
25
26#include <RobotAPI/interface/armem/mns/MemoryNameSystemInterface.h>
29
31{
34 {
35 if (armemPlugin_ == nullptr)
36 {
37 addPlugin(armemPlugin_);
38 }
39 addPluginDependency(armemPlugin_);
40
41 const std::string componentName = parent.getName();
42
43 viewSelection_.emplace(memoryNameSystem(), componentName);
44 }
45
46 // defined in cpp file in favor of forward declaration
48
51 {
52 ARMARX_CHECK_NOT_NULL(viewSelection_);
53 return viewSelection_.value();
54 }
55
56 void
58 {
59 viewSelection_->connect();
60 }
61
63 ComponentPlugin::memoryNameSystem()
64 {
65 if (armemPlugin_ == nullptr)
66 {
67 addPlugin(armemPlugin_);
68 }
69
70 ARMARX_CHECK_NOT_NULL(armemPlugin_);
71 return armemPlugin_->getMemoryNameSystemClient();
72 }
73} // namespace armarx::view_selection::client::plugins
void addPluginDependency(ManagedIceObjectPlugin *dependedOn)
PluginT * addPlugin(const std::string prefix="", ParamsT &&... params)
The memory name system (MNS) client.
MemoryNameSystem & getMemoryNameSystemClient()
Get the MNS client.
Definition Plugin.cpp:89
ComponentPlugin(ManagedIceObject &parent, const std::string &pre)
#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 offers overloads of toIce() and fromIce() functions for STL container types.