Savarese Software Research Corporation
ws/protocol.h File Reference

This header defines the WebService messaging protocol. More...

Include dependency graph for ws/protocol.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  protocol::MessageWebService< _id >
struct  ws::WebServiceCall
struct  ws::WebServiceProtocol
struct  ws::WebServiceProtocol::MessageCallBase< type >
class  ws::WebServiceProtocol::MessageResponse
struct  ws::WebServiceProtocol::MessageDeliverEvent
struct  ws::WebServiceProtocol::MessageDeliverEvents
struct  ws::WebServiceCallContextOneWay
struct  ws::WebServiceCallContextTwoWay

Namespaces

namespace  protocol
 

The protocol namespace contains classes that define the framework for implementing and accessing WSPR service protocols.


namespace  ws
 

The ws namespace contains the class framework for building WSPR services that handle HTTP requests.


Defines

#define WSPR_WS_TYPE(service_base_str)   "wspr.ws." service_base_str
 Requires string literal argument.
#define __WS_DEFINE_CALL_PARAM(r, data, arg)   BOOST_PP_TUPLE_ELEM(2, 0, arg) BOOST_PP_TUPLE_ELEM(2, 1, arg);
#define __WS_INIT_CALL_PARAM(r, data, i, arg)   BOOST_PP_COMMA_IF(i) BOOST_PP_TUPLE_ELEM(2, 1, arg)(call . get_parameter<BOOST_PP_TUPLE_ELEM(2, 0, arg)>(BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(2, 1, arg))))
#define __WS_CALL_PARAM(name, param_sequence)
#define WS_CALL_PARAM(name, param_sequence)

Functions

template<>
std::string protocol::service_type< WebService > ()
std::string protocol::service_type_ws ()
Properties & ws::set_web_event_header (Properties &properties, const string &protocol, const string &call)
Properties & ws::set_web_event_header (Properties &properties, const string &protocol, const string &call, const gsid_type gsid)
properties_unique_ptr ws::web_event (const string &protocol, const string &call)
properties_unique_ptr ws::web_event (const string &protocol, const string &call, const gsid_type gsid)
Properties & ws::web_event_indirect (Properties &properties, const string &protocol, const string &call)
Properties & ws::web_event_indirect (Properties &properties, const string &protocol, const string &call, const gsid_type gsid)
Properties & ws::web_event_direct (Properties &properties, const string &protocol, const string &call)
Properties & ws::web_event_direct (Properties &properties, const string &protocol, const string &call, const gsid_type gsid)
template<typename ws_type , typename param_type >
void ws::ws_call (ws_type *impl, void(ws_type::*call_handler)(const WebServiceCall &, const param_type &, const MessageInfo &), const WebServiceCall &call, const MessageInfo &msginfo)

Detailed Description

This header defines the WebService messaging protocol.

Definition in file ws/protocol.h.


Define Documentation

#define __WS_CALL_PARAM (   name,
  param_sequence 
)
Value:
BOOST_PP_SEQ_FOR_EACH(__WS_DEFINE_CALL_PARAM, _, param_sequence)  \
      name (const NS_SSRC_WSPR_WS::WebServiceCall & call) SSRC_DECL_THROW(std::bad_cast) : \
      BOOST_PP_SEQ_FOR_EACH_I(__WS_INIT_CALL_PARAM, call, param_sequence) \
      { }                                                               \

Definition at line 233 of file ws/protocol.h.

#define __WS_DEFINE_CALL_PARAM (   r,
  data,
  arg 
)    BOOST_PP_TUPLE_ELEM(2, 0, arg) BOOST_PP_TUPLE_ELEM(2, 1, arg);

Definition at line 226 of file ws/protocol.h.

#define __WS_INIT_CALL_PARAM (   r,
  data,
  i,
  arg 
)    BOOST_PP_COMMA_IF(i) BOOST_PP_TUPLE_ELEM(2, 1, arg)(call . get_parameter<BOOST_PP_TUPLE_ELEM(2, 0, arg)>(BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(2, 1, arg))))

Definition at line 229 of file ws/protocol.h.

#define WS_CALL_PARAM (   name,
  param_sequence 
)
Value:
struct name {                                                         \
    __WS_CALL_PARAM(name, param_sequence)                           \
  }

Definition at line 239 of file ws/protocol.h.

#define WSPR_WS_TYPE (   service_base_str)    "wspr.ws." service_base_str

Savarese Software Research Corporation
Copyright © 2006-2011 Savarese Software Research Corporation. All rights reserved.