text: // Copyright (c) 2015-2016 The Ilcoin Core developers
  // All Rights Reserved. ILCoin Blockchain Project 2019©
  
  #ifndef ILCOIN_ZMQ_ZMQNOTIFICATIONINTERFACE_H
  #define ILCOIN_ZMQ_ZMQNOTIFICATIONINTERFACE_H
  
  #include "validationinterface.h"
  #include <string>
  #include <map>
  
  class CBlockIndex;
  class CMiniBlockIndex;
  class CZMQAbstractNotifier;
  
  class CZMQNotificationInterface : public CValidationInterface
  {
  public:
      virtual ~CZMQNotificationInterface();
  
      static CZMQNotificationInterface* Create();
  
  protected:
      bool Initialize();
      void Shutdown();
  
      // CValidationInterface
      void SyncTransaction(const CTransaction& tx, const CBlockIndex *pindex, int posInBlock);
      void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload);
      void UpdatedMiniBlockTip(const CMiniBlockIndex *pindexNew, const CMiniBlockIndex *pindexFork, bool fInitialDownload);
  
  private:
      CZMQNotificationInterface();
  
      void *pcontext;
      std::list<CZMQAbstractNotifier*> notifiers;
  };
  
  #endif // ILCOIN_ZMQ_ZMQNOTIFICATIONINTERFACE_H
  