git / moonbite-core / src/zmq/zmqpublishnotifier.h · raw
// Copyright (c) 2015-2018 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_ZMQPUBLISHNOTIFIER_H#define BITCOIN_ZMQ_ZMQPUBLISHNOTIFIER_H#include <zmq/zmqabstractnotifier.h>class CBlockIndex;class CZMQAbstractPublishNotifier : public CZMQAbstractNotifier{private: uint32_t nSequence {0U}; //!< upcounting per message sequence numberpublic: /* send zmq multipart message parts: * command * data * message sequence number */ bool SendZmqMessage(const char *command, const void* data, size_t size); bool Initialize(void *pcontext) override; void Shutdown() override;};class CZMQPublishHashBlockNotifier : public CZMQAbstractPublishNotifier{public: bool NotifyBlock(const CBlockIndex *pindex) override;};class CZMQPublishHashTransactionNotifier : public CZMQAbstractPublishNotifier{public: bool NotifyTransaction(const CTransaction &transaction) override;};class CZMQPublishRawBlockNotifier : public CZMQAbstractPublishNotifier{public: bool NotifyBlock(const CBlockIndex *pindex) override;};class CZMQPublishRawTransactionNotifier : public CZMQAbstractPublishNotifier{public: bool NotifyTransaction(const CTransaction &transaction) override;};class CZMQPublishSequenceNotifier : public CZMQAbstractPublishNotifier{public: bool NotifyBlockConnect(const CBlockIndex *pindex) override; bool NotifyBlockDisconnect(const CBlockIndex *pindex) override; bool NotifyTransactionAcceptance(const CTransaction &transaction, uint64_t mempool_sequence) override; bool NotifyTransactionRemoval(const CTransaction &transaction, uint64_t mempool_sequence) override;};#endif // BITCOIN_ZMQ_ZMQPUBLISHNOTIFIER_H