00001 /* 00002 * Copyright 1991-2002 Eric M. Hopper <hopper@omnifarious.org> 00003 * 00004 * This program is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, but 00010 * WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 */ 00018 00019 #include "LCore/Object.h" 00020 00021 #ifndef _LCORE_ClassTypes_H_ 00022 # include "LCore/ClassTypes.h" 00023 #endif 00024 00025 #ifndef _LCORE_Programmers_H_ 00026 # include "LCore/Programmers.h" 00027 #endif 00028 00029 #ifndef _LCORE_HopClTypes_H_ 00030 # include "LCore/HopClTypes.h" 00031 #endif 00032 00033 /* UNIX:@@:ClassProgID.cc:@@: */ 00034 /* MSDOS:@@:CLSPRGID.CPP:@@: */ 00035 00036 namespace strmod { 00037 00038 /** Contains the basic underlying classes for the whole system 00039 * 00040 * This is the namespace for classes in the ClassIdent, ReferenceCounting, and 00041 * Protocol, LCoreError subsystems. Here are a list of the important top-level classes: 00042 * - ClassIdent A globally (we mean globally) unique identifier for a class (deprecated). 00043 * - Protocol A base class for classes that have a ClassIdent (deprecated) 00044 * - Debugable A base class for classes that have a class invariant and can print useful state information. 00045 * - ReferenceCounting A base class for objects with embedded reference counts. RefCountPtr is the smart pointer that works with ReferenceCounting 00046 * - simple_bitset A simplified version of STLs ::std::bitset class. 00047 * - enum_set A set of values of an enum (or enumerated) type. 00048 * - LCoreError A nice class to use for throwing exceptions. 00049 */ 00050 namespace lcore { 00051 00052 const ProgrammerNum EricMHopper_0(0UL); 00053 const ProgrammerNum WinterFire_0(2UL); 00054 const ProgrammerNum StPaulSoftware_0(3UL); 00055 00056 const ClassIdent Object::identifier(EricMHopper_0, 00057 EH_ClassNum(EH_ClassNum::LCore, 00058 0UL)); 00059 const ClassIdent ProgrammerNum::identifier(EricMHopper_0, 00060 EH_ClassNum(EH_ClassNum::LCore, 00061 1UL)); 00062 const ClassIdent ClassNum::identifier(EricMHopper_0, 00063 EH_ClassNum(EH_ClassNum::LCore, 00064 2UL)); 00065 const ClassIdent ClassIdent::identifier(EricMHopper_0, 00066 EH_ClassNum(EH_ClassNum::LCore, 00067 3UL)); 00068 const LCore_ClassIdent EH_ClassNum::identifier(4UL); 00069 const LCore_ClassIdent LCore_ClassIdent::identifier(5UL); 00070 00071 /* This is a list of class #'s. Individual constants will be defined in 00072 seperate files to reduce the amount that is mandatorily linked into your 00073 program. The numbers here are here so there is one place to look to find 00074 and unused class # 00075 00076 0UL Object 00077 1UL ProgrammerNum 00078 2UL ClassNum 00079 3UL ClassIdent 00080 4UL EH_ClassNum 00081 5UL LCore_ClassIdent 00082 6UL EH_ClassIdent 00083 7UL Protocol 00084 8UL ReferenceCounting 00085 9UL RefCountPtr 00086 10UL Debugable 00087 00088 ** End of class #'s */ 00089 00090 } // namespace lcore 00091 } // namespace strmod
1.3-rc1