salsa  0.4.0
SocketZyre.hh
1 #pragma once
2 
3 #include <zyre.h>
4 
5 #include <Node.hh>
6 #include <Socket.hh>
7 
8 namespace Salsa {
17 
18 class SocketZyre : public Socket {
19 public:
20  SocketZyre(std::string name = "no_name", std::map<std::string, std::string> headers = {});
21  virtual ~SocketZyre();
22 
23  virtual int connect() final;
24  virtual int disconnect() final;
25 
26  virtual Message * pull();
27  virtual int push(Message *);
29  int push(std::string, std::string);
30 
32  void port(int newPort)
33  {
34  mPort = newPort;
35  zyre_set_port(mpSocket, newPort);
36  }
37 
39  int port() const { return mPort; }
40 
42  virtual zyre_t * zyre() const { return mpSocket; }
43 
45  virtual zsock_t * socket() const { return zyre_socket(mpSocket); }
47  std::string header(const char * pKey) const { return mHeaders.find(pKey)->second; }
48 
49 private:
50  zyre_t * mpSocket = nullptr;
51  int mPort = 0;
52  std::map<std::string, std::string> mHeaders = {};
53 };
54 
55 } // namespace Salsa
Salsa zyre socket class.
Definition: SocketZyre.hh:18
Base Message class.
Definition: Message.hh:15
virtual Message * pull()
Pull message.
Definition: SocketZyre.cc:56
virtual int disconnect() final
Disconnect function.
Definition: SocketZyre.cc:43
virtual int connect() final
Connect function.
Definition: SocketZyre.cc:33
std::string header(const char *pKey) const
Returns value for key from header.
Definition: SocketZyre.hh:47
virtual zyre_t * zyre() const
Returns zyre pointer.
Definition: SocketZyre.hh:42
std::map< std::string, std::string > mHeaders
List of headers.
Definition: SocketZyre.hh:52
int mPort
Port for Zyre.
Definition: SocketZyre.hh:51
virtual zsock_t * socket() const
Returns zyre socket pointer.
Definition: SocketZyre.hh:45
int port() const
Get zyre port.
Definition: SocketZyre.hh:39
zyre_t * mpSocket
Zyre instance.
Definition: SocketZyre.hh:50
virtual int push(Message *)
Push message.
Definition: SocketZyre.cc:66
void port(int newPort)
Set zyre port.
Definition: SocketZyre.hh:32
Base Socket class.
Definition: Socket.hh:15
virtual ~SocketZyre()
Definition: SocketZyre.cc:22
SocketZyre(std::string name="no_name", std::map< std::string, std::string > headers={})
Definition: SocketZyre.cc:5