salsa  0.3.0
ActorZmq.hh
1 #pragma once
2 
3 #include <czmq.h>
4 
5 #include <Actor.hh>
6 #include <Log.hh>
7 #include <PollerZmq.hh>
8 
9 namespace Salsa {
18 
19 class ActorZmq : public Actor {
20 public:
21  ActorZmq();
22  virtual ~ActorZmq();
23 
24  virtual void pipe(void * pipe);
25  virtual int init();
26  virtual int exec();
27  virtual int finish();
28 
29  virtual void * wait();
30 
31  zpoller_t * poller() const;
32  PollerZmq * pollerZmq() const;
33 
34  static void SalsaActorFn(zsock_t * pPipe, void * pArgv);
35 
37  static void SalsaActorForkFn(zsock_t * pPipe, void * pArgv);
38 
39 protected:
40  zsock_t * mpPipe = nullptr;
41  PollerZmq * mpPoller = nullptr;
42  bool mTerminated = false;
43  int mTimeout = -1;
44 
45 private:
47  static void actorProcwaitSupport_(zsock_t * pipe, void * argv);
48 };
49 
50 } // namespace Salsa
PollerZmq * mpPoller
Internal poller.
Definition: ActorZmq.hh:41
virtual int init()
First function.
Definition: ActorZmq.cc:334
virtual void pipe(void *pipe)
Setter for pipe.
Definition: ActorZmq.cc:315
virtual ~ActorZmq()
Definition: ActorZmq.cc:12
zpoller_t * poller() const
Definition: ActorZmq.cc:425
virtual int finish()
Last function.
Definition: ActorZmq.cc:367
bool mTerminated
Flag if actor should be terminated.
Definition: ActorZmq.hh:42
static void actorProcwaitSupport_(zsock_t *pipe, void *argv)
Support actor method (used for PID waiting)
Definition: ActorZmq.cc:267
virtual void * wait()
Definition: ActorZmq.cc:378
salsa node class
Definition: PollerZmq.hh:16
ZeroMQ implementation of salsa actor class
Definition: ActorZmq.hh:19
zsock_t * mpPipe
Zmq pipe socket.
Definition: ActorZmq.hh:40
Definition: Actor.cc:2
Base salsa actor class
Definition: Actor.hh:17
static void SalsaActorFn(zsock_t *pPipe, void *pArgv)
Definition: ActorZmq.cc:22
virtual int exec()
Main function.
Definition: ActorZmq.cc:345
static void SalsaActorForkFn(zsock_t *pPipe, void *pArgv)
Actor function with fork capability.
Definition: ActorZmq.cc:54
int mTimeout
Poller timeout.
Definition: ActorZmq.hh:43
PollerZmq * pollerZmq() const
Definition: ActorZmq.cc:432