Coverage Report

Created: 2026-05-30 09:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/bitcoin/src/netmessagemaker.h
Line
Count
Source
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
165k
    {
16
165k
        CSerializedNetMsg msg;
17
165k
        msg.m_type = std::move(msg_type);
18
165k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
165k
        return msg;
20
165k
    }
CSerializedNetMsg NetMsg::Make<int const&, unsigned long const&, long const&, unsigned long const&, ParamsWrapper<CAddress::SerParams, CService const>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int const&, unsigned long const&, long const&, unsigned long const&, ParamsWrapper<CAddress::SerParams, CService const>&&)
Line
Count
Source
15
1
    {
16
1
        CSerializedNetMsg msg;
17
1
        msg.m_type = std::move(msg_type);
18
1
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
1
        return msg;
20
1
    }
CSerializedNetMsg NetMsg::Make<>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Line
Count
Source
15
5.79k
    {
16
5.79k
        CSerializedNetMsg msg;
17
5.79k
        msg.m_type = std::move(msg_type);
18
5.79k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
5.79k
        return msg;
20
5.79k
    }
CSerializedNetMsg NetMsg::Make<int&, Wrapper<CustomUintFormatter<8, false>, ServiceFlags&>, long, long, ParamsWrapper<CNetAddr::SerParams, CService>, long, ParamsWrapper<CNetAddr::SerParams, CService>, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, bool&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int&, Wrapper<CustomUintFormatter<8, false>, ServiceFlags&>&&, long&&, long&&, ParamsWrapper<CNetAddr::SerParams, CService>&&, long&&, ParamsWrapper<CNetAddr::SerParams, CService>&&, unsigned long&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&, int&&, bool&)
Line
Count
Source
15
2
    {
16
2
        CSerializedNetMsg msg;
17
2
        msg.m_type = std::move(msg_type);
18
2
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
2
        return msg;
20
2
    }
CSerializedNetMsg NetMsg::Make<bool, unsigned long const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool&&, unsigned long const&)
Line
Count
Source
15
1.82k
    {
16
1.82k
        CSerializedNetMsg msg;
17
1.82k
        msg.m_type = std::move(msg_type);
18
1.82k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
1.82k
        return msg;
20
1.82k
    }
CSerializedNetMsg NetMsg::Make<CBlockHeaderAndShortTxIDs const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, CBlockHeaderAndShortTxIDs const&)
Line
Count
Source
15
16.4k
    {
16
16.4k
        CSerializedNetMsg msg;
17
16.4k
        msg.m_type = std::move(msg_type);
18
16.4k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
16.4k
        return msg;
20
16.4k
    }
CSerializedNetMsg NetMsg::Make<std::vector<CInv, std::allocator<CInv>>&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<CInv, std::allocator<CInv>>&)
Line
Count
Source
15
65.2k
    {
16
65.2k
        CSerializedNetMsg msg;
17
65.2k
        msg.m_type = std::move(msg_type);
18
65.2k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
65.2k
        return msg;
20
65.2k
    }
CSerializedNetMsg NetMsg::Make<ParamsWrapper<TransactionSerParams, CTransaction const>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, ParamsWrapper<TransactionSerParams, CTransaction const>&&)
Line
Count
Source
15
13.0k
    {
16
13.0k
        CSerializedNetMsg msg;
17
13.0k
        msg.m_type = std::move(msg_type);
18
13.0k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
13.0k
        return msg;
20
13.0k
    }
CSerializedNetMsg NetMsg::Make<std::span<std::byte const, 18446744073709551615ul>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::span<std::byte const, 18446744073709551615ul>&&)
Line
Count
Source
15
27.8k
    {
16
27.8k
        CSerializedNetMsg msg;
17
27.8k
        msg.m_type = std::move(msg_type);
18
27.8k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
27.8k
        return msg;
20
27.8k
    }
CSerializedNetMsg NetMsg::Make<ParamsWrapper<TransactionSerParams, CBlock const>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, ParamsWrapper<TransactionSerParams, CBlock const>&&)
Line
Count
Source
15
8.24k
    {
16
8.24k
        CSerializedNetMsg msg;
17
8.24k
        msg.m_type = std::move(msg_type);
18
8.24k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
8.24k
        return msg;
20
8.24k
    }
CSerializedNetMsg NetMsg::Make<CMerkleBlock&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, CMerkleBlock&)
Line
Count
Source
15
4
    {
16
4
        CSerializedNetMsg msg;
17
4
        msg.m_type = std::move(msg_type);
18
4
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
4
        return msg;
20
4
    }
CSerializedNetMsg NetMsg::Make<CBlockHeaderAndShortTxIDs&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, CBlockHeaderAndShortTxIDs&)
Line
Count
Source
15
2.49k
    {
16
2.49k
        CSerializedNetMsg msg;
17
2.49k
        msg.m_type = std::move(msg_type);
18
2.49k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
2.49k
        return msg;
20
2.49k
    }
CSerializedNetMsg NetMsg::Make<int const&, unsigned long&, long&, unsigned long&, ParamsWrapper<CNetAddr::SerParams, CService>, unsigned long&, ParamsWrapper<CNetAddr::SerParams, CService>, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int&, bool&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int const&, unsigned long&, long&, unsigned long&, ParamsWrapper<CNetAddr::SerParams, CService>&&, unsigned long&, ParamsWrapper<CNetAddr::SerParams, CService>&&, unsigned long&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, int&, bool&)
Line
Count
Source
15
1.55k
    {
16
1.55k
        CSerializedNetMsg msg;
17
1.55k
        msg.m_type = std::move(msg_type);
18
1.55k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
1.55k
        return msg;
20
1.55k
    }
CSerializedNetMsg NetMsg::Make<unsigned int const&, unsigned long const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, unsigned int const&, unsigned long const&)
Line
Count
Source
15
8
    {
16
8
        CSerializedNetMsg msg;
17
8
        msg.m_type = std::move(msg_type);
18
8
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
8
        return msg;
20
8
    }
Unexecuted instantiation: CSerializedNetMsg NetMsg::Make<std::array<std::byte, 168ul> const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::array<std::byte, 168ul> const&)
CSerializedNetMsg NetMsg::Make<std::vector<CInv, std::allocator<CInv>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<CInv, std::allocator<CInv>>&&)
Line
Count
Source
15
10
    {
16
10
        CSerializedNetMsg msg;
17
10
        msg.m_type = std::move(msg_type);
18
10
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
10
        return msg;
20
10
    }
CSerializedNetMsg NetMsg::Make<CBlockLocator const&, uint256>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, CBlockLocator const&, uint256&&)
Line
Count
Source
15
3.33k
    {
16
3.33k
        CSerializedNetMsg msg;
17
3.33k
        msg.m_type = std::move(msg_type);
18
3.33k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
3.33k
        return msg;
20
3.33k
    }
CSerializedNetMsg NetMsg::Make<BlockTransactions&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, BlockTransactions&)
Line
Count
Source
15
613
    {
16
613
        CSerializedNetMsg msg;
17
613
        msg.m_type = std::move(msg_type);
18
613
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
613
        return msg;
20
613
    }
CSerializedNetMsg NetMsg::Make<std::vector<CBlockHeader, std::allocator<CBlockHeader>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<CBlockHeader, std::allocator<CBlockHeader>>&&)
Line
Count
Source
15
9
    {
16
9
        CSerializedNetMsg msg;
17
9
        msg.m_type = std::move(msg_type);
18
9
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
9
        return msg;
20
9
    }
CSerializedNetMsg NetMsg::Make<ParamsWrapper<TransactionSerParams, std::vector<CBlock, std::allocator<CBlock>>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, ParamsWrapper<TransactionSerParams, std::vector<CBlock, std::allocator<CBlock>>>&&)
Line
Count
Source
15
6.32k
    {
16
6.32k
        CSerializedNetMsg msg;
17
6.32k
        msg.m_type = std::move(msg_type);
18
6.32k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
6.32k
        return msg;
20
6.32k
    }
CSerializedNetMsg NetMsg::Make<BlockTransactionsRequest&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, BlockTransactionsRequest&)
Line
Count
Source
15
601
    {
16
601
        CSerializedNetMsg msg;
17
601
        msg.m_type = std::move(msg_type);
18
601
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
601
        return msg;
20
601
    }
CSerializedNetMsg NetMsg::Make<unsigned long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, unsigned long&)
Line
Count
Source
15
10.2k
    {
16
10.2k
        CSerializedNetMsg msg;
17
10.2k
        msg.m_type = std::move(msg_type);
18
10.2k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
10.2k
        return msg;
20
10.2k
    }
CSerializedNetMsg NetMsg::Make<BlockFilter const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, BlockFilter const&)
Line
Count
Source
15
11
    {
16
11
        CSerializedNetMsg msg;
17
11
        msg.m_type = std::move(msg_type);
18
11
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
11
        return msg;
20
11
    }
CSerializedNetMsg NetMsg::Make<unsigned char&, uint256, uint256&, std::vector<uint256, std::allocator<uint256>>&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, unsigned char&, uint256&&, uint256&, std::vector<uint256, std::allocator<uint256>>&)
Line
Count
Source
15
2
    {
16
2
        CSerializedNetMsg msg;
17
2
        msg.m_type = std::move(msg_type);
18
2
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
2
        return msg;
20
2
    }
CSerializedNetMsg NetMsg::Make<unsigned char&, uint256, std::vector<uint256, std::allocator<uint256>>&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, unsigned char&, uint256&&, std::vector<uint256, std::allocator<uint256>>&)
Line
Count
Source
15
3
    {
16
3
        CSerializedNetMsg msg;
17
3
        msg.m_type = std::move(msg_type);
18
3
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
3
        return msg;
20
3
    }
CSerializedNetMsg NetMsg::Make<ParamsWrapper<CAddress::SerParams, std::vector<CAddress, std::allocator<CAddress>>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, ParamsWrapper<CAddress::SerParams, std::vector<CAddress, std::allocator<CAddress>>>&&)
Line
Count
Source
15
130
    {
16
130
        CSerializedNetMsg msg;
17
130
        msg.m_type = std::move(msg_type);
18
130
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
130
        return msg;
20
130
    }
CSerializedNetMsg NetMsg::Make<long&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, long&)
Line
Count
Source
15
1.67k
    {
16
1.67k
        CSerializedNetMsg msg;
17
1.67k
        msg.m_type = std::move(msg_type);
18
1.67k
        VectorWriter{msg.data, 0, std::forward<Args>(args)...};
19
1.67k
        return msg;
20
1.67k
    }
21
} // namespace NetMsg
22
23
#endif // BITCOIN_NETMESSAGEMAKER_H