Line data Source code
1 : // Copyright (c) 2015 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 PIVX_ZMQ_ZMQPUBLISHNOTIFIER_H 6 : #define PIVX_ZMQ_ZMQPUBLISHNOTIFIER_H 7 : 8 : #include "zmqabstractnotifier.h" 9 : 10 : class CBlockIndex; 11 : 12 4 : class CZMQAbstractPublishNotifier : public CZMQAbstractNotifier 13 : { 14 : private: 15 : uint32_t nSequence{0}; // upcounting per message sequence number 16 : 17 : public: 18 : 19 : /* send zmq multipart message 20 : parts: 21 : * command 22 : * data 23 : * message sequence number 24 : */ 25 : bool SendMessage(const char *command, const void* data, size_t size); 26 : 27 : bool Initialize(void *pcontext); 28 : void Shutdown(); 29 : }; 30 : 31 1 : class CZMQPublishHashBlockNotifier : public CZMQAbstractPublishNotifier 32 : { 33 : public: 34 : bool NotifyBlock(const CBlockIndex *pindex); 35 : }; 36 : 37 1 : class CZMQPublishHashTransactionNotifier : public CZMQAbstractPublishNotifier 38 : { 39 : public: 40 : bool NotifyTransaction(const CTransaction &transaction); 41 : }; 42 : 43 1 : class CZMQPublishRawBlockNotifier : public CZMQAbstractPublishNotifier 44 : { 45 : public: 46 : bool NotifyBlock(const CBlockIndex *pindex); 47 : }; 48 : 49 1 : class CZMQPublishRawTransactionNotifier : public CZMQAbstractPublishNotifier 50 : { 51 : public: 52 : bool NotifyTransaction(const CTransaction &transaction); 53 : }; 54 : 55 : #endif // PIVX_ZMQ_ZMQPUBLISHNOTIFIER_H