00001 // 00002 // Copyright (c) 2000 by Tech Soft 3D, LLC. 00003 // The information contained herein is confidential and proprietary to 00004 // Tech Soft 3D, LLC., and considered a trade secret as defined under 00005 // civil and criminal statutes. Tech Soft 3D shall pursue its civil 00006 // and criminal remedies in the event of unauthorized use or misappropriation 00007 // of its trade secrets. Use of this information by anyone other than 00008 // authorized employees of Tech Soft 3D, LLC. is granted only under a 00009 // written non-disclosure agreement, expressly prescribing the scope and 00010 // manner of such use. 00011 // 00012 // $Id: d34cc3077d01ca867b3976a00204bb47f63ee71f $ 00013 // 00014 00015 00016 #ifndef _HDB_H 00017 #define _HDB_H 00018 00019 #ifdef H_PACK_8 00020 #pragma pack(push) 00021 #pragma pack(8) 00022 #endif 00023 00024 #include "HTools.h" 00025 00026 00027 class HImManager; 00028 class HIOManager; 00029 class HTManager; 00030 class HMaterialLibrary; 00031 00032 00034 00038 class MVO_API HDB { 00039 00040 00041 public: 00042 /*Constructs an HDB object.*/ 00043 HDB (); 00044 virtual ~HDB (); 00045 00051 virtual void Init (); 00052 00053 static HDB * GetHDB(); 00054 00056 static void IncrementInstanceCount(); 00057 00059 static void DecrementInstanceCount(); 00060 00062 static void SetInstanceBase(const char* s); 00063 00065 static const char* GetInstanceBase(); 00066 00068 static void SetDriverType(const char* s); 00069 00071 static const char* GetDriverType(); 00072 00074 static bool GetCleanInclude() { return m_bCleanInclude; } 00075 00078 static void SetCleanInclude(bool value) { m_bCleanInclude = value; } 00079 00081 static int GetInstanceCount() {return m_InstanceCount; } 00082 00084 static int GetUniqueID() {return m_nextUID++; } 00085 00089 static void SetInstanceCount(int count) {m_InstanceCount = count;} 00090 00092 static HImManager * GetHImManager(); 00093 00098 static HImManager * SetHImManager(HImManager * manager); 00099 00100 00102 static HIOManager * GetHIOManager(); 00103 00108 static HIOManager * SetHIOManager(HIOManager * manager); 00109 00111 static HMaterialLibrary * GetMaterialLibrary(); 00112 00114 static void SetMaterialLibrary(HMaterialLibrary *library); 00115 00117 static HTManager * GetHTManager(); 00118 00123 static HTManager * SetHTManager(HTManager * manager); 00124 00126 static HC_KEY GetUniqueIncludeKey(); 00127 00129 static unsigned long GetNextCookie() { return next_cookie++; }; 00130 00139 static void ReportError( const char *message, int severity = 1, int category = 0, int specific = 0 ); 00140 00142 static void EnableErrorManager(); 00144 static void DisableErrorManager(); 00145 00147 static void SetOwnsSystem(bool owns) {m_bOwnsSystem=owns;}; 00149 static bool GetOwnsSystem() {return m_bOwnsSystem;}; 00151 static void SetIsolatedDrivers(bool isolated) {m_bIsolatedDrivers=isolated;}; 00153 static bool GetIsolatedDrivers() {return m_bIsolatedDrivers;}; 00154 00155 static void Lock(); 00156 00157 static void UnLock(); 00158 00159 static bool GetPublishExchangeLicenseSet() { return m_bPublishExchangeLicenseSet; } 00160 static void SetPublishExchangeLicenseSet(bool isSet); 00161 00162 00163 private: 00164 00165 static HDB * m_pHDB; 00166 static void * m_Mutex; 00167 00168 static int m_InstanceCount; 00169 static int m_nextUID; 00170 static char* m_pInstanceBase; 00171 static char* m_pDriverType; 00172 static bool m_bCleanInclude; 00173 static bool m_bUsingErrorManager; 00174 static bool m_bOwnsSystem; 00175 static bool m_bIsolatedDrivers; 00176 00177 00178 static HImManager * m_pHImManager; 00179 00180 static HIOManager * m_pHIOManager; 00181 00182 static HMaterialLibrary * m_pHMaterialLibrary; 00183 00184 static HTManager * m_pHTManager; 00185 00186 static unsigned long include_counter; 00187 static unsigned long next_cookie; 00188 00189 static bool m_bPublishExchangeLicenseSet; 00190 00191 }; 00192 00193 00194 #ifdef H_PACK_8 00195 #pragma pack(pop) 00196 #endif 00197 00198 #endif 00199 00200 00201 00202 00203 00204