Robot Raconteur Companion C++ Library
Toggle main menu visibility
Loading...
Searching...
No Matches
include
RobotRaconteurCompanion
Util
TestFixtures.h
Go to the documentation of this file.
1
23
24
#include <RobotRaconteur.h>
25
26
#pragma once
27
28
namespace
RobotRaconteur
29
{
30
namespace
Companion
31
{
32
namespace
Util
33
{
46
class
IntraTestFixture
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
78
IntraTestFixture
()
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>
107
void
RegisterServiceType
()
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
153
~IntraTestFixture
() {
Shutdown
(); }
154
};
155
}
// namespace Util
156
}
// namespace Companion
157
}
// namespace RobotRaconteur
RobotRaconteur::Companion::Util::IntraTestFixture
A test fixture for intra-process testing using Robot Raconteur.
Definition
TestFixtures.h:47
RobotRaconteur::Companion::Util::IntraTestFixture::RegisterService
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
RobotRaconteur::Companion::Util::IntraTestFixture::client_transport
boost::shared_ptr< RobotRaconteur::IntraTransport > client_transport
The client transport.
Definition
TestFixtures.h:64
RobotRaconteur::Companion::Util::IntraTestFixture::Shutdown
void Shutdown()
Shutdown the client and server nodes.
Definition
TestFixtures.h:143
RobotRaconteur::Companion::Util::IntraTestFixture::client_node
boost::shared_ptr< RobotRaconteur::RobotRaconteurNode > client_node
The client node.
Definition
TestFixtures.h:53
RobotRaconteur::Companion::Util::IntraTestFixture::RegisterServiceType
void RegisterServiceType()
Register a service type to the client and server nodes.
Definition
TestFixtures.h:107
RobotRaconteur::Companion::Util::IntraTestFixture::IntraTestFixture
IntraTestFixture()
Construct a new IntraTestFixture object.
Definition
TestFixtures.h:78
RobotRaconteur::Companion::Util::IntraTestFixture::ConnectService
boost::shared_ptr< RRObject > ConnectService(const std::string &url) const
Connect to a service on the server node.
Definition
TestFixtures.h:134
RobotRaconteur::Companion::Util::IntraTestFixture::server_node
boost::shared_ptr< RobotRaconteur::RobotRaconteurNode > server_node
The server node.
Definition
TestFixtures.h:58
RobotRaconteur::Companion::Util::IntraTestFixture::server_transport
boost::shared_ptr< RobotRaconteur::IntraTransport > server_transport
The server transport.
Definition
TestFixtures.h:69
Generated by
1.17.0