Bitcoin
zmqabstractnotifier.h
Go to the documentation of this file.
1 // Copyright (c) 2015-2018 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_ZMQ_ZMQABSTRACTNOTIFIER_H
6 #define BITCOIN_ZMQ_ZMQABSTRACTNOTIFIER_H
7 
8 #include <zmq/zmqconfig.h>
9 
10 class CBlockIndex;
12 
13 typedef CZMQAbstractNotifier* (*CZMQNotifierFactory)();
14 
16 {
17 public:
18  static const int DEFAULT_ZMQ_SNDHWM {1000};
19 
21  virtual ~CZMQAbstractNotifier();
22 
23  template <typename T>
25  {
26  return new T();
27  }
28 
29  std::string GetType() const { return type; }
30  void SetType(const std::string &t) { type = t; }
31  std::string GetAddress() const { return address; }
32  void SetAddress(const std::string &a) { address = a; }
34  void SetOutboundMessageHighWaterMark(const int sndhwm) {
35  if (sndhwm >= 0) {
37  }
38  }
39 
40  virtual bool Initialize(void *pcontext) = 0;
41  virtual void Shutdown() = 0;
42 
43  virtual bool NotifyBlock(const CBlockIndex *pindex);
44  virtual bool NotifyTransaction(const CTransaction &transaction);
45 
46 protected:
47  void *psocket;
48  std::string type;
49  std::string address;
51 };
52 
53 #endif // BITCOIN_ZMQ_ZMQABSTRACTNOTIFIER_H
CZMQAbstractNotifier()
Definition: zmqabstractnotifier.h:20
virtual ~CZMQAbstractNotifier()
Definition: zmqabstractnotifier.cpp:9
virtual bool NotifyTransaction(const CTransaction &transaction)
Definition: zmqabstractnotifier.cpp:19
void SetOutboundMessageHighWaterMark(const int sndhwm)
Definition: zmqabstractnotifier.h:34
void SetAddress(const std::string &a)
Definition: zmqabstractnotifier.h:32
static const int DEFAULT_ZMQ_SNDHWM
Definition: zmqabstractnotifier.h:18
static CZMQAbstractNotifier * Create()
Definition: zmqabstractnotifier.h:24
virtual bool Initialize(void *pcontext)=0
std::string GetType() const
Definition: zmqabstractnotifier.h:29
virtual bool NotifyBlock(const CBlockIndex *pindex)
Definition: zmqabstractnotifier.cpp:14
Definition: transaction.h:270
int GetOutboundMessageHighWaterMark() const
Definition: zmqabstractnotifier.h:33
std::string type
Definition: zmqabstractnotifier.h:48
void * psocket
Definition: zmqabstractnotifier.h:47
Definition: zmqabstractnotifier.h:15
virtual void Shutdown()=0
int outbound_message_high_water_mark
Definition: zmqabstractnotifier.h:50
Definition: chain.h:139
void SetType(const std::string &t)
Definition: zmqabstractnotifier.h:30
std::string GetAddress() const
Definition: zmqabstractnotifier.h:31
std::string address
Definition: zmqabstractnotifier.h:49