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