CoreLinux++
0.4.32
|
CommandFrame builds a unit of work around one or more Commands. More...
#include <CommandFrame.hpp>
Public Member Functions | |
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... | |
![]() | |
Synchronized (void) | |
Default constructor. | |
Synchronized (SynchronizedCref) | |
Copy constructor. | |
virtual | ~Synchronized (void) |
Virtual Destructor. | |
SynchronizedRef | operator= (SynchronizedCref) |
Assignment operator. | |
bool | operator== (SynchronizedCref) const |
Equality operator. | |
Protected Member Functions | |
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... | |
![]() | |
Guard | access (void) const throw (SemaphoreException) |
Access returns a instance of Guard which is block scoped to the caller. More... | |
Protected Attributes | |
bool | theAutoReverseFlag |
The recovery flag. | |
WorkState | theWorkState |
The state of execution. | |
Commands | theCommands |
The Commands that make up the frame. | |
Additional Inherited Members | |
![]() | |
typedef Guard * | GuardPtr |
typedef const Guard * | GuardCptr |
typedef Guard & | GuardRef |
typedef const Guard & | GuardCref |
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.
corelinux::CommandFrame::CommandFrame | ( | CommandFrameCref | aCommandFrame | ) | |
throw | ( | CommandFrameException | |||
) |
Copy constructor.
CommandFrame | another CommandFrame reference |
CommandFrameException | if the state of the argument is not BUILDING, COMPLETED, or REVERSED. The state of this CommandFrame is set to BUILDING |
References corelinux::BUILDING.
|
virtual |
Virtual destructor.
Clears the colleciton of commands from the list. DOES NOT DESTROY THEM!!!
References theAutoReverseFlag, theCommands, and theWorkState.
|
virtual |
Explicit call to add command.
AbstractCommand | pointer |
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.
CommandFrameException | if state not BUILDING |
References corelinux::Exception::addUnwindInfo(), corelinux::BUILDING, executeCommands(), and theWorkState.
|
protectedvirtual |
Called from execute AFTER the state is set to EXECUTING and a synchronized monitor is created.
References corelinux::AbstractCommand::execute(), getReverseFlag(), and theCommands.
Referenced by execute().
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
CommandFrameException | if state not COMPLETED |
References corelinux::Exception::addUnwindInfo(), executeReverseCommands(), and theWorkState.
|
protectedvirtual |
Called from executeReverse AFTER the state is set to REVERSING and a synchronized monitor is created.
References theCommands.
Referenced by executeReverse().
|
virtual |
Retrieves the commands into a Command collection.
Commands | reference |
References theCommands.
bool corelinux::CommandFrame::getReverseFlag | ( | void | ) | const |
Retrieves the auto reverse flag.
References theAutoReverseFlag.
Referenced by executeCommands().
WorkState corelinux::CommandFrame::getState | ( | void | ) | const |
CommandFrameRef corelinux::CommandFrame::operator+= | ( | AbstractCommandPtr | aCommand | ) | |
throw | ( | CommandFrameException | |||
) |
Operator overload for adding a command.
AbstractCommand | pointer |
CommandFrameException | if not building or pointer is NULLPTR |
CommandFrameRef corelinux::CommandFrame::operator+= | ( | CommandFrameCref | aCommandFrame | ) | |
throw | ( | CommandFrameException | |||
) |
Operator overload for appending commands from another CommandFrame to the current frame.
CommandFrame | const reference |
CommandFrameException | if not building |
CommandFrameRef corelinux::CommandFrame::operator= | ( | CommandFrameCref | aCommandFrame | ) | |
throw | ( | CommandFrameException | |||
) |
Operator assignment.
The commands from the argument replace the commands in the current CommandFrame.
CommandFrame | const reference |
CommandFrameException | if not building |
References corelinux::BUILDING.
void corelinux::CommandFrame::setAutoReverse | ( | bool | autoReverse | ) | |
throw | ( | CommandFrameException | |||
) |
Sets the auto reverse flag.
bool | true to auto recover from exceptions |
CommandFrameException | if not building |
References corelinux::BUILDING.