Re: introspection



Il giorno mer 19 nov 2014 18:20:17 CET, Daniel Espinosa ha scritto:

1. Could you share your Gir file?


<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0";
            xmlns:c="http://www.gtk.org/introspection/c/1.0";
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0";>
  <include name="Gda" version="5.0"/>
  <namespace name="Confi"
             version="1.0"
             shared-library="libconfi-0.dll"
             c:identifier-prefixes="Confi"
             c:symbol-prefixes="confi">
    <record name="Class" c:type="ConfiClass">
      <field name="parent_class" writable="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Key" c:type="ConfiKey">
      <field name="id_config" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="id" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="id_parent" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="key" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="description" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="path" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <function name="set_key" c:identifier="confi_key_set_key">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="confi" transfer-ownership="none">
            <doc xml:space="preserve">a #Confi object.</doc>
            <type name="_" c:type="Confi*"/>
          </parameter>
          <parameter name="ck" transfer-ownership="none">
            <doc xml:space="preserve">a #ConfiKey struct.</doc>
            <type name="Key" c:type="ConfiKey*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="_" c:type="Confi">
      <field name="parent" writable="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </record>
    <function name="add_key" c:identifier="confi_add_key" introspectable="0">
      <return-value>
<doc xml:space="preserve">a #ConfigKey struct filled with data from the key just added.</doc>
        <type name="Key" c:type="ConfiKey*"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">the path where add the key.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the key's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="add_key_with_value"
              c:identifier="confi_add_key_with_value"
              introspectable="0">
      <return-value>
<doc xml:space="preserve">a #ConfigKey struct filled with data from the key just added.</doc>
        <type name="Key" c:type="ConfiKey*"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">the path where add the key.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve">the key's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">the key's value.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="destroy" c:identifier="confi_destroy">
<doc xml:space="preserve">Destroy the #Confi object, freeing memory.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_configs_list"
              c:identifier="confi_get_configs_list"
              introspectable="0">
      <return-value>
<doc xml:space="preserve">a #GList of #Confi. If there's no configurations, returns a valid
#GList but with a unique NULL element.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="cnc_string" transfer-ownership="none">
<doc xml:space="preserve">the connection string to use to connect to database that
contains configuration.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="filter" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
<function name="get_tree" c:identifier="confi_get_tree" introspectable="0">
      <return-value>
        <type name="GLib.Node" c:type="GNode*"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_type" c:identifier="confi_get_type">
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function name="key_set_key"
              c:identifier="confi_key_set_key"
              moved-to="Key.set_key">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="ck" transfer-ownership="none">
          <doc xml:space="preserve">a #ConfiKey struct.</doc>
          <type name="Key" c:type="ConfiKey*"/>
        </parameter>
      </parameters>
    </function>
    <function name="new" c:identifier="confi_new" introspectable="0">
      <return-value>
<doc xml:space="preserve">the newly created #Confi object, or NULL if it fails.</doc>
        <type name="_" c:type="Confi*"/>
      </return-value>
      <parameters>
        <parameter name="cnc_string" transfer-ownership="none">
<doc xml:space="preserve">the connection string to use to connect to database that
contains configuration.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">configuration's name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="root" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="create" transfer-ownership="none">
<doc xml:space="preserve">whether create a config into database if @name doesn't exists.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="path_get_confi_key"
              c:identifier="confi_path_get_confi_key"
              introspectable="0">
      <return-value>
        <type name="Key" c:type="ConfiKey*"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve">the key's path to get.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="path_get_value" c:identifier="confi_path_get_value">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the configuration's value as a string.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
<doc xml:space="preserve">the path from which retrieving the value.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="path_move" c:identifier="confi_path_move">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve">the key's path to move.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">the path where add the key.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="path_set_value" c:identifier="confi_path_set_value">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve">the key's path.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve">the value to set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="remove" c:identifier="confi_remove">
<doc xml:space="preserve">Remove a configuration from databases and destroy the relative object.</doc>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
      </parameters>
    </function>
    <function name="remove_path" c:identifier="confi_remove_path">
      <doc xml:space="preserve">Removes @path and every child key.</doc>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve">the path to remove.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_root" c:identifier="confi_set_root">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="confi" transfer-ownership="none">
          <doc xml:space="preserve">a #Confi object.</doc>
          <type name="_" c:type="Confi*"/>
        </parameter>
        <parameter name="root" transfer-ownership="none">
          <doc xml:space="preserve">the root.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>



2. Is a good idea to add a namespace. Like your main project prefix. This
avoids introspection function and objects name collisions.

but is it mandatory to make introspection works?



El 19/11/2014 05:13, "Andrea Zagli" <azagli libero it> escribió:
[...]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]