You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
// Copyright (c) 2015 The Bitcoin Core developers |
|
// Distributed under the MIT software license, see the accompanying |
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php. |
|
|
|
#ifndef BITCOIN_ZMQ_ZMQABSTRACTNOTIFIER_H |
|
#define BITCOIN_ZMQ_ZMQABSTRACTNOTIFIER_H |
|
|
|
#include "zmqconfig.h" |
|
|
|
class CBlockIndex; |
|
class CZMQAbstractNotifier; |
|
|
|
typedef CZMQAbstractNotifier* (*CZMQNotifierFactory)(); |
|
|
|
class CZMQAbstractNotifier |
|
{ |
|
public: |
|
CZMQAbstractNotifier() : psocket(0) { } |
|
virtual ~CZMQAbstractNotifier(); |
|
|
|
template <typename T> |
|
static CZMQAbstractNotifier* Create() |
|
{ |
|
return new T(); |
|
} |
|
|
|
std::string GetType() const { return type; } |
|
void SetType(const std::string &t) { type = t; } |
|
std::string GetAddress() const { return address; } |
|
void SetAddress(const std::string &a) { address = a; } |
|
|
|
virtual bool Initialize(void *pcontext) = 0; |
|
virtual void Shutdown() = 0; |
|
|
|
virtual bool NotifyBlock(const CBlockIndex *pindex); |
|
virtual bool NotifyTransaction(const CTransaction &transaction); |
|
|
|
protected: |
|
void *psocket; |
|
std::string type; |
|
std::string address; |
|
}; |
|
|
|
#endif // BITCOIN_ZMQ_ZMQABSTRACTNOTIFIER_H
|
|
|