Files | |
file | qofbackend-p.h |
private api for data storage backend | |
file | qofbook-p.h |
Private QofBook interface. | |
file | qofobject-p.h |
the Core Object Registration/Lookup Private Interface | |
Data Structures | |
struct | QofBackendProvider_s |
struct | QofBackend_s |
struct | _QofBook |
Backend_Private | |
Pseudo-object defining how the engine can interact with different back-ends (which may be SQL databases, or network interfaces to remote QOF servers. File-io is just one type of backend).
The callbacks will be called at the appropriate times during a book session to allow the backend to store the data as needed. | |
void | qof_backend_register_provider (QofBackendProvider *) |
void | qof_backend_init (QofBackend *be) |
gchar | qof_book_get_open_marker (QofBook *book) |
gint32 | qof_book_get_version (QofBook *book) |
guint32 | qof_book_get_idata (QofBook *book) |
void | qof_book_set_version (QofBook *book, gint32 version) |
void | qof_book_set_idata (QofBook *book, guint32 idata) |
Book_Private | |
void | qof_book_set_backend (QofBook *book, QofBackend *be) |
Set the backend used by this book. | |
gboolean | qof_book_register (void) |
Class_Private | |
void | qof_class_init (void) |
void | qof_class_shutdown (void) |
QofSortFunc | qof_class_get_default_sort (QofIdTypeConst obj_name) |
Entity_Private | |
void | qof_entity_set_guid (QofEntity *ent, const GUID *guid) |
void | qof_collection_insert_entity (QofCollection *, QofEntity *) |
void | qof_collection_mark_clean (QofCollection *) |
void | qof_collection_mark_dirty (QofCollection *) |
Objects_Private | |
void | qof_object_book_begin (QofBook *book) |
void | qof_object_book_end (QofBook *book) |
gboolean | qof_object_is_dirty (QofBook *book) |
void | qof_object_mark_clean (QofBook *book) |
gboolean | qof_object_compliance (QofIdTypeConst type_name, gboolean warn) |
check an object can be created and supports iteration |
void qof_backend_init | ( | QofBackend * | be | ) |
Definition at line 37 of file qofbackend.c.
00038 { 00039 be->session_begin = NULL; 00040 be->session_end = NULL; 00041 be->destroy_backend = NULL; 00042 be->load = NULL; 00043 be->begin = NULL; 00044 be->commit = NULL; 00045 be->rollback = NULL; 00046 be->compile_query = NULL; 00047 be->free_query = NULL; 00048 be->run_query = NULL; 00049 be->sync = NULL; 00050 be->load_config = NULL; 00051 be->events_pending = NULL; 00052 be->process_events = NULL; 00053 be->percentage = NULL; 00054 be->backend_configuration = kvp_frame_new (); 00055 #ifndef QOF_DISABLE_DEPRECATED 00056 be->last_err = QOF_SUCCESS; 00057 if (be->error_msg) 00058 g_free (be->error_msg); 00059 be->error_msg = NULL; 00061 be->price_lookup = NULL; 00063 be->export = NULL; 00064 #endif 00065 }
void qof_backend_register_provider | ( | QofBackendProvider * | ) |
Let the sytem know about a new provider of backends. This function is typically called by the provider library at library load time. This function allows the backend library to tell QOF infrastructure that it can handle URL's of a certain type. Note that a single backend library may register more than one provider, if it is capable of handling more than one URL access method.
Definition at line 59 of file qofsession.c.
guint32 qof_book_get_idata | ( | QofBook * | book | ) |
gchar qof_book_get_open_marker | ( | QofBook * | book | ) |
gint32 qof_book_get_version | ( | QofBook * | book | ) |
gboolean qof_book_register | ( | void | ) |
Register books with the framework
Definition at line 376 of file qofbook.c.
00377 { 00378 static QofParam params[] = { 00379 {QOF_PARAM_GUID, QOF_TYPE_GUID, 00380 (QofAccessFunc) qof_entity_get_guid, 00381 NULL, NULL}, 00382 {QOF_PARAM_KVP, QOF_TYPE_KVP, 00383 (QofAccessFunc) qof_instance_get_slots, 00384 NULL, NULL}, 00385 {NULL, NULL, NULL, NULL, NULL}, 00386 }; 00387 00388 qof_class_register (QOF_ID_BOOK, NULL, params); 00389 00390 return TRUE; 00391 }
void qof_book_set_backend | ( | QofBook * | book, | |
QofBackend * | be | |||
) |
Set the backend used by this book.
qof_book_set_backend() is used by backends to initialize the pointers in the book structure to something that contains actual data. These routines should not be used otherwise. (Its somewhat questionable if the backends should even be doing this much, but for backwards compatibility, we leave these here.)
Should only be used within a backend itself.
Definition at line 170 of file qofbook.c.
00171 { 00172 if (!book) 00173 return; 00174 ENTER ("book=%p be=%p", book, be); 00175 book->backend = be; 00176 LEAVE (" "); 00177 }
void qof_collection_insert_entity | ( | QofCollection * | , | |
QofEntity * | ||||
) |
Take entity, remove it from whatever collection its currently in, and place it in a new collection. To be used only for moving entity from one book to another.
Definition at line 197 of file qofid.c.
00198 { 00199 if (!col || !ent) 00200 return; 00201 if (guid_equal (&ent->guid, guid_null ())) 00202 return; 00203 g_return_if_fail (col->e_type == ent->e_type); 00204 qof_collection_remove_entity (ent); 00205 g_hash_table_insert (col->hash_of_entities, &ent->guid, ent); 00206 qof_collection_mark_dirty (col); 00207 ent->collection = col; 00208 }
void qof_collection_mark_clean | ( | QofCollection * | ) |
void qof_entity_set_guid | ( | QofEntity * | ent, | |
const GUID * | guid | |||
) |
Set the ID of the entity, over-riding the previous ID. Very dangerous, use only for file i/o work.
Definition at line 92 of file qofid.c.
00093 { 00094 QofCollection *col; 00095 if (guid_equal (guid, &ent->guid)) 00096 return; 00097 00098 col = ent->collection; 00099 qof_collection_remove_entity (ent); 00100 ent->guid = *guid; 00101 qof_collection_insert_entity (col, ent); 00102 }
void qof_object_book_begin | ( | QofBook * | book | ) |
To be called from within the book
Definition at line 60 of file qofobject.c.
00061 { 00062 GList *l; 00063 00064 if (!book) 00065 return; 00066 ENTER (" "); 00067 for (l = object_modules; l; l = l->next) 00068 { 00069 QofObject *obj = l->data; 00070 if (obj->book_begin) 00071 obj->book_begin (book); 00072 } 00073 00074 /* Remember this book for later */ 00075 book_list = g_list_prepend (book_list, book); 00076 LEAVE (" "); 00077 }
gboolean qof_object_compliance | ( | QofIdTypeConst | type_name, | |
gboolean | warn | |||
) |
check an object can be created and supports iteration
type_name | object to check | |
warn | If called only once per operation, pass TRUE to log objects that fail the compliance check. To prevent repeated log messages when calling more than once, pass FALSE. |
Definition at line 155 of file qofobject.c.
00156 { 00157 const QofObject *obj; 00158 00159 obj = qof_object_lookup (type_name); 00160 if ((obj->create == NULL) || (obj->foreach == NULL)) 00161 { 00162 if (warn) 00163 { 00164 PINFO (" Object type %s is not fully QOF compliant", 00165 obj->e_type); 00166 } 00167 return FALSE; 00168 } 00169 return TRUE; 00170 }