![]() |
PIVX Core
5.6.99
P2P Digital Currency
|
Acts as a FIFO queue for incoming DKG messages. More...
#include <quorums_dkgsessionhandler.h>
Public Types | |
| typedef std::pair< NodeId, std::shared_ptr< CDataStream > > | BinaryMessage |
Public Member Functions | |
| CDKGPendingMessages (size_t _maxMessagesPerNode) | |
| void | PushPendingMessage (NodeId from, CDataStream &vRecv, int invType) |
| std::list< BinaryMessage > | PopPendingMessages (size_t maxCount) |
| bool | HasSeen (const uint256 &hash) const |
| void | Clear () |
| template<typename Message > | |
| void | PushPendingMessage (NodeId from, Message &msg, int invType) |
| template<typename Message > | |
| std::vector< std::pair< NodeId, std::shared_ptr< Message > > > | PopAndDeserializeMessages (size_t maxCount) |
Private Attributes | |
| RecursiveMutex | cs |
| size_t | maxMessagesPerNode |
| std::list< BinaryMessage > | pendingMessages |
| std::map< NodeId, size_t > | messagesPerNode |
| std::set< uint256 > | seenMessages |
Acts as a FIFO queue for incoming DKG messages.
The reason we need this is that deserialization of these messages is too slow to be processed in the main message handler thread. So, instead of processing them directly from the main handler thread, we push them into a CDKGPendingMessages object and later pop+deserialize them in the DKG phase handler thread.
Each message type has it's own instance of this class.
Definition at line 35 of file quorums_dkgsessionhandler.h.
| typedef std::pair<NodeId, std::shared_ptr<CDataStream> > llmq::CDKGPendingMessages::BinaryMessage |
Definition at line 38 of file quorums_dkgsessionhandler.h.
|
explicit |
Definition at line 21 of file quorums_dkgsessionhandler.cpp.
| void llmq::CDKGPendingMessages::Clear | ( | ) |
Definition at line 77 of file quorums_dkgsessionhandler.cpp.
| bool llmq::CDKGPendingMessages::HasSeen | ( | const uint256 & | hash | ) | const |
Definition at line 71 of file quorums_dkgsessionhandler.cpp.
|
inline |
Definition at line 65 of file quorums_dkgsessionhandler.h.
| std::list< CDKGPendingMessages::BinaryMessage > llmq::CDKGPendingMessages::PopPendingMessages | ( | size_t | maxCount | ) |
Definition at line 58 of file quorums_dkgsessionhandler.cpp.
| void llmq::CDKGPendingMessages::PushPendingMessage | ( | NodeId | from, |
| CDataStream & | vRecv, | ||
| int | invType | ||
| ) |
Definition at line 26 of file quorums_dkgsessionhandler.cpp.
|
inline |
Definition at line 56 of file quorums_dkgsessionhandler.h.
|
mutableprivate |
Definition at line 41 of file quorums_dkgsessionhandler.h.
|
private |
Definition at line 42 of file quorums_dkgsessionhandler.h.
|
private |
Definition at line 44 of file quorums_dkgsessionhandler.h.
|
private |
Definition at line 43 of file quorums_dkgsessionhandler.h.
|
private |
Definition at line 45 of file quorums_dkgsessionhandler.h.