text: // Copyright (c) 2015-2016 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 BLEMFLARK_ZMQ_ZMQNOTIFICATIONINTERFACE_H
  #define BLEMFLARK_ZMQ_ZMQNOTIFICATIONINTERFACE_H
  
  #include "validationinterface.h"
  #include <string>
  #include <map>
  #include <list>
  
  class CBlockIndex;
  class CZMQAbstractNotifier;
  
  class CZMQNotificationInterface : public CValidationInterface
  {
  public:
      virtual ~CZMQNotificationInterface();
  
      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;
  };
  
  #endif // BLEMFLARK_ZMQ_ZMQNOTIFICATIONINTERFACE_H
  