salsa  0.7.1
NodeZyre.hh
1 #pragma once
2 
3 #include "ActorZmq.hh"
4 #include "MessageZyre.hh"
5 #include "Node.hh"
6 
7 #include "PollerZmq.hh"
8 #include "SocketZyre.hh"
9 
10 namespace Salsa {
19 class NodeManagerZyre;
20 class NodeZyre : public Node, public ActorZmq {
21 public:
23  NodeZyre(std::string name = "");
25  virtual ~NodeZyre();
26 
27  virtual int init();
28  virtual int exec();
29  virtual int finish();
30 
31  void addSocket(std::shared_ptr<SocketZyre> socket);
32  std::vector<std::shared_ptr<SocketZyre>> sockets() const;
33  void addSocket(zsock_t * pSocket);
34 
36  zsock_t * socketExternal(int i) { return mZmqSockets.at(i); }
37 
38  void handleExternalZmq(zmsg_t * pMsg, zsock_t * pSocket);
39 
41  void type(std::string t) { mType = t; }
43  std::string type() { return mType; }
45  void clusterAlias(std::string n) { mClusterAlias = n; }
47  std::string clusterAlias() { return mClusterAlias; }
49  void jobInfoGroupName(std::string n) { mJobInfoGroupName = n; }
51  std::string jobInfoGroupName() { return mJobInfoGroupName; }
53  void jobInfoBrokerUrl(std::string url) { mJobInfoBrokerUrl = url; }
55  std::string jobInfoBrokerUrl() { return mJobInfoBrokerUrl; }
57  void submitClientUrl(std::string url) { mSubmitClientUrl = url; }
59  std::string submitClientUrl() { return mSubmitClientUrl; }
61  void jobInfoClientUrl(std::string url) { mJobInfoClientUrl = url; }
63  std::string jobInfoClientUrl() { return mJobInfoClientUrl; }
64 
65 private:
66  std::vector<std::shared_ptr<SocketZyre>> mSockets{};
67  std::vector<zsock_t *> mZmqSockets{};
69  std::string mType;
70  std::string mClusterAlias{"local"};
71  std::string mJobInfoGroupName;
72  std::string mJobInfoBrokerUrl;
73  std::string mJobInfoClientUrl;
74  std::string mSubmitClientUrl;
76 };
77 
78 } // namespace Salsa
ZeroMQ implementation of salsa actor class.
Definition: ActorZmq.hh:19
NodeManagerZyre class.
salsa node class
Definition: NodeZyre.hh:20
std::string type()
Returns type of current node.
Definition: NodeZyre.hh:43
std::string mJobInfoGroupName
JobInfo Group name.
Definition: NodeZyre.hh:71
void jobInfoGroupName(std::string n)
Sets JobInfo Group name.
Definition: NodeZyre.hh:49
void type(std::string t)
Sets type of current node.
Definition: NodeZyre.hh:41
void jobInfoClientUrl(std::string url)
Sets JobInfo client url.
Definition: NodeZyre.hh:61
int mJobCheckTimeout
Job check timeout.
Definition: NodeZyre.hh:75
void jobInfoBrokerUrl(std::string url)
Sets JobInfo broker url.
Definition: NodeZyre.hh:53
std::string clusterAlias()
Returns Cluster alias.
Definition: NodeZyre.hh:47
void addSocket(std::shared_ptr< SocketZyre > socket)
Definition: NodeZyre.cc:255
std::string mJobInfoClientUrl
JobInfo url for client (salsa-broker –out ...)
Definition: NodeZyre.hh:73
std::vector< std::shared_ptr< SocketZyre > > sockets() const
Definition: NodeZyre.cc:270
void submitClientUrl(std::string url)
Sets Submit client url.
Definition: NodeZyre.hh:57
virtual int init()
First function.
Definition: NodeZyre.cc:42
virtual int exec()
Main function.
Definition: NodeZyre.cc:111
std::string mType
Current node type.
Definition: NodeZyre.hh:69
std::string mSubmitClientUrl
Submit url for client.
Definition: NodeZyre.hh:74
std::string jobInfoClientUrl()
Returns JobInfo client url.
Definition: NodeZyre.hh:63
NodeZyre(std::string name="")
Construct Zyre node with provided name (and packetizer)
Definition: NodeZyre.cc:12
virtual int finish()
Last function.
Definition: NodeZyre.cc:242
NodeManagerZyre * mpNodeManager
Job manager.
Definition: NodeZyre.hh:68
std::string jobInfoBrokerUrl()
Returns JobInfo broker url.
Definition: NodeZyre.hh:55
zsock_t * socketExternal(int i)
Rerturns external socket.
Definition: NodeZyre.hh:36
std::string mClusterAlias
Cluster alias.
Definition: NodeZyre.hh:70
std::string submitClientUrl()
Returns Submit client url.
Definition: NodeZyre.hh:59
std::string jobInfoGroupName()
Returns JobInfo Group name.
Definition: NodeZyre.hh:51
std::vector< std::shared_ptr< SocketZyre > > mSockets
List of zyre sockets.
Definition: NodeZyre.hh:66
void handleExternalZmq(zmsg_t *pMsg, zsock_t *pSocket)
Definition: NodeZyre.cc:288
void clusterAlias(std::string n)
Sets Cluster alias.
Definition: NodeZyre.hh:45
virtual ~NodeZyre()
Destruct Zyre node.
Definition: NodeZyre.cc:21
std::string mJobInfoBrokerUrl
JobInfo broker url (salsa-broker –in ...)
Definition: NodeZyre.hh:72
std::vector< zsock_t * > mZmqSockets
List of zmq sockets.
Definition: NodeZyre.hh:67
Base Node class.
Definition: Node.hh:23
std::string name() const
Returns node name.
Definition: Node.hh:33