Savarese Software Research Corporation
Caller.h File Reference

This header defines the Caller class and Wisp communication protocol support classes. More...

#include <ssrc/spread.h>
#include <ssrc/wisp/protocol/ServiceProtocol.h>
#include <queue>
#include <sstream>
#include <stdexcept>
#include <boost/shared_ptr.hpp>
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/mem_fun.hpp>
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/composite_key.hpp>
Include dependency graph for Caller.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct   protocol::detail::VoidReturnType
  An empty structure used to represent a void return type for Wisp calls. More...
struct   protocol::CallTraits< CallerType, ParameterType, ReturnType >
  The three-parameter CallTraits template defines all the type information characterizing a TwoWay call. More...
struct   protocol::CallTraits< CallerType, ParameterType, detail::VoidReturnType >
  The two-parameter CallTraits template defines all the type information characterizing a OneWay call. More...
class   protocol::CallException
  A CallException is thrown when a call cannot complete because of an unexpected condition. More...
struct   protocol::CallHeader
  Every call is described by a CallHeader followed by a message. More...
struct   protocol::MessageInfo
  Stores all information associated with a received call, including the raw message data. More...
class   protocol::Caller< PT >
class   protocol::Caller< PT >::Future< ReturnType >
struct   protocol::Caller< PT >::CallTag< call_type >

Namespaces

namespace   protocol
 

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


namespace   protocol::detail
 

The protocol::detail namespace defines implementation-specific structures that are not intended for use by library client code.


Defines

#define  WISP_ONE_WAY_CALL(caller, method)
  Defines the CallTraits for a one-way call.
#define  WISP_TWO_WAY_CALL(caller, method, result)
  Defines the CallTraits for a two-way call.
#define  __WISP_CALLER_MAX_UNFRAGMENTED_MESSAGE_SIZE   131072U

Typedefs

typedef std::uint32_t  protocol::wisp_call_token
  The type of a call token.
typedef std::uint8_t  protocol::wisp_call_role
  The type used by the CallHeader to store the CallRole of the call being made.
typedef boost::shared_ptr
< MessageInfo > 
protocol::message_info_ptr

Enumerations

enum   protocol::CallType { protocol::OneWay, protocol::TwoWay }
  CallType defines allowable messaging call types. More...
enum   protocol::CallRole { protocol::OneWayRequest, protocol::TwoWayRequest, protocol::TwoWayResponse }
  The role of a call being made. More...

Variables

const Message::Service  protocol::DefaultMessageServiceType = Message::SafeSelfDiscard
  Wisp calls can request a Spread message service type if desired.
const bool  protocol::GroupMembershipEnable = true
const bool  protocol::GroupMembershipDisable = false

Detailed Description

This header defines the Caller class and Wisp communication protocol support classes.

Definition in file Caller.h.


Define Documentation

#define __WISP_CALLER_MAX_UNFRAGMENTED_MESSAGE_SIZE   131072U

Definition at line 327 of file Caller.h.

#define WISP_ONE_WAY_CALL (   caller,
  method 
)
Value:
typedef NS_SSRC_WISP_PROTOCOL::CallTraits<caller, Message ## method> \
  Call ## method

Defines the CallTraits for a one-way call.

Parameters:
caller The type of Caller through which the call must be made.
method The name of the call.

Definition at line 137 of file Caller.h.

#define WISP_TWO_WAY_CALL (   caller,
  method,
  result 
)
Value:
typedef NS_SSRC_WISP_PROTOCOL::CallTraits<caller, Message ## method, Message ## result> \
  Call ## method

Defines the CallTraits for a two-way call.

Parameters:
caller The type of Caller through which the call must be made.
method The name of the call.
result The type returned by the call.

Definition at line 148 of file Caller.h.


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