# HDB

## Functions

| `HDB`
| `~HDB`
void | `Init`
HDB * | `GetHDB`
void | `IncrementInstanceCount`
void | `DecrementInstanceCount`
void | `SetInstanceBase`
const char * | `GetInstanceBase`
void | `SetDriverType`
const char * | `GetDriverType`
bool | `GetCleanInclude`
void | `SetCleanInclude`
int | `GetInstanceCount`
int | `GetUniqueID`
void | `SetInstanceCount`
HImManager * | `GetHImManager`
HImManager * | `SetHImManager`
HIOManager * | `GetHIOManager`
HIOManager * | `SetHIOManager`
HMaterialLibrary * | `GetMaterialLibrary`
void | `SetMaterialLibrary`
HTManager * | `GetHTManager`
HTManager * | `SetHTManager`
HC_KEY | `GetUniqueIncludeKey`
unsigned long | `GetNextCookie`
void | `ReportError`
void | `EnableErrorManager`
void | `DisableErrorManager`
void | `SetOwnsSystem`
bool | `GetOwnsSystem`
void | `SetIsolatedDrivers`
bool | `GetIsolatedDrivers`
void | `SetRetainIOManager`
bool | `GetRetainIOManager`
void | `ReleaseIOManager`
void | `Lock`
void | `UnLock`
bool | `GetPublishExchangeLicenseSet`
void | `SetPublishExchangeLicenseSet`
bool | `GetPublishInitialized`
void | `SetPublishInitialized`

## Detailed Description

class HDB

  The HDB class serves as a wrapper/utility class to manage an instance of the HOOPS/3dGS scene-graph.

  HDB Stores the information of how many and which type of HOOPS driver instances the associated object HBaseView creates.

  Public Functions

  HDB()
  virtual ~HDB()
  virtual void Init()

    Init() initializes the HOOPS attributes for driver type and unsets the default HOOPS alias&#8212;“?Picture”&#8212;for the root segment of the given driver. The function also sets up a default color map and registers the HOOPS I.M. callbacks that are listed in HDB::RegisterHoopsIMCallbacks().

  Public Static Functions

  static HDB *GetHDB()
    Returns

      A pointer to the HDB object.

  static void IncrementInstanceCount()

    This method augments the number of instances of a driver by one.

  static void DecrementInstanceCount()

    This method decrements the number of instances of a driver by one.

  static void SetInstanceBase(const char *s)

    This method sets the base name for driver instances.

  static const char *GetInstanceBase()
    Returns

      The base name for driver instances.

  static void SetDriverType(const char *s)

    This method sets the base driver type for the driver instances.

  static const char *GetDriverType()
    Returns

      The base driver type for the driver instances.

  static inline bool GetCleanInclude()
    Returns

      True if global includes should be moved to model specific includes during reading.

  static inline void SetCleanInclude(bool value)

    This method determines whether global includes should be moved to model specific includes during reading.

    Parameters

      value – Pass true to have global includes move to model specific includes during reading or false to keep the includes.

  static inline int GetInstanceCount()
    Returns

      An integer denoting the number of instances of a driver.

  static inline int GetUniqueID()
    Returns

      An integer that will be unique during the runtime of the application.

  static inline void SetInstanceCount(int count)

    This method sets the number of instances of a driver.

    Parameters

      count – The number of driver instances.

  static HImManager *GetHImManager()
    Returns

      A pointer to the current HImManager object (the HOOPS/3dGS I.M. manager). This method creates one if none exists.

  static HImManager *SetHImManager(HImManager *manager)

    This method replaces the HOOPS/3dGS I.M. manager.

    Parameters

      manager – A pointer to an HImManager object.

    Returns

      A pointer to the replaced HImManager.

  static HIOManager *GetHIOManager()
    Returns

      A pointer to the current HIOManager object (the input/output manager). This method creates one if none exists.

  static HIOManager *SetHIOManager(HIOManager *manager)

    This method replaces the input/output manager.

    Parameters

      manager – A pointer to an HIOManager object.

    Returns

      A pointer to the replaced HIOManager.

  static HMaterialLibrary *GetMaterialLibrary()
    Returns

      A pointer to the current HMaterialLibrary object (which manages materials resources from disk). Return value is NULL if none exists.

  static void SetMaterialLibrary(HMaterialLibrary *library)
    Returns

      Sets the pointer to the material library.

  static HTManager *GetHTManager()
    Returns

      A pointer to the current HTManager object (the timer manager). This method creates one if none exists.

  static HTManager *SetHTManager(HTManager *manager)

    This method replaces the timer manager.

    Parameters

      manager – A pointer to an HTManager object.

    Returns

      A pointer to the replaced HTManager.

  static HC_KEY GetUniqueIncludeKey()
    Returns

      A key to a unique Include Library segment.

  static inline unsigned long GetNextCookie()
    Returns

      A globally unique identifier.

  static void ReportError(const char *message, int severity = 1, int category = 0, int specific = 0)

    This method generates a HOOPS error. Using this method, allows the error to go through HOOPS so that it will be intercepted by whatever error handlers the app might have registered, and will use the reporting mechanism appropriate to the specific platform.

    Parameters

      - message – The text to be posted.

      - severity – If the value is 0, the message is informational. If the value is 1, the message is a warning. If the value is 2, then the message is an error. If the value is 3 or greater, the error is fatal.

      - category – The category that this error falls under as described in #HC_Define_Error_Handler.

      - specific – The specific error under the category as described in #HC_Define_Error_Handler.

  static void EnableErrorManager()

    This method initializes the error manager and puts it in use.

  static void DisableErrorManager()

    This method cleans up the error manager and then disables it.

  static inline void SetOwnsSystem(bool owns)
  static inline bool GetOwnsSystem()
  static inline void SetIsolatedDrivers(bool isolated)

    Sets the “isolated” driver option. Allows a driver to be spawned on a separate thread. Used for background printing or multiple views.

  static inline bool GetIsolatedDrivers()
    Returns

      True if isolated driver is set

  static inline void SetRetainIOManager(bool retain)

    Determines whether the IO Manager is retained when an HDB is deleted. Normally it is not retained, but if a program needs to create and destroy multiple HDBs, and also uses HIO modules like DWG that can only be loaded once per process, it will need to activate retaining (and manually request the release)

  static inline bool GetRetainIOManager()
    Returns

      True if Retain IO Manager is set

  static void ReleaseIOManager()

    Turns off the retain state and requests the immediate release of the IO Manager if there are no active GDNs.

  static void Lock()
  static void UnLock()
  static inline bool GetPublishExchangeLicenseSet()
  static void SetPublishExchangeLicenseSet(bool isSet)
  static inline bool GetPublishInitialized()
  static void SetPublishInitialized(bool initialized)