Bitcoin Core 22.99.0
P2P Digital Currency
netmessagemaker.h
Go to the documentation of this file.
1// Copyright (c) 2009-2010 Satoshi Nakamoto
2// Copyright (c) 2009-2020 The Bitcoin Core developers
3// Distributed under the MIT software license, see the accompanying
4// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6#ifndef BITCOIN_NETMESSAGEMAKER_H
7#define BITCOIN_NETMESSAGEMAKER_H
8
9#include <net.h>
10#include <serialize.h>
11
13{
14public:
15 explicit CNetMsgMaker(int nVersionIn) : nVersion(nVersionIn){}
16
17 template <typename... Args>
18 CSerializedNetMsg Make(int nFlags, std::string msg_type, Args&&... args) const
19 {
21 msg.m_type = std::move(msg_type);
22 CVectorWriter{ SER_NETWORK, nFlags | nVersion, msg.data, 0, std::forward<Args>(args)... };
23 return msg;
24 }
25
26 template <typename... Args>
27 CSerializedNetMsg Make(std::string msg_type, Args&&... args) const
28 {
29 return Make(0, std::move(msg_type), std::forward<Args>(args)...);
30 }
31
32private:
33 const int nVersion;
34};
35
36#endif // BITCOIN_NETMESSAGEMAKER_H
const int nVersion
CNetMsgMaker(int nVersionIn)
CSerializedNetMsg Make(int nFlags, std::string msg_type, Args &&... args) const
CSerializedNetMsg Make(std::string msg_type, Args &&... args) const
@ SER_NETWORK
Definition: serialize.h:138
std::string m_type
Definition: net.h:110
std::vector< unsigned char > data
Definition: net.h:109