Fabcoin Core  0.16.2
P2P Digital Currency
Public Types | Public Member Functions | Private Attributes | List of all members
ModularServer< I, Is... > Class Template Reference

#include <ModularServer.h>

Inheritance diagram for ModularServer< I, Is... >:
[legend]
Collaboration diagram for ModularServer< I, Is... >:
[legend]

Public Types

using MethodPointer = AbstractMethodPointer< I >
 
using NotificationPointer = AbstractNotificationPointer< I >
 

Public Member Functions

 ModularServer (I *_i, Is *..._is)
 
virtual void HandleMethodCall (jsonrpc::Procedure &_proc, Json::Value const &_input, Json::Value &_output) override
 
virtual void HandleNotificationCall (jsonrpc::Procedure &_proc, Json::Value const &_input) override
 
- Public Member Functions inherited from ModularServer< Is... >
 ModularServer ()
 
virtual void modules (const Json::Value &request, Json::Value &response)
 
virtual ~ModularServer ()
 
virtual void StartListening ()
 
virtual void StopListening ()
 
unsigned addConnector (jsonrpc::AbstractServerConnector *_connector)
 server takes ownership of the connector More...
 
jsonrpc::AbstractServerConnector * connector (unsigned _i) const
 

Private Attributes

std::unique_ptr< Im_interface
 
std::map< std::string, MethodPointerm_methods
 
std::map< std::string, NotificationPointerm_notifications
 

Additional Inherited Members

- Protected Attributes inherited from ModularServer< Is... >
std::vector< std::unique_ptr< jsonrpc::AbstractServerConnector > > m_connectors
 
std::unique_ptr< jsonrpc::IProtocolHandler > m_handler
 
Json::Value m_implementedModules
 Mapping for implemented modules, to be filled by subclasses during construction. More...
 

Detailed Description

template<class I, class... Is>
class ModularServer< I, Is... >

Definition at line 130 of file ModularServer.h.

Member Typedef Documentation

template<class I , class... Is>
using ModularServer< I, Is... >::MethodPointer = AbstractMethodPointer<I>

Definition at line 133 of file ModularServer.h.

template<class I , class... Is>
using ModularServer< I, Is... >::NotificationPointer = AbstractNotificationPointer<I>

Definition at line 134 of file ModularServer.h.

Constructor & Destructor Documentation

template<class I , class... Is>
ModularServer< I, Is... >::ModularServer ( I _i,
Is *...  _is 
)
inline

Definition at line 136 of file ModularServer.h.

Member Function Documentation

template<class I , class... Is>
virtual void ModularServer< I, Is... >::HandleMethodCall ( jsonrpc::Procedure &  _proc,
Json::Value const &  _input,
Json::Value &  _output 
)
inlineoverridevirtual

Reimplemented from ModularServer< Is... >.

Definition at line 156 of file ModularServer.h.

Here is the call graph for this function:

template<class I , class... Is>
virtual void ModularServer< I, Is... >::HandleNotificationCall ( jsonrpc::Procedure &  _proc,
Json::Value const &  _input 
)
inlineoverridevirtual

Reimplemented from ModularServer< Is... >.

Definition at line 165 of file ModularServer.h.

Here is the call graph for this function:

Member Data Documentation

template<class I , class... Is>
std::unique_ptr<I> ModularServer< I, Is... >::m_interface
private

Definition at line 175 of file ModularServer.h.

template<class I , class... Is>
std::map<std::string, MethodPointer> ModularServer< I, Is... >::m_methods
private

Definition at line 176 of file ModularServer.h.

template<class I , class... Is>
std::map<std::string, NotificationPointer> ModularServer< I, Is... >::m_notifications
private

Definition at line 177 of file ModularServer.h.


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