00001 # ifndef Root_h 00002 # define Root_h Root_h 00003 00004 // A very temporary macro providing simple conditional debugging. 00005 // Cannot be emulated in C++. The 'code' can be anything that can be 00006 // placed at the location [inner] in the following statement: 00007 // cerr << [inner] << endl; 00008 #define DBG(lvl,code) if (debug>=(lvl)) { cerr << code << endl; } 00009 00010 namespace Conjecture { 00011 /********************************************************************* 00012 * \class Root 00013 * 00014 * \brief The abstract superclass of all classes in the Conjecture 00015 * namespace. 00016 * 00017 * Functionality defined here is available in every Conjecture class, 00018 * obviously. Primarily debugging and other low-level functionality. 00019 * 00020 ********************************************************************/ 00021 00022 // NOTE: 00023 // - Is it acceptable to clutter up the Conjecture namespace with 00024 // these? 00025 // 00026 // - These typedefs are a point of contention between certain project leaders 00027 // (bruno and wade). They may exist temporarily, and be 00028 // replaced with their uint*_t equivalents when intense coding 00029 // has lessend. 00030 typedef unsigned char uint8_t; 00031 typedef unsigned short uint16_t; 00032 typedef unsigned int uint32_t; 00033 00034 typedef uint8_t u1; 00035 typedef uint16_t u2; 00036 typedef uint32_t u4; 00037 00038 class Root { 00039 public: 00040 // Constructors/Destructors 00041 Root(); 00042 00043 // Accessors 00044 00045 // Input/Output 00046 00047 // Miscellaneous 00048 00049 protected: 00050 // Methods 00051 00052 // Accessors 00053 00054 private: 00055 // Methods 00056 00057 // Accessors 00058 00059 // State 00060 }; 00061 }; 00062 00063 # endif // Root_h 00064