Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

corelinux::Handler Class Reference

Defines an interface for handling requests, accessing successors, and optionally implements the successor link. More...

#include <Handler.hpp>

Inheritance diagram for corelinux::Handler

Inheritance graph
[legend]
Collaboration diagram for corelinux::Handler:

Collaboration graph
[legend]
List of all members.

Public Methods

 Handler ( void )
 Default constructor.

 Handler ( HandlerCref )
 Copy constructor.

virtual ~Handler ( void )
 Virtual destructor.

HandlerRef operator= ( HandlerCref )
 Operator assignment.

bool operator== ( HandlerCref ) const
 Equality operator.

HandlerPtr operator++ ( void )
 Returns successor or NULLPTR if end-of-chain.

HandlerPtr operator-- ( void )
 Returns predecessor or NULLPTR if end-of-chain.

void succeedHandler ( HandlerPtr ) throw ( Assertion )
 Have this tie itself as the successor to the argument handler pointer. More...

void precedeHandler ( HandlerPtr ) throw ( Assertion )
 Have this tie itself as the predecessor to the argument handler pointer. More...

void extractSelf ( void )
 Removes links from self.

virtual void handleRequest ( RequestPtr )
 Routine which either invokes the work method or passes along to successor. More...


Protected Methods

virtual bool handlesType ( RequestPtr ) = 0
 Implementation required. More...

virtual void handle ( RequestPtr ) = 0
 Implementation required. More...

void setSuccessor ( HandlerPtr )
 Sets the objects theSuccessor member.

void setPredecessor ( HandlerPtr )
 Sets the objects thePredecessor member.

void setSiblings ( HandlerPtr, HandlerPtr )
 Sets the object siblings as atomic operation.


Protected Attributes

HandlerPtr theSuccessor
 Supports chaining of responsibility.

HandlerPtr thePredecessor
 Supports chaining of responsibility where.


Detailed Description

Defines an interface for handling requests, accessing successors, and optionally implements the successor link.

The builtin behavior is to allow forward and backward chaining of Handlers.


Member Function Documentation

void corelinux::Handler::handle ( RequestPtr aRequest ) [protected, pure virtual]
 

Implementation required.

Once determined if type is handled, then handle it!

Parameters:
Request   pointer to request object

Reimplemented in HandlerHelpHandler, and RequestHelpHandler.

void corelinux::Handler::handleRequest ( RequestPtr aRequest ) [virtual]
 

Routine which either invokes the work method or passes along to successor.

First calls handleType which determines if work is handled here or passed on.

Parameters:
Request   pointer to request type

bool corelinux::Handler::handlesType ( RequestPtr aRequest ) [protected, pure virtual]
 

Implementation required.

Respond to type handler requests.

Parameters:
Request   pointer to request object to determine if this handler handles the request.
Returns:
bool true if this handler handles type

Reimplemented in HelpHandler.

void corelinux::Handler::precedeHandler ( HandlerPtr aHandler ) throw ( Assertion )
 

Have this tie itself as the predecessor to the argument handler pointer.

Parameters:
Handler   pointer to preceed.
Exceptions:
Assertion   if HandlerPtr is NULLPTR

void corelinux::Handler::succeedHandler ( HandlerPtr aHandler ) throw ( Assertion )
 

Have this tie itself as the successor to the argument handler pointer.

Parameters:
Handler   pointer to succeed
Exceptions:
Assertion   if HandlerPtr is NULLPTR


The documentation for this class was generated from the following files:
This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium