Fabcoin Core  0.16.2
P2P Digital Currency
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ServerInterface< I > Class Template Referenceabstract

#include <ModularServer.h>

Classes

struct  RPCModule
 

Public Types

using MethodPointer = AbstractMethodPointer< I >
 
using NotificationPointer = AbstractNotificationPointer< I >
 
using MethodBinding = std::tuple< jsonrpc::Procedure, AbstractMethodPointer< I >>
 
using NotificationBinding = std::tuple< jsonrpc::Procedure, AbstractNotificationPointer< I >>
 
using Methods = std::vector< MethodBinding >
 
using Notifications = std::vector< NotificationBinding >
 
using RPCModules = std::vector< RPCModule >
 

Public Member Functions

virtual ~ServerInterface ()
 
Methods const & methods () const
 
Notifications const & notifications () const
 
virtual RPCModules implementedModules () const =0
 

Protected Member Functions

void bindAndAddMethod (jsonrpc::Procedure const &_proc, MethodPointer _pointer)
 
void bindAndAddNotification (jsonrpc::Procedure const &_proc, NotificationPointer _pointer)
 

Private Attributes

Methods m_methods
 
Notifications m_notifications
 

Detailed Description

template<class I>
class ServerInterface< I >

Definition at line 39 of file ModularServer.h.

Member Typedef Documentation

template<class I>
using ServerInterface< I >::MethodBinding = std::tuple<jsonrpc::Procedure, AbstractMethodPointer<I>>

Definition at line 45 of file ModularServer.h.

template<class I>
using ServerInterface< I >::MethodPointer = AbstractMethodPointer<I>

Definition at line 42 of file ModularServer.h.

template<class I>
using ServerInterface< I >::Methods = std::vector<MethodBinding>

Definition at line 47 of file ModularServer.h.

template<class I>
using ServerInterface< I >::NotificationBinding = std::tuple<jsonrpc::Procedure, AbstractNotificationPointer<I>>

Definition at line 46 of file ModularServer.h.

Definition at line 43 of file ModularServer.h.

template<class I>
using ServerInterface< I >::Notifications = std::vector<NotificationBinding>

Definition at line 48 of file ModularServer.h.

template<class I>
using ServerInterface< I >::RPCModules = std::vector<RPCModule>

Definition at line 50 of file ModularServer.h.

Constructor & Destructor Documentation

template<class I>
virtual ServerInterface< I >::~ServerInterface ( )
inlinevirtual

Definition at line 52 of file ModularServer.h.

Member Function Documentation

template<class I>
void ServerInterface< I >::bindAndAddMethod ( jsonrpc::Procedure const &  _proc,
MethodPointer  _pointer 
)
inlineprotected

Definition at line 59 of file ModularServer.h.

template<class I>
void ServerInterface< I >::bindAndAddNotification ( jsonrpc::Procedure const &  _proc,
NotificationPointer  _pointer 
)
inlineprotected

Definition at line 60 of file ModularServer.h.

template<class I>
virtual RPCModules ServerInterface< I >::implementedModules ( ) const
pure virtual
Returns
which interfaces (eth, admin, db, ...) this class implements in which version.

Implemented in dev::rpc::Eth, dev::rpc::Whisper, dev::rpc::LevelDB, dev::rpc::Test, dev::rpc::Net, dev::rpc::MemoryDB, dev::rpc::AdminEth, dev::rpc::Debug, dev::rpc::AdminUtils, dev::rpc::Personal, dev::rpc::AdminNet, and dev::rpc::Web3.

Here is the caller graph for this function:

template<class I>
Methods const& ServerInterface< I >::methods ( ) const
inline

Definition at line 53 of file ModularServer.h.

template<class I>
Notifications const& ServerInterface< I >::notifications ( ) const
inline

Definition at line 54 of file ModularServer.h.

Member Data Documentation

template<class I>
Methods ServerInterface< I >::m_methods
private

Definition at line 63 of file ModularServer.h.

template<class I>
Notifications ServerInterface< I >::m_notifications
private

Definition at line 64 of file ModularServer.h.


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