netmessagemaker.h raw
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-present 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
12 namespace NetMsg {
13 template <typename... Args>
14 CSerializedNetMsg Make(std::string msg_type, Args&&... args)
15 {
16 CSerializedNetMsg msg;
17 msg.m_type = std::move(msg_type);
18 VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19 return msg;
20 }
21 } // namespace NetMsg
22
23 #endif // BITCOIN_NETMESSAGEMAKER_H
24