kig
FakeClass Class Reference
#include <common.h>
Detailed Description
The below is a trick.ObjectType's implement the singleton pattern. There can be only one of them at each time. This one instance of them needs to be constructed at some time, within the following restrictions:
1. They need to be constructed in the right order: if one ObjectType uses another in its constructor, the other needs to be constructed first. To achieve this, we use a scheme with instance() functions, that have a static variable in the body of the function ( if we would define them static outside of the function body, C++ would provide no guarantee on the order they would be called in ).
2. They need to be constructed before Kig tries to use them. They need to be added to the ObjectTypeFactory before anyone tries to use that class to fetch a type. The below is a trick to achieve that in combination with the previous. Basically, we add a fake static instance of an empty class that receives the instance of the ObjectType as an argument to its constructor. C++ then guarantees that these things will be constructed before main() is entered.
Thus, for your own ObjectType classes: use the scheme with the static instance methods, and add
KIG_INSTANTIATE_OBJECT_TYPE_INSTANCE( MyObjectType)
Definition at line 99 of file objects/common.h.
Public Member Functions | |
| FakeClass (const ObjectType *) | |
Constructor & Destructor Documentation
| FakeClass::FakeClass | ( | const ObjectType * | ) | [inline] |
Definition at line 101 of file objects/common.h.
The documentation for this class was generated from the following file:
KDE 4.0 API Reference