mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-17 23:32:36 -03:00
161e8d40a4
This adds a new RPC method "getzmqnotifications", which returns information about all active ZMQ notification endpoints. This is useful for software that layers on top of bitcoind, so it can verify that ZeroMQ is enabled and also figure out where it should listen. See https://github.com/bitcoin/bitcoin/issues/13526.
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
// 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_ZMQNOTIFICATIONINTERFACE_H
|
|
#define BITCOIN_ZMQ_ZMQNOTIFICATIONINTERFACE_H
|
|
|
|
#include <validationinterface.h>
|
|
#include <string>
|
|
#include <map>
|
|
#include <list>
|
|
|
|
class CBlockIndex;
|
|
class CZMQAbstractNotifier;
|
|
|
|
class CZMQNotificationInterface final : public CValidationInterface
|
|
{
|
|
public:
|
|
virtual ~CZMQNotificationInterface();
|
|
|
|
std::list<const CZMQAbstractNotifier*> GetActiveNotifiers() const;
|
|
|
|
static CZMQNotificationInterface* Create();
|
|
|
|
protected:
|
|
bool Initialize();
|
|
void Shutdown();
|
|
|
|
// CValidationInterface
|
|
void TransactionAddedToMempool(const CTransactionRef& tx) override;
|
|
void BlockConnected(const std::shared_ptr<const CBlock>& pblock, const CBlockIndex* pindexConnected, const std::vector<CTransactionRef>& vtxConflicted) override;
|
|
void BlockDisconnected(const std::shared_ptr<const CBlock>& pblock) override;
|
|
void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) override;
|
|
|
|
private:
|
|
CZMQNotificationInterface();
|
|
|
|
void *pcontext;
|
|
std::list<CZMQAbstractNotifier*> notifiers;
|
|
};
|
|
|
|
extern CZMQNotificationInterface* g_zmq_notification_interface;
|
|
|
|
#endif // BITCOIN_ZMQ_ZMQNOTIFICATIONINTERFACE_H
|