Lumiera  0.pre.03
»edit your freedom«
handling-patterns.hpp File Reference

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.

Classes

class  BasicHandlingPattern
 Handling Pattern Foundation: invoke command directly and without any external intervention. More...
 
class  InvokeAsync
 Handling Pattern: just schedule command to be invoked asynchronously. 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...
 

Typedefs

typedef lib::factory::MultiFact< HandlingPattern &, HandlingPattern::ID > HandlingPatternFactory
 

Functions

HandlingPattern const & getPatternInstance (HandlingPattern::ID id)
 access the singleton instance for a given ID
 

Variables

HandlingPatternFactory::Singleton< InvokeSyncNoThrow > holder1 (patternTable, HandlingPattern::SYNC)
 
HandlingPatternFactory::Singleton< InvokeSyncThrow > holder2 (patternTable, HandlingPattern::SYNC_THROW)
 
HandlingPatternFactory::Singleton< InvokeAsync > holder3 (patternTable, HandlingPattern::ASYNC)
 
HandlingPatternFactory::Singleton< BasicHandlingPattern > holder4 (patternTable, HandlingPattern::DUMMY)
 
HandlingPatternFactory patternTable
 holds singleton pattern instances by ID
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::control
 Steam-Layer dispatcher, controller and administrative facilities.