MIRA
Public Member Functions | Protected Attributes | List of all members
RPCFuture< JSONRPCResponse > Class Template Reference

This is a specialization for JSON RPC calls. More...

#include <rpc/RPCFuture.h>

Inheritance diagram for RPCFuture< JSONRPCResponse >:
Inheritance graph
[legend]

Public Member Functions

 RPCFuture ()
 
 RPCFuture (boost::unique_future< JSONRPCResponse > other, AbstractRPCClient *client, const std::string &callId)
 internally used by RPCClient More...
 
 RPCFuture (RPCFuture &&other) noexcept
 move constructor More...
 
RPCFutureoperator= (RPCFuture &&other) noexcept
 move assignment operator More...
 
json::Value get (bool throwXRPC=true, bool recursive=true)
 Waits until the call has finished and will raise an exception if the call has failed. More...
 
json::Value getAnswer ()
 Waits until the call has finished and returns the complete json rpc answer containing call id, result or in case of an error the error message and code. More...
 
bool hasException ()
 
const std::string & callId ()
 query call ID More...
 
bool isReady () const
 Checks to see if the result of the RPC call associated with this future is set. More...
 
bool hasException () const
 Returns true if the RPC call associated with this future has finished with an exception rather than a return value. More...
 
bool hasValue () const
 Returns true if the RPC call associated with this future has finished with a return value value rather than an exception. More...
 
void wait () const
 Waits and blocks the current thread until the result of the associated RPC call is ready. More...
 
bool timedWait (Duration const &relTime) const
 Waits and blocks the current thread until the result of the associated RPC call is ready, or the time duration specified by waitDuration has elapsed. More...
 
bool timedWaitUntil (boost::system_time const &absTime) const
 Waits and blocks the current thread until the result of the associated RPC call is ready, or the time point specified by waitDuration has passed. More...
 
void swap (RPCFutureCommon< JSONRPCResponse > &other)
 Swaps ownership of the asynchronous results associated with other and *this. More...
 

Protected Attributes

AbstractRPCClientmClient
 
std::string mCallId
 
boost::unique_future< JSONRPCResponsemFuture
 

Detailed Description

template<>
class mira::RPCFuture< JSONRPCResponse >

This is a specialization for JSON RPC calls.

See also
RPCFuture, RPCFuture<R>

Constructor & Destructor Documentation

◆ RPCFuture() [1/3]

RPCFuture ( )
inline

◆ RPCFuture() [2/3]

RPCFuture ( boost::unique_future< JSONRPCResponse other,
AbstractRPCClient client,
const std::string &  callId 
)
inline

internally used by RPCClient

◆ RPCFuture() [3/3]

RPCFuture ( RPCFuture< JSONRPCResponse > &&  other)
inlinenoexcept

move constructor

Member Function Documentation

◆ operator=()

RPCFuture& operator= ( RPCFuture< JSONRPCResponse > &&  other)
inlinenoexcept

move assignment operator

◆ get()

json::Value get ( bool  throwXRPC = true,
bool  recursive = true 
)
inline

Waits until the call has finished and will raise an exception if the call has failed.

Parameters
[in]throwXRPCthrow XRPC instead of original exception that occurred in the called function (default = true, for backward compatibility)
[in]recursiverecurse to innermost exception (for nested XRPC, only if throwXRPC=false)
Note
This method will block until the call has finished.
This method will throw if an exception occurred on the server side while processing the call.
See also
wait(), timedWait(), hasValue(), hasException()

◆ getAnswer()

json::Value getAnswer ( )
inline

Waits until the call has finished and returns the complete json rpc answer containing call id, result or in case of an error the error message and code.

Note
This method will block until the call has finished.
See also
wait(), timedWait(), hasValue()

◆ hasException() [1/2]

bool hasException ( )
inline

◆ callId()

const std::string& callId ( )
inlineinherited

query call ID

◆ isReady()

bool isReady ( ) const
inlineinherited

Checks to see if the result of the RPC call associated with this future is set.

◆ hasException() [2/2]

bool hasException ( ) const
inlineinherited

Returns true if the RPC call associated with this future has finished with an exception rather than a return value.

◆ hasValue()

bool hasValue ( ) const
inlineinherited

Returns true if the RPC call associated with this future has finished with a return value value rather than an exception.

◆ wait()

void wait ( ) const
inlineinherited

Waits and blocks the current thread until the result of the associated RPC call is ready.

This is an interruption point.

◆ timedWait()

bool timedWait ( Duration const &  relTime) const
inlineinherited

Waits and blocks the current thread until the result of the associated RPC call is ready, or the time duration specified by waitDuration has elapsed.

This is an interruption point.

Returns
false if the call is returning because the time specified was reached, true otherwise.

◆ timedWaitUntil()

bool timedWaitUntil ( boost::system_time const &  absTime) const
inlineinherited

Waits and blocks the current thread until the result of the associated RPC call is ready, or the time point specified by waitDuration has passed.

This is an interruption point.

Returns
false if the call is returning because the time specified was reached, true otherwise.

◆ swap()

void swap ( RPCFutureCommon< JSONRPCResponse > &  other)
inlineinherited

Swaps ownership of the asynchronous results associated with other and *this.

Member Data Documentation

◆ mClient

AbstractRPCClient* mClient
protectedinherited

◆ mCallId

std::string mCallId
protectedinherited

◆ mFuture

boost::unique_future<JSONRPCResponse > mFuture
protectedinherited

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