fpc/packages/extra/gtk2/glib/grel.inc

70 lines
2.8 KiB
PHP

{*
* grel.inc
*
* depends on gtypes.inc
*}
type
PGTuples = ^TGTuples;
TGTuples = record
len : guint;
end;
PGRelation = pointer;
{ GRelation
Indexed Relations. Imagine a really simple table in a
database. Relations are not ordered. This data type is meant for
maintaining a N-way mapping.
g_relation_new() creates a relation with FIELDS fields
g_relation_destroy() frees all resources
g_tuples_destroy() frees the result of g_relation_select()
g_relation_index() indexes relation FIELD with the provided
equality and hash functions. this must be done before any
calls to insert are made.
g_relation_insert() inserts a new tuple. you are expected to
provide the right number of fields.
g_relation_delete() deletes all relations with KEY in FIELD
g_relation_select() returns ...
g_relation_count() counts ...
}
function g_relation_new(fields:gint):PGRelation;cdecl;external gliblib name 'g_relation_new';
procedure g_relation_destroy(relation:PGRelation);cdecl;external gliblib name 'g_relation_destroy';
procedure g_relation_index(relation:PGRelation; field:gint; hash_func:TGHashFunc; key_equal_func:TGEqualFunc);cdecl;external gliblib name 'g_relation_index';
{$IFNDEF KYLIX}
procedure g_relation_insert(relation:PGRelation; args:array of const);cdecl;overload;external gliblib name 'g_relation_insert';
procedure g_relation_insert(relation:PGRelation);cdecl;overload;external gliblib name 'g_relation_insert';
{$ELSE}
procedure g_relation_insert(relation:PGRelation);varargs;cdecl;external gliblib name 'g_relation_insert';
{$ENDIF}
function g_relation_delete(relation:PGRelation; key:gconstpointer; field:gint):gint;cdecl;external gliblib name 'g_relation_delete';
function g_relation_select(relation:PGRelation; key:gconstpointer; field:gint):PGTuples;cdecl;external gliblib name 'g_relation_select';
function g_relation_count(relation:PGRelation; key:gconstpointer; field:gint):gint;cdecl;external gliblib name 'g_relation_count';
{$IFNDEF KYLIX}
function g_relation_exists(relation:PGRelation; args:array of const):gboolean;cdecl;overload;external gliblib name 'g_relation_exists';
function g_relation_exists(relation:PGRelation):gboolean;cdecl;overload;external gliblib name 'g_relation_exists';
{$ELSE}
function g_relation_exists(relation:PGRelation):gboolean;varargs;cdecl;external gliblib name 'g_relation_exists';
{$ENDIF}
procedure g_relation_print(relation:PGRelation);cdecl;external gliblib name 'g_relation_print';
procedure g_tuples_destroy(tuples:PGTuples);cdecl;external gliblib name 'g_tuples_destroy';
function g_tuples_index(tuples:PGTuples; index:gint; field:gint):gpointer;cdecl;external gliblib name 'g_tuples_index';