Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
zmq
zmqpublishnotifier.h
Go to the documentation of this file.
1
// Copyright (c) 2015-present 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 BITCOIN_ZMQ_ZMQPUBLISHNOTIFIER_H
6
#define BITCOIN_ZMQ_ZMQPUBLISHNOTIFIER_H
7
8
#include <
zmq/zmqabstractnotifier.h
>
9
10
#include <cstddef>
11
#include <cstdint>
12
#include <functional>
13
#include <utility>
14
#include <vector>
15
16
class
CBlockIndex
;
17
18
class
CZMQAbstractPublishNotifier
:
public
CZMQAbstractNotifier
19
{
20
private
:
21
uint32_t
nSequence
{0U};
22
23
public
:
24
25
/* send zmq multipart message
26
parts:
27
* command
28
* data
29
* message sequence number
30
*/
31
bool
SendZmqMessage
(
const
char
*
command
,
const
void
* data,
size_t
size);
32
33
bool
Initialize
(
void
*pcontext)
override
;
34
void
Shutdown
()
override
;
35
};
36
37
class
CZMQPublishHashBlockNotifier
:
public
CZMQAbstractPublishNotifier
38
{
39
public
:
40
bool
NotifyBlock
(
const
CBlockIndex
*pindex)
override
;
41
};
42
43
class
CZMQPublishHashTransactionNotifier
:
public
CZMQAbstractPublishNotifier
44
{
45
public
:
46
bool
NotifyTransaction
(
const
CTransaction
&transaction)
override
;
47
};
48
49
class
CZMQPublishRawBlockNotifier
:
public
CZMQAbstractPublishNotifier
50
{
51
private
:
52
const
std::function<bool(std::vector<std::byte>&,
const
CBlockIndex
&)>
m_get_block_by_index
;
53
54
public
:
55
CZMQPublishRawBlockNotifier
(std::function<
bool
(std::vector<std::byte>&,
const
CBlockIndex
&)> get_block_by_index)
56
:
m_get_block_by_index
{
std
::move(get_block_by_index)} {}
57
bool
NotifyBlock
(
const
CBlockIndex
*pindex)
override
;
58
};
59
60
class
CZMQPublishRawTransactionNotifier
:
public
CZMQAbstractPublishNotifier
61
{
62
public
:
63
bool
NotifyTransaction
(
const
CTransaction
&transaction)
override
;
64
};
65
66
class
CZMQPublishSequenceNotifier
:
public
CZMQAbstractPublishNotifier
67
{
68
public
:
69
bool
NotifyBlockConnect
(
const
CBlockIndex
*pindex)
override
;
70
bool
NotifyBlockDisconnect
(
const
CBlockIndex
*pindex)
override
;
71
bool
NotifyTransactionAcceptance
(
const
CTransaction
&transaction, uint64_t mempool_sequence)
override
;
72
bool
NotifyTransactionRemoval
(
const
CTransaction
&transaction, uint64_t mempool_sequence)
override
;
73
};
74
75
#endif
// BITCOIN_ZMQ_ZMQPUBLISHNOTIFIER_H
command
const auto command
Definition
bitcoin-wallet.cpp:116
CBlockIndex
The block chain is a tree shaped structure starting with the genesis block at the root,...
Definition
chain.h:94
CTransaction
The basic transaction that is broadcasted on the network and contained in blocks.
Definition
transaction.h:281
CZMQAbstractNotifier
Definition
zmqabstractnotifier.h:20
CZMQAbstractPublishNotifier
Definition
zmqpublishnotifier.h:19
CZMQAbstractPublishNotifier::SendZmqMessage
bool SendZmqMessage(const char *command, const void *data, size_t size)
Definition
zmqpublishnotifier.cpp:194
CZMQAbstractPublishNotifier::Shutdown
void Shutdown() override
Definition
zmqpublishnotifier.cpp:163
CZMQAbstractPublishNotifier::nSequence
uint32_t nSequence
upcounting per message sequence number
Definition
zmqpublishnotifier.h:21
CZMQAbstractPublishNotifier::Initialize
bool Initialize(void *pcontext) override
Definition
zmqpublishnotifier.cpp:96
CZMQPublishHashBlockNotifier
Definition
zmqpublishnotifier.h:38
CZMQPublishHashBlockNotifier::NotifyBlock
bool NotifyBlock(const CBlockIndex *pindex) override
Definition
zmqpublishnotifier.cpp:211
CZMQPublishHashTransactionNotifier
Definition
zmqpublishnotifier.h:44
CZMQPublishHashTransactionNotifier::NotifyTransaction
bool NotifyTransaction(const CTransaction &transaction) override
Definition
zmqpublishnotifier.cpp:222
CZMQPublishRawBlockNotifier::m_get_block_by_index
const std::function< bool(std::vector< std::byte > &, const CBlockIndex &)> m_get_block_by_index
Definition
zmqpublishnotifier.h:52
CZMQPublishRawBlockNotifier::CZMQPublishRawBlockNotifier
CZMQPublishRawBlockNotifier(std::function< bool(std::vector< std::byte > &, const CBlockIndex &)> get_block_by_index)
Definition
zmqpublishnotifier.h:55
CZMQPublishRawBlockNotifier::NotifyBlock
bool NotifyBlock(const CBlockIndex *pindex) override
Definition
zmqpublishnotifier.cpp:233
CZMQPublishRawTransactionNotifier
Definition
zmqpublishnotifier.h:61
CZMQPublishRawTransactionNotifier::NotifyTransaction
bool NotifyTransaction(const CTransaction &transaction) override
Definition
zmqpublishnotifier.cpp:246
CZMQPublishSequenceNotifier
Definition
zmqpublishnotifier.h:67
CZMQPublishSequenceNotifier::NotifyTransactionAcceptance
bool NotifyTransactionAcceptance(const CTransaction &transaction, uint64_t mempool_sequence) override
Definition
zmqpublishnotifier.cpp:282
CZMQPublishSequenceNotifier::NotifyTransactionRemoval
bool NotifyTransactionRemoval(const CTransaction &transaction, uint64_t mempool_sequence) override
Definition
zmqpublishnotifier.cpp:289
CZMQPublishSequenceNotifier::NotifyBlockConnect
bool NotifyBlockConnect(const CBlockIndex *pindex) override
Definition
zmqpublishnotifier.cpp:268
CZMQPublishSequenceNotifier::NotifyBlockDisconnect
bool NotifyBlockDisconnect(const CBlockIndex *pindex) override
Definition
zmqpublishnotifier.cpp:275
std
Definition
common.h:29
zmqabstractnotifier.h
Generated on
for Bitcoin Core by
1.17.0