GdaVconnectionHub

GdaVconnectionHub — Virtual connection which bind together connections

Stability Level

Stable, unless otherwise indicated

Object Hierarchy

    GObject
    ╰── GdaConnection
        ╰── GdaVirtualConnection
            ╰── GdaVconnectionDataModel
                ╰── GdaVconnectionHub

Description

The GdaVconnectionHub object "binds" together the tables from other (opened) connections to make it possible to run SQL queries on data from several connections at once.

A GdaVconnectionHub connection can bind several other connections, each separated in its own namespace (which is specified when adding a connection using gda_vconnection_hub_add()).

For example if a connection A has two tables 'table_1' and 'table_2', then after gda_vconnection_hub_add() has been called with A as connection argument and with a "c1" namespace, then in the corresponding GdaVconnectionHub connection, table 'table_1' must be referred to as 'c1.table_1' and 'table_2' must be referred to as 'c1.table_2'.

Functions

GdaVConnectionHubFunc ()

void
(*GdaVConnectionHubFunc) (GdaConnection *cnc,
                          const gchar *ns,
                          gpointer data);

gda_vconnection_hub_add ()

gboolean
gda_vconnection_hub_add (GdaVconnectionHub *hub,
                         GdaConnection *cnc,
                         const gchar *ns,
                         GError **error);

Make all the tables of cnc appear as tables (of the same name) in the hub connection. If the ns is not NULL, then within hub , the tables will be accessible using the 'ns .table_name ' notation.

Within any instance of hub , there can be only one added connection where ns is NULL.

Parameters

hub

a GdaVconnectionHub connection

 

cnc

a GdaConnection

 

ns

a namespace, or NULL.

[allow-none]

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred


gda_vconnection_hub_remove ()

gboolean
gda_vconnection_hub_remove (GdaVconnectionHub *hub,
                            GdaConnection *cnc,
                            GError **error);

Remove all the tables in hub representing cnc 's tables.

Parameters

hub

a GdaVconnectionHub connection

 

cnc

a GdaConnection

 

error

a place to store errors, or NULL

 

Returns

TRUE if no error occurred


gda_vconnection_hub_get_connection ()

GdaConnection *
gda_vconnection_hub_get_connection (GdaVconnectionHub *hub,
                                    const gchar *ns);

Find the GdaConnection object in hub associated to the ns name space

Parameters

hub

a GdaVconnectionHub connection

 

ns

a name space, or NULL.

[allow-none]

Returns

the GdaConnection, or NULL if no connection is associated to ns


gda_vconnection_hub_foreach ()

void
gda_vconnection_hub_foreach (GdaVconnectionHub *hub,
                             GdaVConnectionHubFunc func,
                             gpointer data);

Call func for each GdaConnection represented in hub .

Parameters

hub

a GdaVconnectionHub connection

 

func

a GdaVconnectionDataModelFunc function pointer

 

data

data to pass to func calls

 

Types and Values