[#CZMQNotificationInterface]
= CZMQNotificationInterface
:mrdocs:

Validation&hyphen;interface listener that fans node events out to the configured ZMQ notifiers&period;

== Synopsis

Declared in `&lt;zmq&sol;zmqnotificationinterface&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class CZMQNotificationInterface final
    : public xref:CValidationInterface.adoc[CValidationInterface]
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:CValidationInterface.adoc[CValidationInterface]`
| Implement this to subscribe to events generated in validation and mempool
|===

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:CZMQNotificationInterface/2destructor.adoc[`&#126;CZMQNotificationInterface`] [.small]#[destructor]#
| Shut down all notifiers and destroy the interface&period;
| xref:CZMQNotificationInterface/GetActiveNotifiers.adoc[`GetActiveNotifiers`] 
| List the notifiers that are currently active&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:CZMQNotificationInterface/Create.adoc[`Create`] 
| Create the ZMQ notification interface from the configured endpoints&period;
|===


== Protected Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:CValidationInterface/ActiveTipChange.adoc[`ActiveTipChange`]  [.small]#[virtual]#
| Notifies listeners any time the block chain tip changes, synchronously&period;
| xref:CValidationInterface/BlockChecked.adoc[`BlockChecked`]  [.small]#[virtual]#
| Notifies listeners of a block validation result&period; If the provided BlockValidationState IsValid, the provided block is guaranteed to be the current best block at the time the callback was generated (not necessarily now)&period;
| xref:CZMQNotificationInterface/BlockConnected-05.adoc[`BlockConnected`] 
| `BlockConnected` overloads
| xref:CZMQNotificationInterface/BlockDisconnected-05.adoc[`BlockDisconnected`] 
| `BlockDisconnected` overloads
| xref:CValidationInterface/ChainStateFlushed.adoc[`ChainStateFlushed`]  [.small]#[virtual]#
| Notifies listeners of the new active block chain on&hyphen;disk&period;
| xref:CZMQNotificationInterface/Initialize.adoc[`Initialize`] 
| Initialize the ZMQ context and all notifiers&period;
| xref:CValidationInterface/MempoolTransactionsRemovedForBlock.adoc[`MempoolTransactionsRemovedForBlock`]  [.small]#[virtual]#
| Notifies listeners of transactions removed from the mempool as as a result of new block being connected&period; MempoolTransactionsRemovedForBlock will be fired before BlockConnected&period;
| xref:CValidationInterface/NewPoWValidBlock.adoc[`NewPoWValidBlock`]  [.small]#[virtual]#
| Notifies listeners that a block which builds directly on our current tip has been received and connected to the headers tree, though not validated yet&period;
| xref:CZMQNotificationInterface/Shutdown.adoc[`Shutdown`] 
| Shut down all notifiers and destroy the ZMQ context&period;
| xref:CZMQNotificationInterface/TransactionAddedToMempool.adoc[`TransactionAddedToMempool`]  [.small]#[virtual]#
| Handle a transaction being added to the mempool&period;
| xref:CZMQNotificationInterface/TransactionRemovedFromMempool.adoc[`TransactionRemovedFromMempool`]  [.small]#[virtual]#
| Handle a transaction being removed from the mempool&period;
| xref:CZMQNotificationInterface/UpdatedBlockTip.adoc[`UpdatedBlockTip`]  [.small]#[virtual]#
| Handle the active chain tip being updated&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
