| Midgard2 Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Signals | ||||
#include <midgard/midgard.h> #define GETTEXT_PACKAGE typedef MidgardConnectionClass; MidgardConnectionPrivate; MidgardConnectionCache; typedef midgard_connection; MidgardConnection * midgard_connection_new (void); gboolean midgard_connection_open (MidgardConnection *self, const gchar *name, GError **error); gboolean midgard_connection_open_config (MidgardConnection *self, MidgardConfig *config); void midgard_connection_close (MidgardConnection *self); gboolean midgard_connection_set_sitegroup (MidgardConnection *self, const gchar *name); const gchar * midgard_connection_get_sitegroup (MidgardConnection *self); gboolean midgard_connection_set_lang (MidgardConnection *self, const gchar *language); gboolean midgard_connection_set_default_lang (MidgardConnection *self, const gchar *language); const gchar * midgard_connection_get_lang (MidgardConnection *self); const gchar * midgard_connection_get_default_lang (MidgardConnection *self); gboolean midgard_connection_set_loglevel (MidgardConnection *self, const gchar *level, GLogFunc log_func); guint midgard_connection_get_loglevel (MidgardConnection *self); void midgard_connection_set_loghandler (MidgardConnection *self, guint loghandler); guint midgard_connection_get_loghandler (MidgardConnection *self); const gchar * midgard_connection_get_sitegroup_from_id (MidgardConnection *self, guint id); guint midgard_connection_get_sitegroup_id (MidgardConnection *self); const gchar * midgard_connection_get_lang_from_id (MidgardConnection *self, guint id); guint midgard_connection_get_lang_id (MidgardConnection *self, const gchar *language); gint midgard_connection_get_error (MidgardConnection *self); const gchar * midgard_connection_get_error_string (MidgardConnection *self); MidgardUser * midgard_connection_get_user (MidgardConnection *self); gboolean midgard_connection_set_request_config (MidgardConnection *self, MidgardRequestConfig *rcfg); const MidgardRequestConfig * midgard_connection_get_request_config (MidgardConnection *self); MidgardConnection * midgard_connection_copy (MidgardConnection *self); const GObject ** midgard_connection_list_languages (MidgardConnection *self, guint *n_objects);
"auth-changed" : Run Last / No Recursion / No Hooks "error" : Run Last / No Recursion / No Hooks "lang-changed" : Run Last / No Recursion / No Hooks "lost-provider" : Run Last / No Recursion / No Hooks "sitegroup-changed" : Run Last / No Recursion / No Hooks
MidgardConnection represents database connection, and runtime Midgard related
environment variables. For example, sitegroup or language context is availble
with midgard_connection_get_sitegroup() and midgard_connection_get_lang()
functions.
Use midgard_connection_new() to initialize new MidgardConnection object, and
midgard_connection_open() to open database connection.
There is also midgard_connection_open_config() for cases, if configuration file
is not in common path, and this file could be represented by MidgardConfig.
MidgardConnection * midgard_connection_new (void);
Initializes new instance of MidgardConnection object type.
MidgardConnectionClass has no properties registered as class members. Every internal data of MidgardConnection object is accessible with API functions, and is not settable or gettable as property's value. Particular methods should be implemented for language bindings.
MidgardConnection objects holds runtime ( or request ) non persistent data like language, sitegroup, authentication type.
Persistent data like database name, blobs directory are associated with MidgardConfig object.
Returns : |
pointer to MidgardConnection object or NULL on failure.
|
gboolean midgard_connection_open (MidgardConnection *self, const gchar *name, GError **error);
Opens a connection to the database, which is defined in named configuration. The configuration file is read from the system configuration directory and is used as the configuration for the created connection. For example: `/etc` directory is taken into account if library is compiled with `/usr' prefix, `/usr/local/etc` if compiled with `/usr/local` prefix, etc.
Consider using midgard_connection_open_config(), if you need to open connection to
database which is configured in user's home directory.
If the named database configuration can not be read or the connection fails,
then FALSE is returned and an error message is written to the global midgard
error state.
It also initializes MidgardSchema object (which is encapsulated by implementation ) and register all MgdSchema, MgdObjectClass derived classes defined by user. This happens only when basic Midgard classes are not registered in GType system. This is recommended way to initialize MgdSchema types.
gboolean midgard_connection_open_config (MidgardConnection *self, MidgardConfig *config);
Opens a MidgardConnection with the given configuration.
Take a look at midgard_connection_open() wrt MidgardSchema.
|
[in]newly initialized MidgardConnection object |
|
MidgardConfig object |
Returns : |
TRUE on success, FALSE otherwise
|
void midgard_connection_close (MidgardConnection *self);
Closes database connection.
This function closes database connection , destroys MidgardConnection object and frees its memory. It may be replaced by g_object_unref, with one exception.
When MidgardConnection object is initialized with midgard_connection_open function then MidgardConfig object is also destroyed and its memory is freed.
Caller is responsible to free MidgardConfig object when is used with MidgardConnection and connection object was initialized with midgard_connection_open_config function.
|
MidgardConnection object |
gboolean midgard_connection_set_sitegroup (MidgardConnection *self, const gchar *name);
Sets sitegroup's value for the given MidgardConnection.
Given sitegroup's name must be the value of exisiting in database
sitegroup's record. When there is no sitegroup with such name or
sitegroup is private , then connection's sitegroup is unchanged
and method return FALSE.
See also: midgard_sitegroup_list if you need to get list of available sitegroup names.
Emits: "sitegroup_changed"
const gchar * midgard_connection_get_sitegroup (MidgardConnection *self);
Returns name of a sitegroup which is currently used for a connection.
Read more about Midgard sitegroups concept
|
MidgardConnection instance |
Returns : |
sitegroup's name, or NULL if no sitegroup is set ( default SG0 ) |
gboolean midgard_connection_set_lang (MidgardConnection *self, const gchar *language);
Sets the language of the given Midgard connection. The connection language affects all MultiLang database accesses as described in the Midgard MultiLang documentation.
The given language parameter is the two-letter language code
stored in the language table in the Midgard database.
Special 'lang 0' might be set with empty string given instead of language code.
This method returns FALSE if the given language is not found.
Read more about Multilingual content
See also: midgard_connection_set_default_lang
Emits: "lang-changed"
gboolean midgard_connection_set_default_lang (MidgardConnection *self, const gchar *language);
Sets default language for the given MidgardConnection.
This function sets both (default and fallback) languages. Application works only in default language context. You should call midgard_connection_set_lang (after setting default language), if fallback language should be different.
const gchar * midgard_connection_get_lang (MidgardConnection *self);
Returned language string is the two-letter language code. See also: midgard_connection_get_default_lang
|
MidgardConnection instance |
Returns : |
language code of the given MidgardConnection or NULL if no language is set.
|
const gchar * midgard_connection_get_default_lang (MidgardConnection *self);
\return
Returned language string is the two-letter language code.
See also: midgard_connection_get_lang
|
MidgardConnection for which language is returned. |
Returns : |
language's code string or NULL if there's no default language set for MidgardConnection. |
gboolean midgard_connection_set_loglevel (MidgardConnection *self, const gchar *level, GLogFunc log_func);
Sets log level of the given MidgardConnection. Overwrites internal MidgardConnection's log level defined in configuration file. By default MidgardConnection holds loglevel which is associated with ( and duplicated from ) MidgardConfig. MidgardConfig object's log level isn't changed by this function
This method is a shortcut which sets correctly loghandler,loglevel
and GLib's log function. Default log function will be used if NULL
is defined. Core's default function is midgard_error_default_log.
Available levels: error, warn, warning, info, message, debug. warn is default loglevel, SQL queries are logged with debug level. With info level, function names ( and classes' names ) are ( at least should be) logged in language bindings
guint midgard_connection_get_loglevel (MidgardConnection *self);
|
MidgardConnection instance |
Returns : |
unsigned integer flag specified by GLogLevelFlags. |
void midgard_connection_set_loghandler (MidgardConnection *self,
guint loghandler);
Sets internal loghandler id associated with G_LOG_DOMAIN and loglevel. Caller is responsible to remove loghandler using g_log_remove_handler when new loglevel for G_LOG_DOMAIN is set.
See also: midgard_connection_set_loglevel
|
MidgardConnection instance |
|
loghandler id |
guint midgard_connection_get_loghandler (MidgardConnection *self);
|
MidgardConnection instance |
Returns : |
unsigned integer value which is associated with G_LOG_DOMAIN and MidgardConnection's loglevel currently set. |
const gchar * midgard_connection_get_sitegroup_from_id (MidgardConnection *self, guint id);
This method returns name for the sitegroup which is identified
by given id. You should use this method only ( and only ) when you
need ( for example ) set connection's sitegroup using sitegroup's
id set to an object.
This is transition helper method.
|
MidgardConnection instance |
|
sitegroup's id |
Returns : |
sitegroup name or NULL if there's no sitegroup with given id.
|
guint midgard_connection_get_sitegroup_id (MidgardConnection *self);
|
MidgardConnection instance |
Returns : |
id unsigned integer which identifies sitegroup for the given MidgardConnection. |
const gchar * midgard_connection_get_lang_from_id (MidgardConnection *self, guint id);
This is transition helper method.
|
MidgardConnection instance |
|
language's id |
Returns : |
code for the language which is identified by given id or NULL.
|
guint midgard_connection_get_lang_id (MidgardConnection *self, const gchar *language);
Returned id is an integer which identifies language for the given MidgardConnection. If language parameter is different than NULL, internal lookup is made to find matching language id.
|
MidgardConnection instance |
|
optional two letter language code |
Returns : |
language id |
gint midgard_connection_get_error (MidgardConnection *self);
Error id may be one of set by midgard_error.
|
MidgardConnection instance |
Returns : |
Last error id set |
const gchar * midgard_connection_get_error_string (MidgardConnection *self);
Error string may be one set by midgard_error.
|
MidgardConnection instance |
Returns : |
last error string |
MidgardUser * midgard_connection_get_user (MidgardConnection *self);
NULL is explicitly returned if there's no midgard_user logged in for the given MidgardConnection. See also MidgardUser methods if you need midgard_person associated with user.
|
MidgardConnection instance |
Returns : |
A pointer to MidgardUser instance or NULL
|
gboolean midgard_connection_set_request_config (MidgardConnection *self, MidgardRequestConfig *rcfg);
Request configuration may be set only once. A warning is thrown if there's already request config associated.
|
MidgardConnection instance |
|
MidgardRequestConfig configuration |
Returns : |
TRUE on success, FALSE otherwise
|
const MidgardRequestConfig * midgard_connection_get_request_config (MidgardConnection *self);
Returned pointer is a reference to MidgardRequestConfig and should not be freed. It's implictly freed by language bindings or by connection for which it has been set.
|
MidgardConnection instance |
Returns : |
a pointer to MidgardRequestCinfig, or NULL if none has been set.
|
MidgardConnection * midgard_connection_copy (MidgardConnection *self);
This function duplicates given MidgardConnection. It doesn't make deep copy. All persistant data are kept unchanged, but runtime related members are reset to default state. This function is helpful if application is forking and new processes might have different environment variables, like sitegroup or language.
Call g_object_unref if returned object is no longer needed.
|
|
Returns : |
Newly allocated and duplicated MidgardConnection |
const GObject ** midgard_connection_list_languages (MidgardConnection *self, guint *n_objects);
Returns array of all available languages. Returned array is owned by MidgardConnection and shouldn't be freed.
|
MidgardConnection instance |
|
pointer to store number of returned languages |
Returns : |
array of objects or NULL
|
"auth-changed" signalvoid user_function (midgard_connection *midgard_connection, gpointer user_data) : Run Last / No Recursion / No Hooks
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"error" signalvoid user_function (midgard_connection *midgard_connection, gpointer user_data) : Run Last / No Recursion / No Hooks
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"lang-changed" signalvoid user_function (midgard_connection *midgard_connection, gpointer user_data) : Run Last / No Recursion / No Hooks
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"lost-provider" signalvoid user_function (midgard_connection *midgard_connection, gpointer user_data) : Run Last / No Recursion / No Hooks
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"sitegroup-changed" signalvoid user_function (midgard_connection *midgard_connection, gpointer user_data) : Run Last / No Recursion / No Hooks
|
the object which received the signal. |
|
user data set when the signal handler was connected. |