Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
handling-patterns.hpp File Reference

A hard wired collection of predefined command handling patterns. More...

Go to the source code of this file.

Description

A hard wired collection of predefined command handling patterns.

There is a small number of different possibilities to handle execution and UNDO of Steam-Layer commands. Each of these is defined as a subclass in this header and then hard wired into a small table. Handling patterns are stateless singleton objects, thus we build using multiple Singleton factory objects and configure them hard wired with the respective implementation classes. The index positions in this table match the sequence within the enum HandlingPattern::ID; all of this is done hard wired and without any dynamic configuration.

See also
SteamDispatcher
Session

Definition in file handling-patterns.hpp.

Namespaces

namespace  steam
 Steam-Layer implementation namespace root.
 
namespace  steam::control
 Steam-Layer dispatcher, controller and administrative facilities.
 
namespace  steam::control::anonymous_namespace{handling-patterns.hpp}
 

Typedefs

typedef lib::factory::MultiFact< HandlingPattern &, HandlingPattern::IDHandlingPatternFactory
 

Classes

class  BasicHandlingPattern
 Handling Pattern Foundation: invoke command directly and without any external intervention. More...
 
class  InvokeSyncNoThrow
 Handling Pattern: invoke blocking, translate exceptions into an error state. More...
 
class  InvokeSyncThrow
 Handling Pattern: invoke blocking, propagating any exceptions immediately. More...
 
class  InvokeAsync
 Handling Pattern: just schedule command to be invoked asynchronously. More...
 

Functions

HandlingPattern constgetPatternInstance (HandlingPattern::ID id)
 access the singleton instance for a given ID
 

Variables

HandlingPatternFactory patternTable
 holds singleton pattern instances by ID
 
HandlingPatternFactory::Singleton< InvokeSyncNoThrowholder1 (patternTable, HandlingPattern::SYNC)
 
HandlingPatternFactory::Singleton< InvokeSyncThrowholder2 (patternTable, HandlingPattern::SYNC_THROW)
 
HandlingPatternFactory::Singleton< InvokeAsyncholder3 (patternTable, HandlingPattern::ASYNC)
 
HandlingPatternFactory::Singleton< BasicHandlingPatternholder4 (patternTable, HandlingPattern::DUMMY)