/usr/include/libgda-5.0/libgda/gda-config.h is in libgda-5.0-dev 5.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | /*
* Copyright (C) 2000 Reinhard Müller <reinhard@src.gnome.org>
* Copyright (C) 2000 - 2005 Rodrigo Moya <rodrigo@gnome-db.org>
* Copyright (C) 2001 - 2011 Vivien Malerba <malerba@gnome-db.org>
* Copyright (C) 2002 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
* Copyright (C) 2003 Laurent Sansonetti <laurent@datarescue.be>
* Copyright (C) 2003 - 2007 Murray Cumming <murrayc@murrayc.com>
* Copyright (C) 2005 Andrew Hill <andru@src.gnome.org>
* Copyright (C) 2013 Daniel Espinosa <despinosa@src.gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __GDA_CONFIG_H__
#define __GDA_CONFIG_H__
#include "gda-decl.h"
#include <libgda/gda-data-model.h>
G_BEGIN_DECLS
#define GDA_TYPE_CONFIG (gda_config_get_type())
#define GDA_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GDA_TYPE_CONFIG, GdaConfig))
#define GDA_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, GDA_TYPE_CONFIG, GdaConfigClass))
#define GDA_IS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE(obj, GDA_TYPE_CONFIG))
#define GDA_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GDA_TYPE_CONFIG))
typedef struct _GdaConfigPrivate GdaConfigPrivate;
typedef struct _GdaDsnInfo GdaDsnInfo;
typedef struct _GdaProviderInfo GdaProviderInfo;
/* error reporting */
extern GQuark gda_config_error_quark (void);
#define GDA_CONFIG_ERROR gda_config_error_quark ()
typedef enum {
GDA_CONFIG_DSN_NOT_FOUND_ERROR,
GDA_CONFIG_PERMISSION_ERROR,
GDA_CONFIG_PROVIDER_NOT_FOUND_ERROR,
GDA_CONFIG_PROVIDER_CREATION_ERROR
} GdaConfigError;
/**
* GdaDsnInfo:
* @name: the (unique) name of the DSN (plain text, not RFC 1738 encoded)
* @provider: the ID of the database provider to be used (plain text, not RFC 1738 encoded)
* @description: a descriptive string (plain text, not RFC 1738 encoded), can be %NULL.
* @cnc_string: the connection string, a semi-colon separated <key>=<value> list where <key> and <value> are RFC 1738 encoded
* @auth_string: the authentication string, a semi-colon separated <key>=<value> list where <key> and <value> are RFC 1738 encoded. Can be %NULL.
* @is_system: %TRUE if the DSN is a system wide defined data source
*
* This structure defines the properties of a named data source (DSN).
*/
struct _GdaDsnInfo {
gchar *name;
gchar *provider;
gchar *description;
gchar *cnc_string;
gchar *auth_string;
gboolean is_system;
/*< private >*/
/* Padding for future expansion */
gpointer _gda_reserved1;
gpointer _gda_reserved2;
gpointer _gda_reserved3;
gpointer _gda_reserved4;
};
#define GDA_TYPE_DSN_INFO (gda_dsn_info_get_type ())
GType gda_dsn_info_get_type (void) G_GNUC_CONST;
GdaDsnInfo* gda_dsn_info_new (void);
GdaDsnInfo* gda_dsn_info_copy (GdaDsnInfo *source);
void gda_dsn_info_free (GdaDsnInfo *dsn);
/**
* GdaProviderInfo:
* @id: the unique identifier of the database provider
* @location: the complete path to the shared library implementing the database provider
* @description: provider's description
* @dsn_params: a #GdaSet containing all the parameters which can/must be specified when opening a connection or defining a named data source (DSN)
* @auth_params: a #GdaSet containing all the authentication parameters
*
* This structure holds the information associated to a database provider as discovered by Libgda.
*/
struct _GdaProviderInfo {
gchar *id;
gchar *location;
gchar *description;
GdaSet *dsn_params; /* Specs to create a DSN */
GdaSet *auth_params; /* Specs to authenticate a client */
/*< private >*/
/* Padding for future expansion */
gpointer _gda_reserved1;
gpointer _gda_reserved2;
gpointer _gda_reserved3;
gpointer _gda_reserved4;
};
struct _GdaConfig {
GObject object;
GdaConfigPrivate *priv;
};
struct _GdaConfigClass {
GObjectClass object_class;
/* signals */
void (*dsn_added) (GdaConfig *conf, GdaDsnInfo *new_dsn);
void (*dsn_to_be_removed) (GdaConfig *conf, GdaDsnInfo *old_dsn);
void (*dsn_removed) (GdaConfig *conf, GdaDsnInfo *old_dsn);
void (*dsn_changed) (GdaConfig *conf, GdaDsnInfo *dsn);
/*< private >*/
/* Padding for future expansion */
void (*_gda_reserved1) (void);
void (*_gda_reserved2) (void);
void (*_gda_reserved3) (void);
void (*_gda_reserved4) (void);
};
/**
* SECTION:gda-config
* @short_description: Access/Management of libgda configuration
* @title: Configuration
* @stability: Stable
* @see_also:
*
* The functions in this section allow applications an easy access to libgda's
* configuration (the list of data sources and database providers).
*
* As soon as a <link linkend="GdaConfig">GdaConfig</link> is needed (for example when requesting information
* about a data source or about a server provider), a single instance object is created,
* and no other will need to be created. A pointer to this object can be obtained with
* <link linkend="gda-config-get">gda_config_get()</link>. Of course one can (right after having called
* <link linkend="gda-init">gda_init()</link>) force the creation of a GdaConfig object with some
* specific properties set, using a simple call like:
* <programlisting>
*g_object_new (GDA_TYPE_CONFIG, "user-filename", "my_file", NULL);
* </programlisting>
* Please note that after that call, the caller has a reference to the newly created object, and should technically
* call <link linkend="g-object-unref">g_object_unref()</link> when finished using it. It is safe to do this
* but also pointless since that object should not be destroyed (as no other will be created) as &LIBGDA; also
* keeps a reference for itself.
*
*Data sources are defined in a per-user configuration file which is by default <filename>${HOME}/.libgda/config</filename> and
* in a system wide configuration file which is by default <filename>${prefix}/etc/libgda-4.0/config</filename>. Those
* filenames can be modified by setting the <link linkend="GdaConfig--user-file">user-file</link> and
* <link linkend="GdaConfig--system-file">system-file</link> properties for the single <link linkend="GdaConfig">GdaConfig</link>
* instance. Note that setting either of these properties to <literal>NULL</literal> will disable using the corresponding
* configuration file (DSN will exist only in memory and their definition will be lost when the application finishes).
*
* The #GdaConfig object implements its own locking mechanism so it is thread-safe.
*
* Note about localization: when the #GdaConfig loads configuration files, it filters the
* contents based on the current locale, so for example if your current locale is "de" then
* all the loaded strings (for the ones which are translated) will be in the German language.
* Changing the locale afterwards will have no effect on the #GdaConfig and the already loaded
* configuration.
* The consequence is that you should first call setlocale() youself in your code before using
* a #GdaConfig object. As a side note you should also call gtk_init() before gdaui_init() because
* gtk_init() calls setlocale().
*/
GType gda_config_get_type (void) G_GNUC_CONST;
GdaConfig* gda_config_get (void);
GdaDsnInfo *gda_config_get_dsn_info (const gchar *dsn_name);
gboolean gda_config_define_dsn (const GdaDsnInfo *info, GError **error);
gboolean gda_config_remove_dsn (const gchar *dsn_name, GError **error);
gboolean gda_config_dsn_needs_authentication (const gchar *dsn_name);
GdaDataModel *gda_config_list_dsn (void);
gboolean gda_config_can_modify_system_config (void);
gint gda_config_get_nb_dsn (void);
gint gda_config_get_dsn_info_index (const gchar *dsn_name);
GdaDsnInfo *gda_config_get_dsn_info_at_index (gint index);
GdaProviderInfo *gda_config_get_provider_info (const gchar *provider_name);
GdaServerProvider *gda_config_get_provider (const gchar *provider_name, GError **error);
GdaDataModel *gda_config_list_providers (void);
G_END_DECLS
#endif
|