Robot Raconteur Companion C++ Library
Loading...
Searching...
No Matches
TestFixtures.h
Go to the documentation of this file.
1
23
24#include <RobotRaconteur.h>
25
26#pragma once
27
28namespace RobotRaconteur
29{
30namespace Companion
31{
32namespace Util
33{
47{
48 public:
53 RR_SHARED_PTR<RobotRaconteur::RobotRaconteurNode> client_node;
58 RR_SHARED_PTR<RobotRaconteur::RobotRaconteurNode> server_node;
59
64 RR_SHARED_PTR<RobotRaconteur::IntraTransport> client_transport;
69 RR_SHARED_PTR<RobotRaconteur::IntraTransport> server_transport;
70
79 {
80 client_node = RR_MAKE_SHARED<RobotRaconteur::RobotRaconteurNode>();
81 server_node = RR_MAKE_SHARED<RobotRaconteur::RobotRaconteurNode>();
82
83 client_node->SetNodeName("client_node");
84 server_node->SetNodeName("server_node");
85
86 client_node->Init();
87 server_node->Init();
88
89 client_transport = RR_MAKE_SHARED<RobotRaconteur::IntraTransport>(client_node);
90 server_transport = RR_MAKE_SHARED<RobotRaconteur::IntraTransport>(server_node);
91
92 client_node->RegisterTransport(client_transport);
93 server_node->RegisterTransport(server_transport);
94
95 client_transport->StartClient();
96 server_transport->StartServer();
97 }
98
106 template <typename T>
108 {
109 client_node->RegisterServiceType(RR_MAKE_SHARED<T>());
110 server_node->RegisterServiceType(RR_MAKE_SHARED<T>());
111 }
112
121 RobotRaconteur::ServerContextPtr RegisterService(const std::string& name, const std::string& type,
122 const RR_SHARED_PTR<RRObject>& obj) const
123 {
124 return server_node->RegisterService(name, type, obj);
125 }
126
134 RR_SHARED_PTR<RRObject> ConnectService(const std::string& url) const { return client_node->ConnectService(url); }
135
143 void Shutdown()
144 {
145 if (!client_node)
146 return;
147 client_node->Shutdown();
148 server_node->Shutdown();
149 client_node.reset();
150 server_node.reset();
151 }
152
154};
155} // namespace Util
156} // namespace Companion
157} // namespace RobotRaconteur
A test fixture for intra-process testing using Robot Raconteur.
Definition TestFixtures.h:47
RobotRaconteur::ServerContextPtr RegisterService(const std::string &name, const std::string &type, const boost::shared_ptr< RRObject > &obj) const
Register a service to the server node.
Definition TestFixtures.h:121
boost::shared_ptr< RobotRaconteur::IntraTransport > client_transport
The client transport.
Definition TestFixtures.h:64
void Shutdown()
Shutdown the client and server nodes.
Definition TestFixtures.h:143
boost::shared_ptr< RobotRaconteur::RobotRaconteurNode > client_node
The client node.
Definition TestFixtures.h:53
void RegisterServiceType()
Register a service type to the client and server nodes.
Definition TestFixtures.h:107
IntraTestFixture()
Construct a new IntraTestFixture object.
Definition TestFixtures.h:78
boost::shared_ptr< RRObject > ConnectService(const std::string &url) const
Connect to a service on the server node.
Definition TestFixtures.h:134
boost::shared_ptr< RobotRaconteur::RobotRaconteurNode > server_node
The server node.
Definition TestFixtures.h:58
boost::shared_ptr< RobotRaconteur::IntraTransport > server_transport
The server transport.
Definition TestFixtures.h:69