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

corelinux::CommandFrame Class Reference

CommandFrame builds a unit of work around one or more Commands. More...

#include <CommandFrame.hpp>

Inheritance diagram for corelinux::CommandFrame

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

Collaboration graph
[legend]
List of all members.

Public Methods

 CommandFrame ( bool autoReverse = false )
 Default Constructor.

 CommandFrame ( CommandFrameCref ) throw ( CommandFrameException )
 Copy constructor. More...

virtual ~CommandFrame ( void )
 Virtual destructor. More...

CommandFrameRef operator= ( CommandFrameCref ) throw ( CommandFrameException )
 Operator assignment. More...

bool operator== ( CommandFrameCref ) const
 Equality operator.

WorkState getState ( void ) const
 Retrieves the state of the frame. More...

bool getReverseFlag ( void ) const
 Retrieves the auto reverse flag. More...

virtual void getCommands ( CommandsRef ) const
 Retrieves the commands into a Command collection. More...

CommandFrameRef operator+= ( AbstractCommandPtr ) throw ( CommandFrameException )
 Operator overload for adding a command. More...

CommandFrameRef operator+= ( CommandFrameCref ) throw ( CommandFrameException )
 Operator overload for appending commands from another CommandFrame to the current frame. More...

virtual void addCommand ( AbstractCommandPtr ) throw ( CommandFrameException )
 Explicit call to add command. More...

void setAutoReverse ( bool ) throw ( CommandFrameException )
 Sets the auto reverse flag. More...

void execute ( void ) throw ( CommandFrameException )
 Run the frame which will iterate through the commands, calling execute for each on. More...

void executeReverse ( void ) throw ( CommandFrameException )
 Run the reverse commands. More...


Protected Methods

virtual WorkState executeCommands ( void )
 Called from execute AFTER the state is set to EXECUTING and a synchronized monitor is created. More...

virtual WorkState executeReverseCommands ( void )
 Called from executeReverse AFTER the state is set to REVERSING and a synchronized monitor is created. More...


Protected Attributes

bool theAutoReverseFlag
 The recovery flag.

WorkState theWorkState
 The state of execution.

Commands theCommands
 The Commands that make up the frame.


Detailed Description

CommandFrame builds a unit of work around one or more Commands.

It maintains state and can be flagged to auto recover (reverse) the command effects.


Constructor & Destructor Documentation

corelinux::CommandFrame::CommandFrame ( CommandFrameCref aCommandFrame ) throw ( CommandFrameException )
 

Copy constructor.

Parameters:
CommandFrame   another CommandFrame reference
Exceptions:
CommandFrameException   if the state of the argument is not BUILDING, COMPLETED, or REVERSED. The state of this CommandFrame is set to BUILDING

corelinux::CommandFrame::~CommandFrame ( void ) [virtual]
 

Virtual destructor.

Clears the colleciton of commands from the list. DOES NOT DESTROY THEM!!!


Member Function Documentation

void corelinux::CommandFrame::addCommand ( AbstractCommandPtr aCommand ) throw ( CommandFrameException ) [virtual]
 

Explicit call to add command.

Parameters:
AbstractCommand   pointer
Exceptions:
CommandFrameException   if not building or pointer is NULLPTR

void corelinux::CommandFrame::execute ( void ) throw ( CommandFrameException )
 

Run the frame which will iterate through the commands, calling execute for each on.

The state must be BUILDING, which will change to COMPLETED if all goes well, REVERSED if auto reverse is true and there was a need to roll-back the commands, or NEVERCOMPLETED if auto reverse if false.

Exceptions:
CommandFrameException   if state not BUILDING

WorkState corelinux::CommandFrame::executeCommands ( void ) [protected, virtual]
 

Called from execute AFTER the state is set to EXECUTING and a synchronized monitor is created.

Returns:
WorkState indicating the last state of execution.

void corelinux::CommandFrame::executeReverse ( void ) throw ( CommandFrameException )
 

Run the reverse commands.

The state must be COMPLETED for this to work. You can reverse a CommandFrame even if the auto reverse command is off. The state, upon valid completion will be REVERSED or NEVERCOMPLETED in case of error

Exceptions:
CommandFrameException   if state not COMPLETED

WorkState corelinux::CommandFrame::executeReverseCommands ( void ) [protected, virtual]
 

Called from executeReverse AFTER the state is set to REVERSING and a synchronized monitor is created.

Returns:
WorkState indicating the last state of execution.

void corelinux::CommandFrame::getCommands ( CommandsRef aCommandList ) const [virtual]
 

Retrieves the commands into a Command collection.

Parameters:
Commands   reference

bool corelinux::CommandFrame::getReverseFlag ( void ) const
 

Retrieves the auto reverse flag.

Returns:
bool true if autoreverse enabled

WorkState corelinux::CommandFrame::getState ( void ) const
 

Retrieves the state of the frame.

Returns:
WorkState

CommandFrameRef corelinux::CommandFrame::operator+= ( CommandFrameCref aCommandFrame ) throw ( CommandFrameException )
 

Operator overload for appending commands from another CommandFrame to the current frame.

Parameters:
CommandFrame   const reference
Returns:
CommandFrame reference to self
Exceptions:
CommandFrameException   if not building

CommandFrameRef corelinux::CommandFrame::operator+= ( AbstractCommandPtr aCommand ) throw ( CommandFrameException )
 

Operator overload for adding a command.

Parameters:
AbstractCommand   pointer
Returns:
CommandFrame reference
Exceptions:
CommandFrameException   if not building or pointer is NULLPTR

CommandFrameRef corelinux::CommandFrame::operator= ( CommandFrameCref aCommandFrame ) throw ( CommandFrameException )
 

Operator assignment.

The commands from the argument replace the commands in the current CommandFrame.

Parameters:
CommandFrame   const reference
Returns:
CommandFrame reference to self
Exceptions:
CommandFrameException   if not building

void corelinux::CommandFrame::setAutoReverse ( bool autoReverse ) throw ( CommandFrameException )
 

Sets the auto reverse flag.

Parameters:
bool   true to auto recover from exceptions
Exceptions:
CommandFrameException   if not building


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