[bench] Avoid function call arguments which are pointers to uninitialized values
[bitcoinplatinum.git] / src / netmessagemaker.h
blob8e8a6e4a026ee824795e2af21c3eec1c7e761299
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2016 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.
6 #ifndef BITCOIN_NETMESSAGEMAKER_H
7 #define BITCOIN_NETMESSAGEMAKER_H
9 #include "net.h"
10 #include "serialize.h"
12 class CNetMsgMaker
14 public:
15 CNetMsgMaker(int nVersionIn) : nVersion(nVersionIn){}
17 template <typename... Args>
18 CSerializedNetMsg Make(int nFlags, std::string sCommand, Args&&... args) const
20 CSerializedNetMsg msg;
21 msg.command = std::move(sCommand);
22 CVectorWriter{ SER_NETWORK, nFlags | nVersion, msg.data, 0, std::forward<Args>(args)... };
23 return msg;
26 template <typename... Args>
27 CSerializedNetMsg Make(std::string sCommand, Args&&... args) const
29 return Make(0, std::move(sCommand), std::forward<Args>(args)...);
32 private:
33 const int nVersion;
36 #endif // BITCOIN_NETMESSAGEMAKER_H