24 #include "goby/common/zeromq_service.h" 26 #include <boost/thread.hpp> 28 void node_inbox(goby::common::MarshallingScheme marshalling_scheme,
const std::string& identifier,
29 const std::string& data,
int socket_id);
31 const std::string identifier_ =
"HI/";
33 const char data_[] = {
'h',
'i',
'\0'};
37 SOCKET_SUBSCRIBE = 240,
41 int main(
int argc,
char* argv[])
52 pubsub_cfg.add_socket();
53 subscriber_socket->set_socket_type(
54 goby::common::protobuf::ZeroMQServiceConfig::Socket::SUBSCRIBE);
55 subscriber_socket->set_socket_id(SOCKET_SUBSCRIBE);
56 subscriber_socket->set_ethernet_address(
"127.0.0.1");
57 std::cout << subscriber_socket->DebugString() << std::endl;
62 pubsub_cfg.add_socket();
63 publisher_socket->set_socket_type(
64 goby::common::protobuf::ZeroMQServiceConfig::Socket::PUBLISH);
65 publisher_socket->set_ethernet_address(
"127.0.0.1");
66 publisher_socket->set_socket_id(SOCKET_PUBLISH);
67 std::cout << publisher_socket->DebugString() << std::endl;
70 node.set_cfg(pubsub_cfg);
71 node.connect_inbox_slot(&node_inbox);
72 node.subscribe_all(SOCKET_SUBSCRIBE);
77 for (
int i = 0; i < test_count; ++i)
79 std::cout <<
"publishing " << data_ << std::endl;
80 node.send(goby::common::MARSHALLING_CSTR, identifier_, data_, SOCKET_PUBLISH);
84 assert(inbox_count_ == test_count);
86 std::cout <<
"all tests passed" << std::endl;
89 void node_inbox(goby::common::MarshallingScheme marshalling_scheme,
const std::string& identifier,
90 const std::string& data,
int socket_id)
92 assert(identifier == identifier_);
93 assert(marshalling_scheme == goby::common::MARSHALLING_CSTR);
94 assert(!strcmp(data.c_str(), data_));
95 assert(socket_id == SOCKET_SUBSCRIBE);
97 std::cout <<
"Received: " << data << std::endl;
void set_name(const std::string &s)
Set the name of the application that the logger is serving.
common::FlexOstream glog
Access the Goby logger through this object.
void add_stream(logger::Verbosity verbosity=logger::VERBOSE, std::ostream *os=0)
Attach a stream object (e.g. std::cout, std::ofstream, ...) to the logger with desired verbosity...