![]() |
![]() |
![]() |
GNOME Data Access 4 manual | ![]() |
---|---|---|---|---|
Top | Description |
#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; 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
); void gda_attributes_manager_free (GdaAttributesManager *mgr
); void gda_attributes_manager_set (GdaAttributesManager *mgr
,gpointer ptr
,const gchar *att_name
,const GValue *value
); void gda_attributes_manager_set_full (GdaAttributesManager *mgr
,gpointer ptr
,const gchar *att_name
,const GValue *value
,GDestroyNotify destroy
); const GValue * gda_attributes_manager_get (GdaAttributesManager *mgr
,gpointer ptr
,const gchar *att_name
); void gda_attributes_manager_copy (GdaAttributesManager *from_mgr
,gpointer *from
,GdaAttributesManager *to_mgr
,gpointer *to
); void gda_attributes_manager_clear (GdaAttributesManager *mgr
,gpointer ptr
); void gda_attributes_manager_foreach (GdaAttributesManager *mgr
,gpointer ptr
,GdaAttributesManagerFunc func
,gpointer data
);
The 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.
#define GDA_ATTRIBUTE_NAME "__gda_attr_name" /* G_TYPE_STRING */
The corresponding attribute is the name of the object it refers to (value has a G_TYPE_STRING type).
#define GDA_ATTRIBUTE_DESCRIPTION "__gda_attr_descr" /* G_TYPE_STRING */
The corresponding attribute is the description of the object it refers to (value has a G_TYPE_STRING type).
#define GDA_ATTRIBUTE_AUTO_INCREMENT "__gda_attr_autoinc" /* G_TYPE_BOOLEAN */
The corresponding attribute specifies if the object it refers to is auto incremented (value has a G_TYPE_BOOLEAN type).
#define GDA_ATTRIBUTE_NUMERIC_PRECISION "__gda_attr_numeric_precision" /* G_TYPE_INT */
The corresponding attribute is the number of significant digits of the object it refers to (value has a G_TYPE_INT type).
#define GDA_ATTRIBUTE_NUMERIC_SCALE "__gda_attr_numeric_scale" /* G_TYPE_INT */
The corresponding attribute is the number of significant digits to the right of the decimal point of the object it refers to (value has a G_TYPE_INT type).
#define GDA_ATTRIBUTE_IS_DEFAULT "__gda_attr_is_default" /* G_TYPE_BOOLEAN */
The corresponding attribute specifies if the object it refers to has its value to default (value has a G_TYPE_BOOLEAN type).
#define GDA_ATTRIBUTE_TREE_NODE_UNKNOWN_CHILDREN "__gda_attr_tnuchild"
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
|
set to TRUE if attributes will be set on objects. |
|
a function to be called whenever an attribute changes on an object (if for_objects is TRUE), or NULL . [allow-none]
|
|
user data passed as last argument of signal_func when it is called |
Returns : |
the new GdaAttributesManager |
void gda_attributes_manager_free (GdaAttributesManager *mgr
);
Frees all the resssources managed by mgr
|
a GdaAttributesManager |
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()
.
|
a GdaAttributesManager |
|
a pointer to the resources to which the attribute will apply |
|
an attribute's name |
|
a GValue, or NULL . [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.
|
a GdaAttributesManager |
|
a pointer to the resources to which the attribute will apply |
|
an attribute's name |
|
a GValue, or NULL . [allow-none]
|
|
function called when att_name has to be freed |
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()
.
|
a GdaAttributesManager |
|
a pointer to the resources to which the attribute will apply |
|
an attribute's name |
Returns : |
the attribute's value, or NULL if the attribute is not set. [tranfer none]
|
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.
|
a GdaAttributesManager |
|
a pointer from which attributes are copied |
|
a GdaAttributesManager |
|
a pointer to which attributes are copied |
void gda_attributes_manager_clear (GdaAttributesManager *mgr
,gpointer ptr
);
Remove all the attributes managed by mgr
for the ptr
resource.
|
a GdaAttributesManager |
|
a pointer to the resources for which all the attributes will be removed |
void gda_attributes_manager_foreach (GdaAttributesManager *mgr
,gpointer ptr
,GdaAttributesManagerFunc func
,gpointer data
);
Calls func
for every attribute set to ptr
.
|
a GdaAttributesManager |
|
a pointer to the resources for which all the attributes used |
|
a GdaAttributesManagerFunc function. [scope call] |
|
user data to be passed as last argument of func each time it is called. [closure]
|