Core

The goal of the core namespace is to define metadata common to most programming languages. It will *not* cover everything available in all, or even popular languages. Just the most important parts.

Repository

This is the root node for all metadata specifications.

Meant to represent a shared library, module:

 <repository version="0.1">
   ...
 </repository>

Children: implementation, namespace

Namespace

Meant to represent a bunch of classes/interfaces:

 <namespace name="Gtk">
   ...
 </namespace>

Children: class, interface, enumeration, bitfield, record, functions, callback, constant

Implementation

FIXME: Carefully review this part.

 <implementation uri="...">
   ...
 </implementation>

It may make sense to move the implementation information to a separate file (possibly a GKeyFile), as this can be very system- and language-specific and we want to keep the GIR file platform-independent.

Class

Does not support multiple inheritance.

 <class name="Window" parent="Widget">
   ...
 </class>

Children: implements, constructors, methods, properties, members

Implements

 <implements>
   <interface name="Buildable"/>
 </implements>

Constructors/Methods/Functions

See wikipedia on methods

Constructors and Functions are identical to methods, apart from the names.

 <methods>
   <method name="set_title">
     ...
   </method>
 </methods>

Methods children: parameters, return-values

Parameters

See wikipedia on parameter

Return values are identical, apart from the tag names

 <parameters>
   <parameter name="title" direction="in">
     <type name="String"/>
   </parameter>
 </parameters>

Direction can be either, "in", "out" or "in-out".

Members/Properties

See wikipedia on property and wikipedia on field.

Members are identical to properties, apart from the tag names.

 <properties>
   <property name="title" readable="True" writable="True">
      <type name="String"/>
   </property>
 </properties>

Enumeration

See wikipedia on enumerated type and wikipedia on bit field

bitfield is identical to enumerations, apart from the tag names.

 <enumeration name="WindowType">
   <members>
     <member name="toplevel" value="0"/>
   </members>
 </enumeration>

Record

See wikipedia on record

 <record name="GdkRectangle">
   <members>
     <member name="x">
       <type name="Integer">
     </member>
   </members>
 </record>

Callback

 <callback name="GtkTranslateFunc">
   <return-values>
     <return-value>
       <type="String"/>
     </return-value>
   </return-values>
   <parameters>
     <parameter name="path">
       <type name="String"/>
     </parameter>
     <parameter name="func_data">
       <type name=""/>
     </parameter>
   </parameters>
 </callback>

Constant

  <constant name="STOCK_NEW" type="String" value="gtk-new"/>

C Language

See C Language

GObject

See GLib

Projects/GObjectIntrospection/Metadata (last edited 2013-11-22 19:41:57 by WilliamJonMcCann)