(root)/
glib-2.79.0/
gobject/
tests/
testmodule.c
       1  /* GObject - GLib Type, Object, Parameter and Signal Library
       2   * testmodule.c: Dummy dynamic type module
       3   * Copyright (C) 2003 Red Hat, Inc.
       4   *
       5   * SPDX-License-Identifier: LGPL-2.1-or-later
       6   *
       7   * This library is free software; you can redistribute it and/or
       8   * modify it under the terms of the GNU Lesser General Public
       9   * License as published by the Free Software Foundation; either
      10   * version 2.1 of the License, or (at your option) any later version.
      11   *
      12   * This library is distributed in the hope that it will be useful,
      13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      15   * Lesser General Public License for more details.
      16   *
      17   * You should have received a copy of the GNU Lesser General Public
      18   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
      19   */
      20  
      21  #include "testmodule.h"
      22  #include "testcommon.h"
      23  
      24  static gboolean test_module_load   (GTypeModule *module);
      25  static void     test_module_unload (GTypeModule *module);
      26  
      27  static void
      28  test_module_class_init (TestModuleClass *class)
      29  {
      30    GTypeModuleClass *module_class = G_TYPE_MODULE_CLASS (class);
      31  
      32    module_class->load = test_module_load;
      33    module_class->unload = test_module_unload;
      34  }
      35  
      36  DEFINE_TYPE (TestModule, test_module,
      37  	     test_module_class_init, NULL, NULL,
      38  	     G_TYPE_TYPE_MODULE)
      39  
      40  static gboolean
      41  test_module_load (GTypeModule *module)
      42  {
      43    TestModule *test_module = TEST_MODULE (module);
      44  
      45    test_module->register_func (module);
      46    
      47    return TRUE;
      48  }
      49  
      50  static void
      51  test_module_unload (GTypeModule *module)
      52  {
      53  }
      54  
      55  GTypeModule *
      56  test_module_new (TestModuleRegisterFunc register_func)
      57  {
      58    TestModule *test_module = g_object_new (TEST_TYPE_MODULE, NULL);
      59    GTypeModule *module = G_TYPE_MODULE (test_module);
      60    
      61    test_module->register_func = register_func;
      62  
      63    /* Register the types initially */
      64    g_type_module_use (module);
      65    g_type_module_unuse (module);
      66  
      67    return G_TYPE_MODULE (module);
      68  }