/**
* GstMiniObjectWeakNotify:
- * @data: data that was provided when the weak reference was established
+ * @user_data: data that was provided when the weak reference was established
* @where_the_mini_object_was: the mini object being finalized
*
* A #GstMiniObjectWeakNotify function can be added to a mini object as a
*
* Since: 0.10.35
*/
-typedef void (*GstMiniObjectWeakNotify) (gpointer data,
+typedef void (*GstMiniObjectWeakNotify) (gpointer user_data,
GstMiniObject * where_the_mini_object_was);
/**
* @type: the GType of the object
* @refcount: atomic refcount
* @flags: extra flags.
- * @size: the size of the structure
* @copy: a copy function
* @dispose: a dispose function
* @free: the free function
GstMiniObjectFreeFunction free;
/* < private > */
- /* Used to keep track of weak ref notifies */
- guint n_weak_refs;
- struct
- {
- GstMiniObjectWeakNotify notify;
- gpointer data;
- } *weak_refs;
+ /* Used to keep track of weak ref notifies and qdata */
+ guint n_qdata;
+ gpointer qdata;
};
-void gst_mini_object_init (GstMiniObject *mini_object, GType type);
+void gst_mini_object_init (GstMiniObject *mini_object, GType type,
+ GstMiniObjectCopyFunction copy_func,
+ GstMiniObjectDisposeFunction dispose_func,
+ GstMiniObjectFreeFunction free_func);
GstMiniObject * gst_mini_object_copy (const GstMiniObject *mini_object) G_GNUC_MALLOC;
gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object);
GstMiniObjectWeakNotify notify,
gpointer data);
+void gst_mini_object_set_qdata (GstMiniObject *object, GQuark quark,
+ gpointer data, GDestroyNotify destroy);
+gpointer gst_mini_object_get_qdata (GstMiniObject *object, GQuark quark);
+
+
gboolean gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata);
gboolean gst_mini_object_take (GstMiniObject **olddata, GstMiniObject *newdata);
GstMiniObject * gst_mini_object_steal (GstMiniObject **olddata);