17#ifndef __ROGUE_ZMQ_SERVER_H__
18#define __ROGUE_ZMQ_SERVER_H__
28 #include <boost/python.hpp>
61 std::thread* rThread_;
62 std::thread* sThread_;
70 std::shared_ptr<rogue::Logging> log_;
92 static std::shared_ptr<rogue::interfaces::ZmqServer>
create(
const std::string& addr, uint16_t
port);
117 void publish(boost::python::object data);
124 virtual boost::python::object
doRequest(boost::python::object data);
132 virtual std::string
doString(
const std::string& data);
171 boost::python::object
doRequest(boost::python::object data);
181 boost::python::object
defDoRequest(boost::python::object data);
192 std::string
doString(
const std::string& data);
Python-overridable wrapper for ZmqServer.
boost::python::object defDoRequest(boost::python::object data)
Calls base-class doRequest() implementation.
std::string defDoString(const std::string &data)
Calls base-class doString() implementation.
boost::python::object doRequest(boost::python::object data)
Processes a Python-object request message.
std::string doString(const std::string &data)
Processes a string request message.
ZeroMQ server for Rogue control, request/reply, and publish updates.
static void setup_python()
Registers Python bindings for this class.
uint16_t port()
Returns currently bound base port.
void start()
Starts server, binds sockets, and launches worker threads.
virtual ~ZmqServer()
Destroys server and stops worker threads/sockets.
void stop()
Stops server threads and closes sockets.
static std::shared_ptr< rogue::interfaces::ZmqServer > create(const std::string &addr, uint16_t port)
Creates a ZeroMQ server.
virtual boost::python::object doRequest(boost::python::object data)
Handles one binary request payload.
virtual std::string doString(const std::string &data)
Handles one string request payload.
void publish(boost::python::object data)
Publishes an update payload on the publish socket.
std::shared_ptr< rogue::interfaces::ZmqServerWrap > ZmqServerWrapPtr
std::shared_ptr< rogue::interfaces::ZmqServer > ZmqServerPtr