Click or drag to resize

SD.Tools.Algorithmia.Commands Namespace

 
Classes
  ClassDescription
Public classCommandTState
Command class which performs a command on a given object. What is performed is set by a lambda expression. State is contained inside this object. This is a typical implementation of the Command pattern, with undo/redo capabilities. See: http://en.wikipedia.org/wiki/Command_pattern
Public classCommandBase
Abstract base class for command classes to use in the Command pattern implementation. A base class is used instead of an interface to be able to keep the Do and Undo methods internal, as execution of commands should be done through the CommandQueue instances.
Public classCommandQueue
Class which is used as a command queue to store commands to execute. Supports undo/redo.
Public classCommandQueueActionPerformedEventArgs
Simple class for the event args for the CommandQueueActionPerformed event raised in the CommandQueueManager instance.
Public classCommandQueueManager
Class which in in charge of managing the command queues of the application. It is used in combination of a singleton provider as there's just one instance alive in the application.
Public classCommandQueueManagerSingleton
Singleton provider for the actual CommandQueueManager class which manages the command queues. There's one instance per appDomain. One thread can have access to the instance at any given time.
Public classCommandQueueStack
Class which represents a command queue stack, which is used to keep all command queues of a given context together.
Public classDoDuringUndoException
Exception class which is thrown when a Do action is detected during an Undo action.
Public classUndoablePeriodCommand
Special command class which marks an Undoable Period. It doesn't perform a command itself, but marks a start and an end to other commands to be threated as a single undoable/redoable unit. It has special features: redo will re-do all contained commands and will put the CommandManager in a special state which blocks any new commands being queued during redo. Undo will not clear the queues after a queue is completely undone. The advantage of an undoable period is that it doesn't call methods to do things (like a command would) and therefore can be used to mark a method which creates new objects as an undoable period while all actions performed on datastructures inside that method are tracked in the queue of this command. An Undoable Period is to be used with undo/redo areas where new objects are created and stored in datastructures. Re-doing these kind of areas with normal commands will re-create new instances which causes problems with follow up commands if these are re-done too: those commands work on the previous objects perhaps, causing problems along te way. With an undoable period you can prevent this from happening as any method which is called through a command should be replaced with a normal method call and inside the method you should mark the code as an undoable period.