![]() |
![]() |
![]() |
Data Model API (libmodel) | ![]() |
---|---|---|---|---|
Top | Description |
ModelReferenceModelReference — a mutable reference to a ModelObject |
ModelReference; ModelReferenceClass; ModelObject * model_reference_get_value (ModelReference *reference); void model_reference_changed (ModelReference *reference);
A ModelReference is essentially a variable containing a reference to
a ModelObject, or NULL
.
The ModelObject that a ModelReference refers to (ie: the value of the reference) can change with time.
The most useful attribute of a ModelReference is that change notification is supported. Whenever the value of the ModelReference changes, the "changed" signal is emitted. The signal is always emitted from the mainloop; never during the execution of method calls on the model.
typedef struct { GObject parent_instance; } ModelReference;
This is an opaque structure; it may not be accessed directly.
typedef struct { GObjectClass parent_class; ModelObject * (*get_value) (ModelReference *reference); } ModelReferenceClass;
The class structure for ModelReference. All virtual functions must be implemented by each subclass.
GObjectClass |
|
|
virtual function pointer for model_reference_get_value()
|
ModelObject * model_reference_get_value (ModelReference *reference);
Reads the current value of the reference. This is essentially the dereference operation.
It is appropriate for the caller to call g_object_unref()
on the
return value.
|
a ModelReference |
|
the current value of the reference, owned by the caller |
void model_reference_changed (ModelReference *reference);
Emits the "changed" signal on reference
. This should be done
whenever the reference takes on a new value (ie:
model_reference_get_value()
will return something different than last
time).
This function should only be called by model implementations.
|
a ModelReference |