#define XB_VALUE_BINDINGS_INIT()
Static initialiser for XbValueBindings so it can be used on the stack.
Use it in association with g_auto(), to ensure the bindings are freed once
finished with:
1 2 3 |
g_auto(XbValueBindings) bindings = XB_VALUE_BINDINGS_INIT (); xb_value_bindings_bind_str (&bindings, 0, "test", NULL); |
Since: 0.3.0
void
xb_value_bindings_init (XbValueBindings *self);
Initialise a stack-allocated XbValueBindings struct so it can be used.
Stack-allocated XbValueBindings instances should be freed once finished
with, using xb_value_bindings_clear() (or g_auto(XbValueBindings), which is
equivalent).
Since: 0.3.0
void
xb_value_bindings_clear (XbValueBindings *self);
Clear an XbValueBindings, freeing any allocated memory it points to.
After this function has been called, the contents of the XbValueBindings are
undefined, and it’s only safe to call xb_value_bindings_init() on it.
Since: 0.3.0
XbValueBindings *
xb_value_bindings_copy (XbValueBindings *self);
Copy self
into a new heap-allocated XbValueBindings instance.
Since: 0.3.0
void
xb_value_bindings_free (XbValueBindings *self);
Free a heap-allocated XbValueBindings instance. This should be used on
XbValueBindings instances created with xb_value_bindings_copy().
For stack-allocated instances, xb_value_bindings_clear() should be used
instead.
Since: 0.3.0
gboolean xb_value_bindings_is_bound (XbValueBindings *self,guint idx);
Check whether a value has been bound to the given index using (for example)
xb_value_bindings_bind_str().
Since: 0.3.0
void xb_value_bindings_bind_str (XbValueBindings *self,guint idx,const gchar *str,GDestroyNotify destroy_func);
Bind str
to idx
in the value bindings.
This will overwrite any previous binding at idx
. It will take ownership of
str
, and an appropriate destroy_func
must be provided to free str
once the
binding is no longer needed. destroy_func
will be called exactly once at
some point before the XbValueBindings is cleared or freed.
self |
||
idx |
0-based index to bind to |
|
str |
a string to bind to |
[transfer full][not nullable] |
destroy_func |
function to free |
[nullable] |
Since: 0.3.0
void xb_value_bindings_bind_val (XbValueBindings *self,guint idx,guint32 val);
Bind val
to idx
in the value bindings.
This will overwrite any previous binding at idx
.
Since: 0.3.0
gboolean xb_value_bindings_lookup_opcode (XbValueBindings *self,guint idx,XbOpcode *opcode_out);
Initialises an XbOpcode with the value bound to idx
, if a value is bound.
If no value is bound, opcode_out
is not touched and FALSE is returned.
opcode_out
is initialised to point to the data inside the XbValueBindings,
so must have a shorter lifetime than the XbValueBindings. It will be of kind
XB_OPCODE_KIND_BOUND_TEXT or XB_OPCODE_KIND_BOUND_INTEGER.
self |
||
idx |
0-based index to look up the binding from |
|
opcode_out |
pointer to an XbOpcode to initialise from the binding. |
[out caller-allocates][not nullable] |
Since: 0.3.0
gboolean xb_value_bindings_copy_binding (XbValueBindings *self,guint idx,XbValueBindings *dest,guint dest_idx);
Copies the value bound at idx
on self
to dest_idx
on dest
. If no value is
bound at idx
, dest
is not modified and FALSE is returned.
dest
must be initialised. If a binding already exists at dest_idx
, it will
be overwritten.
self |
an XbValueBindings to copy from |
|
idx |
0-based index to look up the binding from in |
|
dest |
an XbValueBindings to copy to |
|
dest_idx |
0-based index to copy the binding to in |
Since: 0.3.0
typedef struct {
} XbValueBindings;
An opaque struct which contains values bound to a query.
Since: 0.3.0