seal_logo
CERN / LCG / Applications Area / SEAL / Dictionary / Reflex / Architecture
Reflex
 

 

Home

Features

Architecture

Examples

Generate Dictonaries

Download/Build

Releases

FAQ

Documentation

Bugs/Requests

Copying

Platforms

Presentations

Links

Contact

 

Architecture

The system is divided into three different layer (see Fig. 1):

  • The User Level:
    • This is the user API the user of the package will work with. It consists of a handfull of classes which are very lightweigth objects and will so will be passed around by value. The functionality of these objects reveals the every capability of the underlying framework.
  • The Identification Layer:
    • This level consists of two classes which contain unique ids of all types and scopes which are used in the framework while running. Instances of these classes are immutable and cannot be destroyed once they have been allocated. As such they will always provide a unique id of a type/scope throughout the runtime of the process. The reason for having these objects is, that the underlying implementation layer may change (e.g. a class description gets replaced by anotherone while all pointers to these types are still valid)
  • The Implementation Layer:
    • This layer contains all the implementation details of the reflection system. Objects in this level can be allocated and also be deleted at any time (e.g. when a dictionary library gets unloaded).

UML diagrams

More detailed UML diagrams (pdf)

 

 
Stefan Roiser, last edited January 28, 2006 6:02 PM Viewable With Any Browser  Valid HTML 4.01!