Bitcoin Core 30.99.0
P2P Digital Currency
Public Types | Public Member Functions | Public Attributes | List of all members
mp::ServerInvokeContext< ProxyServer, CallContext_ > Struct Template Reference

#include <proxy-io.h>

Inheritance diagram for mp::ServerInvokeContext< ProxyServer, CallContext_ >:
[legend]
Collaboration diagram for mp::ServerInvokeContext< ProxyServer, CallContext_ >:
[legend]

Public Types

using CallContext = CallContext_
 

Public Member Functions

 ServerInvokeContext (ProxyServer &proxy_server, CallContext &call_context, int req)
 

Public Attributes

ProxyServerproxy_server
 
CallContextcall_context
 
int req
 
Lockcancel_lock {nullptr}
 For IPC methods that execute asynchronously, not on the event-loop thread: lock preventing the event-loop thread from freeing the params or results structs if the request is canceled while the worker thread is reading params (call_context.getParams()) or writing results (call_context.getResults()). More...
 
bool request_canceled {false}
 For IPC methods that execute asynchronously, not on the event-loop thread, this is set to true if the IPC call was canceled by the client or canceled by a disconnection. More...
 
- Public Attributes inherited from mp::InvokeContext
Connectionconnection
 

Detailed Description

template<typename ProxyServer, typename CallContext_>
struct mp::ServerInvokeContext< ProxyServer, CallContext_ >

Definition at line 44 of file proxy-io.h.

Member Typedef Documentation

◆ CallContext

template<typename ProxyServer , typename CallContext_ >
using mp::ServerInvokeContext< ProxyServer, CallContext_ >::CallContext = CallContext_

Definition at line 46 of file proxy-io.h.

Constructor & Destructor Documentation

◆ ServerInvokeContext()

template<typename ProxyServer , typename CallContext_ >
mp::ServerInvokeContext< ProxyServer, CallContext_ >::ServerInvokeContext ( ProxyServer proxy_server,
CallContext call_context,
int  req 
)
inline

Definition at line 65 of file proxy-io.h.

Member Data Documentation

◆ call_context

template<typename ProxyServer , typename CallContext_ >
CallContext& mp::ServerInvokeContext< ProxyServer, CallContext_ >::call_context

Definition at line 49 of file proxy-io.h.

◆ cancel_lock

template<typename ProxyServer , typename CallContext_ >
Lock* mp::ServerInvokeContext< ProxyServer, CallContext_ >::cancel_lock {nullptr}

For IPC methods that execute asynchronously, not on the event-loop thread: lock preventing the event-loop thread from freeing the params or results structs if the request is canceled while the worker thread is reading params (call_context.getParams()) or writing results (call_context.getResults()).

Definition at line 56 of file proxy-io.h.

◆ proxy_server

template<typename ProxyServer , typename CallContext_ >
ProxyServer& mp::ServerInvokeContext< ProxyServer, CallContext_ >::proxy_server

Definition at line 48 of file proxy-io.h.

◆ req

template<typename ProxyServer , typename CallContext_ >
int mp::ServerInvokeContext< ProxyServer, CallContext_ >::req

Definition at line 50 of file proxy-io.h.

◆ request_canceled

template<typename ProxyServer , typename CallContext_ >
bool mp::ServerInvokeContext< ProxyServer, CallContext_ >::request_canceled {false}

For IPC methods that execute asynchronously, not on the event-loop thread, this is set to true if the IPC call was canceled by the client or canceled by a disconnection.

If the call runs on the event-loop thread, it can't be canceled. This should be accessed with cancel_lock held if it is not null, since in the asynchronous case it is accessed from multiple threads.

Definition at line 63 of file proxy-io.h.


The documentation for this struct was generated from the following file: