Savarese Software Research Corporation

ServiceProtocolProcessor< PackingTraits > Class Template Reference

#include <service.h>

List of all members.

Public Types

enum  State { Starting, Started, Stopping, Stopped }
typedef PackingTraits packing_traits
typedef
protocol::ContinuationCaller
< packing_traits
caller_type

Public Member Functions

 ServiceProtocolProcessor (caller_type &caller)
virtual ~ServiceProtocolProcessor ()
string name () const
State state () const
void start ()
void stop ()
void membership (const MessageInfo &msginfo, const MembershipInfo &meminfo)
void request (MessageInfo &msginfo)
void response (MessageInfo &msginfo)
timeout_ptr schedule_timeout (const timeout_handler &handler, const TimeValue &timeout, const bool once=EventLoop::Persist)
void cancel_timeout (const timeout_ptr &timeout)
void clear_timeouts ()
ServiceContext::timeout_map::size_type count_timeouts () const

Static Public Attributes

static const bool GroupMembership = GroupMembershipDisable
 Subclasses should redefine this variable to override behavior.

Protected Member Functions

ServiceContextcontext ()
virtual void process_membership_message (const MessageInfo &msginfo, const MembershipInfo &meminfo)
template<typename MessageType , typename Impl >
void request (Impl &impl, MessageType &msg, MessageInfo &msginfo) SSRC_DECL_THROW(boost
template<typename MessageType , typename Impl >
void request (Impl &impl, MessageInfo &msginfo) SSRC_DECL_THROW(boost
template<typename MessageType , typename Impl >
void respond (Impl &impl, MessageType &msg, MessageInfo &msginfo) SSRC_DECL_THROW(boost
template<typename MessageType , typename Impl >
void respond (Impl &impl, MessageInfo &msginfo) SSRC_DECL_THROW(boost
bool set_request_handler (const message_handler_entry &handler)
message_handler_map::size_type remove_request_handler (const message_handler_entry &handler)
void clear_request_handlers ()
template<typename MessageType , typename Impl >
bool set_request_handler (Impl &impl)
template<typename MessageType , typename Impl >
bool set_request_handler (Impl &impl, MessageType &buffer)
bool set_response_handler (const message_handler_entry &handler)
message_handler_map::size_type remove_response_handler (const message_handler_entry &handler)
void clear_response_handlers ()
template<typename MessageType , typename Impl >
bool set_response_handler (Impl &impl)
template<typename MessageType , typename Impl >
bool set_response_handler (Impl &impl, MessageType &buffer)
virtual void transition (State state)

Protected Attributes

caller_type_caller

Friends

class ServiceEventHandler

Detailed Description

template<typename PackingTraits = BinaryPackingTraits>
class ServiceProtocolProcessor< PackingTraits >

Definition at line 192 of file service/service.h.


Member Typedef Documentation

template<typename PackingTraits = BinaryPackingTraits>
typedef protocol::ContinuationCaller<packing_traits> ServiceProtocolProcessor< PackingTraits >::caller_type

Definition at line 195 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
typedef PackingTraits ServiceProtocolProcessor< PackingTraits >::packing_traits

Definition at line 194 of file service/service.h.


Member Enumeration Documentation

template<typename PackingTraits = BinaryPackingTraits>
enum ServiceProtocolProcessor::State
Enumerator:
Starting 
Started 
Stopping 
Stopped 

Definition at line 197 of file service/service.h.


Constructor & Destructor Documentation

template<typename PackingTraits = BinaryPackingTraits>
ServiceProtocolProcessor< PackingTraits >::ServiceProtocolProcessor ( caller_type caller  )  [inline, explicit]

Definition at line 328 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
virtual ServiceProtocolProcessor< PackingTraits >::~ServiceProtocolProcessor (  )  [inline, virtual]

Definition at line 333 of file service/service.h.


Member Function Documentation

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::cancel_timeout ( const timeout_ptr timeout  )  [inline]

Definition at line 393 of file service/service.h.

References ServiceContext::remove_timeout().

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::clear_request_handlers (  )  [inline, protected]

Definition at line 277 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::clear_response_handlers (  )  [inline, protected]

Definition at line 305 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::clear_timeouts (  )  [inline]

Definition at line 397 of file service/service.h.

References ServiceContext::clear_timeouts().

template<typename PackingTraits = BinaryPackingTraits>
ServiceContext& ServiceProtocolProcessor< PackingTraits >::context (  )  [inline, protected]

Definition at line 224 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
ServiceContext::timeout_map::size_type ServiceProtocolProcessor< PackingTraits >::count_timeouts (  )  const [inline]

Definition at line 401 of file service/service.h.

References ServiceContext::count_timeouts().

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::membership ( const MessageInfo &  msginfo,
const MembershipInfo &  meminfo 
) [inline]
template<typename PackingTraits = BinaryPackingTraits>
string ServiceProtocolProcessor< PackingTraits >::name (  )  const [inline]
template<typename PackingTraits = BinaryPackingTraits>
virtual void ServiceProtocolProcessor< PackingTraits >::process_membership_message ( const MessageInfo &  msginfo,
const MembershipInfo &  meminfo 
) [inline, protected, virtual]
template<typename PackingTraits = BinaryPackingTraits>
message_handler_map::size_type ServiceProtocolProcessor< PackingTraits >::remove_request_handler ( const message_handler_entry handler  )  [inline, protected]

Definition at line 272 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
message_handler_map::size_type ServiceProtocolProcessor< PackingTraits >::remove_response_handler ( const message_handler_entry handler  )  [inline, protected]

Definition at line 300 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::request ( MessageInfo &  msginfo  )  [inline]

Definition at line 359 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
void ServiceProtocolProcessor< PackingTraits >::request ( Impl &  impl,
MessageInfo &  msginfo 
) [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
void ServiceProtocolProcessor< PackingTraits >::request ( Impl &  impl,
MessageType &  msg,
MessageInfo &  msginfo 
) [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
void ServiceProtocolProcessor< PackingTraits >::respond ( Impl &  impl,
MessageInfo &  msginfo 
) [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
void ServiceProtocolProcessor< PackingTraits >::respond ( Impl &  impl,
MessageType &  msg,
MessageInfo &  msginfo 
) [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::response ( MessageInfo &  msginfo  )  [inline]
template<typename PackingTraits = BinaryPackingTraits>
timeout_ptr ServiceProtocolProcessor< PackingTraits >::schedule_timeout ( const timeout_handler handler,
const TimeValue timeout,
const bool  once = EventLoop::Persist 
) [inline]

Definition at line 386 of file service/service.h.

References ServiceContext::add_timeout().

template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
bool ServiceProtocolProcessor< PackingTraits >::set_request_handler ( Impl &  impl,
MessageType &  buffer 
) [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
bool ServiceProtocolProcessor< PackingTraits >::set_request_handler ( Impl &  impl  )  [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
bool ServiceProtocolProcessor< PackingTraits >::set_request_handler ( const message_handler_entry handler  )  [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
bool ServiceProtocolProcessor< PackingTraits >::set_response_handler ( Impl &  impl,
MessageType &  buffer 
) [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
template<typename MessageType , typename Impl >
bool ServiceProtocolProcessor< PackingTraits >::set_response_handler ( Impl &  impl  )  [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
bool ServiceProtocolProcessor< PackingTraits >::set_response_handler ( const message_handler_entry handler  )  [inline, protected]
template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::start (  )  [inline]
template<typename PackingTraits = BinaryPackingTraits>
State ServiceProtocolProcessor< PackingTraits >::state (  )  const [inline]

Definition at line 339 of file service/service.h.

template<typename PackingTraits = BinaryPackingTraits>
void ServiceProtocolProcessor< PackingTraits >::stop (  )  [inline]
template<typename PackingTraits = BinaryPackingTraits>
virtual void ServiceProtocolProcessor< PackingTraits >::transition ( State  state  )  [inline, protected, virtual]

Friends And Related Function Documentation

template<typename PackingTraits = BinaryPackingTraits>
friend class ServiceEventHandler [friend]

Definition at line 406 of file service/service.h.


Member Data Documentation

template<typename PackingTraits = BinaryPackingTraits>
const bool ServiceProtocolProcessor< PackingTraits >::GroupMembership = GroupMembershipDisable [static]

Subclasses should redefine this variable to override behavior.

We don't reference the template parameter so that you can subclass a protocol processor that is a concrete class that disables group membership and enable it in the subclass. Otherwise, every protocol processor would have to be a template class. The variable is used only by the Service template to initialize _caller.

Definition at line 207 of file service/service.h.


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

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