// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#ifndef @_vtk_serdes_library@SerDes_h
#define @_vtk_serdes_library@SerDes_h

#include "@_vtk_serdes_module_export_header@"

#define RegisterClasses_@_vtk_serdes_library@ VTK_ABI_NAMESPACE_MANGLE(RegisterClasses_@_vtk_serdes_library@)

VTK_ABI_NAMESPACE_BEGIN

extern "C"
{
  /**
   * Register the (de)serialization handlers of classes in a serialized library.
   * @param serializer   a vtkSerializer instance
   * @param deserializer a vtkDeserializer instance
   * @param invoker      a vtkInvoker instance
   * @param error        when registration fails, the error message is contained in `error`.
   * @warning The memory pointed to by `error` is NOT dynamically allocated. Do not free it.
   */
  @_vtk_serdes_module_export_macro@ int RegisterClasses_@_vtk_serdes_library@(void* serializer, void* deserializer, void* invoker, const char** error);
}

VTK_ABI_NAMESPACE_END
#endif
// VTKHeaderTest-Exclude: @_vtk_serdes_library@SerDes.h
