Bitcoin Core  31.0.0
P2P Digital Currency
type-threadmap.h
Go to the documentation of this file.
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_THREADMAP_H
6 #define MP_PROXY_TYPE_THREADMAP_H
7 
8 #include <mp/util.h>
9 
10 namespace mp {
11 template <>
12 struct ProxyServer<ThreadMap> final : public virtual ThreadMap::Server
13 {
14 public:
15  ProxyServer(Connection& connection);
16  kj::Promise<void> makeThread(MakeThreadContext context) override;
18 };
19 
20 template <typename Output>
23  InvokeContext& invoke_context,
24  Output&& output,
25  typename std::enable_if<std::is_same<decltype(output.get()), ThreadMap::Client>::value>::type* enable = nullptr)
26 {
27  output.set(kj::heap<ProxyServer<ThreadMap>>(invoke_context.connection));
28 }
29 
30 template <typename Input>
31 decltype(auto) CustomReadField(TypeList<>,
32  Priority<1>,
33  InvokeContext& invoke_context,
34  Input&& input,
35  typename std::enable_if<std::is_same<decltype(input.get()), ThreadMap::Client>::value>::type* enable = nullptr)
36 {
37  invoke_context.connection.m_thread_map = input.get();
38 }
39 } // namespace mp
40 
41 #endif // MP_PROXY_TYPE_THREADMAP_H
Function parameter type for prioritizing overloaded function calls that would otherwise be ambiguous...
Definition: util.h:108
Object holding network & rpc state associated with either an incoming server connection, or an outgoing client connection.
Definition: proxy-io.h:422
Definition: common.h:29
Generic utility functions used by capnp code.
Definition: util.h:32
Functions to serialize / deserialize common bitcoin types.
Definition: common-types.h:57
Mapping from capnp interface type to proxy server implementation (specializations are generated by pr...
Definition: proxy.h:28
Connection & connection
Definition: proxy-io.h:31
decltype(auto) CustomReadField(TypeList< LocalType >, Priority< 1 >, InvokeContext &invoke_context, Input &&input, ReadDest &&read_dest) requires Unserializable< LocalType
Overload multiprocess library&#39;s CustomReadField hook to allow any object with an Unserialize method t...
Definition: common-types.h:100
void CustomBuildField(TypeList< LocalType >, Priority< 1 >, InvokeContext &invoke_context, Value &&value, Output &&output) requires Serializable< LocalType
Overload multiprocess library&#39;s CustomBuildField hook to allow any serializable object to be stored i...