Coverage Report

Created: 2026-05-06 07:53

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/bitcoin/src/ipc/libmultiprocess/include/mp/type-string.h
Line
Count
Source
1
// Copyright (c) The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef MP_PROXY_TYPE_STRING_H
6
#define MP_PROXY_TYPE_STRING_H
7
8
#include <mp/util.h>
9
10
namespace mp {
11
template <typename Value, typename Output>
12
void CustomBuildField(TypeList<std::string>,
13
    Priority<1>,
14
    InvokeContext& invoke_context,
15
    Value&& value,
16
    Output&& output)
17
20
{
18
20
    auto result = output.init(value.size());
19
20
    memcpy(result.begin(), value.data(), value.size());
20
20
}
void mp::CustomBuildField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, mp::StructField<mp::Accessor<mp::echo_fields::Echo, 17>, capnp::Request<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>>&>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, mp::StructField<mp::Accessor<mp::echo_fields::Echo, 17>, capnp::Request<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>>&)
Line
Count
Source
17
6
{
18
6
    auto result = output.init(value.size());
19
6
    memcpy(result.begin(), value.data(), value.size());
20
6
}
Unexecuted instantiation: void mp::CustomBuildField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, mp::StructField<mp::Accessor<mp::mining_fields::Debug, 18>, ipc::capnp::messages::Mining::CheckBlockResults::Builder>&>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, mp::StructField<mp::Accessor<mp::mining_fields::Debug, 18>, ipc::capnp::messages::Mining::CheckBlockResults::Builder>&)
Unexecuted instantiation: void mp::CustomBuildField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, mp::StructField<mp::Accessor<mp::mining_fields::Reason, 18>, ipc::capnp::messages::Mining::CheckBlockResults::Builder>&>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, mp::StructField<mp::Accessor<mp::mining_fields::Reason, 18>, ipc::capnp::messages::Mining::CheckBlockResults::Builder>&)
void mp::CustomBuildField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, mp::StructField<mp::Accessor<mp::rpc_fields::Uri, 17>, capnp::Request<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&, mp::StructField<mp::Accessor<mp::rpc_fields::Uri, 17>, capnp::Request<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>&&)
Line
Count
Source
17
4
{
18
4
    auto result = output.init(value.size());
19
4
    memcpy(result.begin(), value.data(), value.size());
20
4
}
void mp::CustomBuildField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, mp::StructField<mp::Accessor<mp::rpc_fields::User, 17>, capnp::Request<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&, mp::StructField<mp::Accessor<mp::rpc_fields::User, 17>, capnp::Request<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>&&)
Line
Count
Source
17
4
{
18
4
    auto result = output.init(value.size());
19
4
    memcpy(result.begin(), value.data(), value.size());
20
4
}
void mp::CustomBuildField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, mp::StructField<mp::Accessor<mp::echo_fields::Result, 18>, ipc::capnp::messages::Echo::EchoResults::Builder>&>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&, mp::StructField<mp::Accessor<mp::echo_fields::Result, 18>, ipc::capnp::messages::Echo::EchoResults::Builder>&)
Line
Count
Source
17
6
{
18
6
    auto result = output.init(value.size());
19
6
    memcpy(result.begin(), value.data(), value.size());
20
6
}
21
22
template <typename Input, typename ReadDest>
23
decltype(auto) CustomReadField(TypeList<std::string>,
24
    Priority<1>,
25
    InvokeContext& invoke_context,
26
    Input&& input,
27
    ReadDest&& read_dest)
28
20
{
29
20
    auto data = input.get();
30
20
    return read_dest.construct(CharCast(data.begin()), data.size());
31
20
}
decltype(auto) mp::CustomReadField<mp::StructField<mp::Accessor<mp::echo_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Echo::EchoResults>>, mp::ReadDestUpdate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::echo_fields::Result, 18>, capnp::Response<ipc::capnp::messages::Echo::EchoResults>>&&, mp::ReadDestUpdate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&&)
Line
Count
Source
28
6
{
29
6
    auto data = input.get();
30
6
    return read_dest.construct(CharCast(data.begin()), data.size());
31
6
}
Unexecuted instantiation: decltype(auto) mp::CustomReadField<mp::StructField<mp::Accessor<mp::mining_fields::Reason, 18>, capnp::Response<ipc::capnp::messages::Mining::CheckBlockResults>>, mp::ReadDestUpdate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Reason, 18>, capnp::Response<ipc::capnp::messages::Mining::CheckBlockResults>>&&, mp::ReadDestUpdate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&&)
Unexecuted instantiation: decltype(auto) mp::CustomReadField<mp::StructField<mp::Accessor<mp::mining_fields::Debug, 18>, capnp::Response<ipc::capnp::messages::Mining::CheckBlockResults>>, mp::ReadDestUpdate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::mining_fields::Debug, 18>, capnp::Response<ipc::capnp::messages::Mining::CheckBlockResults>>&&, mp::ReadDestUpdate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&&)
decltype(auto) mp::CustomReadField<mp::StructField<mp::Accessor<mp::rpc_fields::Uri, 17>, ipc::capnp::messages::Rpc::ExecuteRpcParams::Reader const>, mp::ReadDestEmplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, void mp::PassField<mp::Accessor<mp::rpc_fields::Uri, 17>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Rpc>, capnp::CallContext<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>, mp::ServerField<1, mp::Accessor<mp::rpc_fields::User, 17>, mp::ServerRet<mp::Accessor<mp::rpc_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, UniValue>(mp::Priority<0>, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Rpc>, capnp::CallContext<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>&, mp::ServerField<1, mp::Accessor<mp::rpc_fields::User, 17>, mp::ServerRet<mp::Accessor<mp::rpc_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&&, UniValue&&)::'lambda'(auto&&...)>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::rpc_fields::Uri, 17>, ipc::capnp::messages::Rpc::ExecuteRpcParams::Reader const>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&)
Line
Count
Source
28
4
{
29
4
    auto data = input.get();
30
4
    return read_dest.construct(CharCast(data.begin()), data.size());
31
4
}
decltype(auto) mp::CustomReadField<mp::StructField<mp::Accessor<mp::rpc_fields::User, 17>, ipc::capnp::messages::Rpc::ExecuteRpcParams::Reader const>, mp::ReadDestEmplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, void mp::PassField<mp::Accessor<mp::rpc_fields::User, 17>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Rpc>, capnp::CallContext<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>, mp::ServerRet<mp::Accessor<mp::rpc_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>, UniValue, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>(mp::Priority<0>, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Rpc>, capnp::CallContext<ipc::capnp::messages::Rpc::ExecuteRpcParams, ipc::capnp::messages::Rpc::ExecuteRpcResults>>&, mp::ServerRet<mp::Accessor<mp::rpc_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>&&, UniValue&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&)::'lambda'(auto&&...)>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::rpc_fields::User, 17>, ipc::capnp::messages::Rpc::ExecuteRpcParams::Reader const>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&&)
Line
Count
Source
28
4
{
29
4
    auto data = input.get();
30
4
    return read_dest.construct(CharCast(data.begin()), data.size());
31
4
}
decltype(auto) mp::CustomReadField<mp::StructField<mp::Accessor<mp::echo_fields::Echo, 17>, ipc::capnp::messages::Echo::EchoParams::Reader const>, mp::ReadDestEmplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, void mp::PassField<mp::Accessor<mp::echo_fields::Echo, 17>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Echo>, capnp::CallContext<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>>, mp::ServerRet<mp::Accessor<mp::echo_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>>(mp::Priority<0>, mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Echo>, capnp::CallContext<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>>&, mp::ServerRet<mp::Accessor<mp::echo_fields::Result, 18>, mp::ServerCall> const&, mp::TypeList<>&&)::'lambda'(auto&&...)>>(mp::TypeList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, mp::Priority<1>, mp::InvokeContext&, mp::StructField<mp::Accessor<mp::echo_fields::Echo, 17>, ipc::capnp::messages::Echo::EchoParams::Reader const>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
Line
Count
Source
28
6
{
29
6
    auto data = input.get();
30
6
    return read_dest.construct(CharCast(data.begin()), data.size());
31
6
}
32
} // namespace mp
33
34
#endif // MP_PROXY_TYPE_STRING_H