20
* UserCreatableClass:
21
* @parent_class: the base class
22
* @complete: callback to be called after @obj's properties are set.
23
- * @can_be_deleted: callback to be called before an object is removed
24
- * to check if @obj can be removed safely.
23
+ * @prepare_delete: to be called before an attempt to delete @obj
24
+ * to validate whether the object can be deleted and trigger any
25
+ * cleanup of any resources which have to be dealt with before the
26
+ * object is unparented and enters finalization.
27
*
28
* Interface is designed to work with -object/object-add/object_add
29
* commands.
38
* For objects created without using -object/object-add/object_add,
39
* @user_creatable_complete() wrapper should be called manually if
40
* object's type implements USER_CREATABLE interface and needs
39
- * complete() callback to be called.
41
+ * complete() callback to be called. Similarly @user_creatable_prepare_delete()
42
+ * should be called manually prior to an attempt to the delete the
43
+ * object.
44
*/
45
struct UserCreatableClass {
46
/* <private> */
48
49
/* <public> */
50
void (*complete)(UserCreatable *uc, Error **errp);
47
- bool (*can_be_deleted)(UserCreatable *uc);
51
+ bool (*prepare_delete)(UserCreatable *uc, Error **errp);
52
};
53
54
/**
65
bool user_creatable_complete(UserCreatable *uc, Error **errp);
66
67
/**
64
- * user_creatable_can_be_deleted:
65
- * @uc: the object whose can_be_deleted() method is called if implemented
68
+ * user_creatable_prepare_delete:
69
+ * @uc: the user-creatable object whose prepare_delete() method is called
70
+ * @errp: if an error occurs, a pointer to an area to store the error
71
+ *
72
+ * Wrapper to call prepare_delete() class method if defined, otherwise
73
+ * does nothing.
74
*
67
- * Wrapper to call can_be_deleted() method if one of types it's inherited
68
- * from implements USER_CREATABLE interface.
75
+ * Returns: %true on success or if prepare_delete() is not defined,
76
+ * %false on failure.
77
*/
70
-bool user_creatable_can_be_deleted(UserCreatable *uc);
78
+bool user_creatable_prepare_delete(UserCreatable *uc, Error **errp);
79
80
/**
81
* user_creatable_add_qapi: