libiqxmlrpc  0.12.4
 All Classes Namespaces Files Functions Typedefs Enumerations
Public Member Functions | Protected Member Functions | List of all members
iqxmlrpc::Interceptor Class Referenceabstract

Interceptor's base class. More...

#include <method.h>

Inheritance diagram for iqxmlrpc::Interceptor:

Public Member Functions

void nest (Interceptor *ic)
 
virtual void process (Method *, const Param_list &, Value &)=0
 User defined interceptor's code goes here. More...
 

Protected Member Functions

void yield (Method *m, const Param_list &params, Value &result)
 Yield the control to specific XML-RPC method. More...
 

Detailed Description

Interceptor's base class.

One can use interceptors in order to wrap actual XML-RPC calls on server side with code that supports particular aspect. E.g. logging or catch/re-throw internal exceptions, etc.

Interceptors are stacked inside of server and are being called in order of LIFO.

Also note that interceptors are shared between method that executed in the same time. So the synchronization of internal state of user-defined interceptor is up to it's creator.

Member Function Documentation

virtual void iqxmlrpc::Interceptor::process ( Method ,
const Param_list ,
Value  
)
pure virtual

User defined interceptor's code goes here.

This method is called by library as soon it resolved target XML-RPC method on a server side. This method must call actual XML-RPC method (along with other stacked interceptors) via calling yield() member

Referenced by iqxmlrpc::Method::process_execution().

void iqxmlrpc::Interceptor::yield ( Method m,
const Param_list params,
Value result 
)
inlineprotected

Yield the control to specific XML-RPC method.

This function must be called by process() method function unless it meaningfuly decided not to call actual server method.

References iqxmlrpc::Method::process_execution().


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