GdaVconnectionHub

GdaVconnectionHub — Virtual connection which bind together connections

Stability Level

Stable, unless otherwise indicated

Types and Values

Object Hierarchy

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

Implemented Interfaces

GdaVconnectionHub implements GdaLockable.

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

struct GdaVconnectionHub

struct GdaVconnectionHub;