Top |
void | (*GdaAttributesManagerSignal) () |
void | (*GdaAttributesManagerFunc) () |
GdaAttributesManager * | gda_attributes_manager_new () |
void | gda_attributes_manager_free () |
void | gda_attributes_manager_set () |
void | gda_attributes_manager_set_full () |
const GValue * | gda_attributes_manager_get () |
void | gda_attributes_manager_copy () |
void | gda_attributes_manager_clear () |
void | gda_attributes_manager_foreach () |
#define | GDA_ATTRIBUTE_NAME |
#define | GDA_ATTRIBUTE_DESCRIPTION |
#define | GDA_ATTRIBUTE_AUTO_INCREMENT |
#define | GDA_ATTRIBUTE_NUMERIC_PRECISION |
#define | GDA_ATTRIBUTE_NUMERIC_SCALE |
#define | GDA_ATTRIBUTE_IS_DEFAULT |
#define | GDA_ATTRIBUTE_TREE_NODE_UNKNOWN_CHILDREN |
GdaAttributesManager |
he GdaAttributesManager manages lists of named values (attributes) for the benefit of others (objects or resources for which only a pointer is known). It is used internally by Libgda whenever an object or a simple structure may have several attributes.
The features are similar to those of the g_object_set_data()
it works with GObject objects and also with simple pointers to data
attributes names are considered static (they are not copied) and so they must either be static strings or allocated strings which exist (unchanged) while an attribute uses it as name
it is possible to iterate through the attributes
the associated values are expected to be GValue values
Attibute names can be any string, but Libgda reserves some for its own usage, see below.
The GdaAttributesManager implements its own locking mechanism so it is thread-safe.
void (*GdaAttributesManagerSignal) (GObject *obj
,const gchar *att_name
,const GValue *value
,gpointer data
);
void (*GdaAttributesManagerFunc) (const gchar *att_name
,const GValue *value
,gpointer data
);
GdaAttributesManager * gda_attributes_manager_new (gboolean for_objects
,GdaAttributesManagerSignal signal_func
,gpointer signal_data
);
Creates a new GdaAttributesManager, which can store (name, value) attributes for pointers or GObject objects (in the latter case, the attributes are destroyed when objects are also destroyed).
Free-function: gda_attributes_manager_free
for_objects |
set to TRUE if attributes will be set on objects. |
|
signal_func |
a function to be called whenever an attribute changes on an object (if |
[allow-none] |
signal_data |
user data passed as last argument of |
void
gda_attributes_manager_free (GdaAttributesManager *mgr
);
Frees all the resssources managed by mgr
void gda_attributes_manager_set (GdaAttributesManager *mgr
,gpointer ptr
,const gchar *att_name
,const GValue *value
);
Associates an attribute named att_name
to ptr
, with the value value
. Any previous association is replaced by
this one, and if value
is NULL
then the association is removed.
Note: att_name
is *not* copied, so it should be a string which exists as long as mgr
exists.
Libgda provides several predefined names for common attributes,
see this section.
If att_name
needs to be freed when not used anymore, then use gda_attributes_manager_set_full()
.
mgr |
||
ptr |
a pointer to the resources to which the attribute will apply |
|
att_name |
an attribute's name |
|
value |
[transfer none][allow-none] |
void gda_attributes_manager_set_full (GdaAttributesManager *mgr
,gpointer ptr
,const gchar *att_name
,const GValue *value
,GDestroyNotify destroy
);
Does the same as gda_attributes_manager_set()
except that destroy
is called when att_name
needs
to be freed.
mgr |
||
ptr |
a pointer to the resources to which the attribute will apply |
|
att_name |
an attribute's name |
|
value |
[allow-none] | |
destroy |
function called when |
const GValue * gda_attributes_manager_get (GdaAttributesManager *mgr
,gpointer ptr
,const gchar *att_name
);
Retrieves the value of an attribute previously set using gda_attributes_manager_set()
.
void gda_attributes_manager_copy (GdaAttributesManager *from_mgr
,gpointer *from
,GdaAttributesManager *to_mgr
,gpointer *to
);
For each attribute set for from
(in from_mgr
), set the same attribute to to
(in to_mgr
). from_mgr
and
to_mgr
can be equal.
void gda_attributes_manager_clear (GdaAttributesManager *mgr
,gpointer ptr
);
Remove all the attributes managed by mgr
for the ptr
resource.
void gda_attributes_manager_foreach (GdaAttributesManager *mgr
,gpointer ptr
,GdaAttributesManagerFunc func
,gpointer data
);
Calls func
for every attribute set to ptr
.
mgr |
||
ptr |
a pointer to the resources for which all the attributes used |
|
func |
a GdaAttributesManagerFunc function. |
[scope call] |
data |
user data to be passed as last argument of |
[closure] |