Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HDB.h

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: 2362b2d9aff9e14c4776fcaed9b50e867f868798 $
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 
00161     static void SetPublishExchangeLicenseSet(bool isSet);
00162 
00163 
00164 private:
00165 
00166     static HDB * m_pHDB;
00167     static void *   m_Mutex;
00168 
00169     static int      m_InstanceCount;    
00170     static int      m_nextUID;  
00171     static char*    m_pInstanceBase;    
00172     static char*    m_pDriverType;      
00173     static bool     m_bCleanInclude;    
00174     static bool     m_bUsingErrorManager;   
00175     static bool     m_bOwnsSystem;  
00176     static bool     m_bIsolatedDrivers;
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 
00195 #ifdef H_PACK_8
00196 #pragma pack(pop)
00197 #endif
00198 
00199 #endif
00200 
00201 
00202 
00203 
00204 
00205