# HIOManager

## Functions

| `HIOManager`
| `~HIOManager`
HInputHandler * | `RegisterInputHandler`
HOutputHandler * | `RegisterOutputHandler`
HIOConnector * | `RegisterConnector`
HInputHandler * | `GetInputHandler`
HInputHandler * | `GetInputHandler`
HOutputHandler * | `GetOutputHandler`
HOutputHandler * | `GetOutputHandler`
void | `RegisterHandlers`
char const * | `GetInputHandlerTypes`
char const * | `GetOutputHandlerTypes`
HIOConnector * | `CreateConnector`
void | `FreeConnector`
void | `CleanCallbacks`
void | `SetModuleDirectory`
HIOManager * | `GetCurrentHIOManager`
void | `GetFileOutputResultString`

## Detailed Description

class `HIOManager`

  HIOManger manages subclassed instances of HInputHandler and HOutputHandler. It maps handlers to operations based on registered associations and/or requested file extensions. It is created on demand by HDB.

  Public Functions

  `HIOManager`()
  virtual `~HIOManager`()
  virtual HInputHandler *`RegisterInputHandler`(char const *file_type, HInputHandler *handler)

    This method associates a specified file type with an input handler. If another input handler already exists for the file type, this method replaces it with the given handler.

    Parameters: | file_type – The file extension this to associate with the given handler. handler – The handler for specified extension file_type. This may be 0 to clear extension handler.
    Returns: | A pointer to old handler for the file extension.

  virtual HOutputHandler *`RegisterOutputHandler`(char const *file_type, HOutputHandler *handler)

    This method associates a specified file type with an output handler. If another output handler already exists for the file type, this method replaces it with the given handler.

    Parameters: | file_type – The file extension this to associate with the given handler. handler – The handler for specified extension file_type. This may be 0 to clear extension handler.
    Returns: | A pointer to old handler for the file extension.

  virtual HIOConnector *`RegisterConnector`(char const *file_type, HIO_CREATE_FREE_FUNCTION Create, HIO_FREE_CONNECTOR_FUNCTION Free)

    This method associates a specified file type with an HIOConnector. If another another connector already exists for the file type, this method replaces it with the given connector.

    Parameters: | file_type – The file extension this connector is for. Create – A pointer to the desired Create method. Free – A pointer to the desired Free method
    Returns: | A pointer to old connector for the file extension.

  virtual HInputHandler *`GetInputHandler`(char const *file_type)

    ### Special Cases

    Because DWG files can be imported via both HIO_DWG and HIO_Exchange, two special cases exist for the file_type parameter to tell Visualize which module to use for the import:

    Parameters: | file_type – The extension to lookup handler for example: “jpg”. See information on special cases below.
    Returns: | The HInputHandler registered for specified file type or 0 if none is registered.

  HInputHandler *`GetInputHandler`(__wchar_t const *file_type)
  virtual HOutputHandler *`GetOutputHandler`(char const *file_type)

    Parameters: | file_type – The extension to lookup handler for example: “jpg”
    Returns: | The HOutputHandler registered for specified file type or 0 if none is registered.

  virtual HOutputHandler *`GetOutputHandler`(__wchar_t const *file_type)
  virtual void `RegisterHandlers`()

    This method registers default file handlers. This called by HDB when it creates a HIOManager. To avoid the default handlers being set, pass your own HIOManager by calling HDB::SetHIOManager().

  virtual char const *`GetInputHandlerTypes`()

    Returns: | The list of all extensions registered with input handlers. You can part this string to create a file type list for input file dialogs. The string’s format looks like “jpg;gif;tiff”.

  virtual char const *`GetOutputHandlerTypes`()

    Returns: | The list of all extensions registered with output handlers. You can parse this string to create a file type list for output file dialogs. The string’s format looks like “jpg;gif;tiff”.

  virtual HIOConnector *`CreateConnector`(char const *file_type)

    This method creates a new connector for the given type and returns a pointer to it.

    Parameters: | file_type – The extension to lookup handler for example: “jpg”.
    Returns: | An HIOConnector registered for specified file type or 0 if none.

  virtual void `FreeConnector`(HIOConnector *old_connector)

    This method frees a connector for the file type associated with it.

    Parameters: | old_connector – A pointer to the HIOConnector object you wan to free from a given type.

  void `CleanCallbacks`()

    This method requests that any callbacks registered on handlers be cleaned (when the manager would othewise be deleted)

  void `SetModuleDirectory`(char const *module_directory)

    Set the directory where the HIOManager will look for dynamically loaded HInputHandlers and HOutputHandlers. This has to be set before calling RegisterHandlers.

    Parameters: | module_directory – The directory where the HIOManager will look for HIOs.

  Public Static Functions

  static HIOManager *`GetCurrentHIOManager`()

    This method gets the current HIOManager. It will create on if none exists.

    Returns: | The current manager from HDB.

  static void `GetFileOutputResultString`(HFileIOResult result, char *result_str)

    This method gets a string representation of the HFileOutputResults.

    Parameters: | result – The HFileOutputResult that you want to get a string representation of. result_str – Returns the string representation of the result.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize 3DF in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize 3DF?
What are the latest release notes for HOOPS Visualize 3DF?
How do I start evaluating HOOPS Visualize 3DF?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...