00001 00002 #ifndef TYPETABLE_H 00003 #define TYPETABLE_H 00004 00005 /*===============================<o>===================================== 00006 00007 Copyright 1996, 1997, 2004 Ian Kaplan, Bear Products International, 00008 www.bearcave.com. 00009 00010 All Rights Reserved 00011 00012 You may use this software in software components for which you do 00013 not collect money (e.g., non-commercial software). All commercial 00014 use is reserved. 00015 00016 ===============================<o>=====================================*/ 00017 00018 00039 class typetable { 00040 private: 00041 static LIST<type_time *> time_list; 00042 LIST<type_range *> range_list; 00043 LIST<type_real *> real_list; 00044 LIST<type_array *> array_list; 00045 LIST<type_record *> rec_list; 00046 LIST<type_file *> file_list; 00047 00048 pool *alloc_pool; // pointer to the memory allocation pool 00049 00050 private: 00051 // no copy constructor allowed 00052 typetable( const typetable &ty ) { assert( FALSE ); } 00053 00054 type *find_time( const uint time_scale ); 00055 00056 public: 00057 typetable(pool *p = NULL) 00058 { 00059 alloc_pool = p; 00060 } 00061 00062 void set_pool( pool *p ) 00063 { 00064 alloc_pool = p; 00065 } 00066 00067 type *new_type( uint kind, uint time_scale = time_bad_time ); 00068 00069 // debug print 00070 void pr(); 00071 }; 00072 00073 extern typetable glob_typtab; 00074 extern type_real REAL; 00075 00076 #endif