Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

cClassRegister.h

Go to the documentation of this file.
00001 /******************************************************************************/
00002 /*                                                                            */
00003 /* POLiTe - Persistent Object Library Test                                    */
00004 /*                                        Ph.D. Thesis by Mgr. Michal Kopecky */
00005 /*                                                                            */
00006 /* Charles University Prague                                                  */
00007 /*                                                                            */
00008 /******************************************************************************/
00009 /*                                                                            */
00010 /* File name: ...                                                             */
00011 /* Module: ......                                                             */
00012 /*                                                                            */
00013 /******************************************************************************/
00014 
00015 #ifndef __C_CLASSREGISTER_H__
00016 #define __C_CLASSREGISTER_H__
00017 
00018 // Standard Header(s)
00019 #include <fstream.h>
00020 
00021 // Other POLiTe Header(s)
00022 #include <cProtoBase.h>
00023 
00024 class DLL_External ClassRegister
00025 {
00026 #ifdef POLITE_TEST_FRIEND
00027         friend POLITE_TEST_FRIEND;
00028 #endif // POLITE_TEST_FRIEND
00029 
00030 protected:
00031         static void _Invent(
00032                 class ProtoBase * const _p = ProtoBase::_root,
00033                 int _l = 0
00034                 );
00035         void _Initialise(ProtoBase * const _p);
00036         // Initialises all registered prototypes
00037         void _WriteDDL(ProtoBase * const _p, ofstream &S, class Database &Db);
00038         // Generates DDL statements for all registered prototypes
00039 
00040 public:
00041         class ProtoBase *Find(const char * const _n) const {return ProtoBase::Find(_n);};
00042         class ProtoBase *operator [](const char * const _n) const {return ProtoBase::Find(_n);};
00043 
00044         bool WriteDDL(ofstream &S, class Database &Db);
00045         // generates DDL stements nedded for the library to run
00046 };
00047 
00048 extern DLL_External class ClassRegister Class;
00049 
00050 #endif //__C_CLASSREGISTER_H__

Generated on Sun Jul 14 20:51:13 2002 for POLiTe by doxygen1.2.16