QOF 0.8.2
|
00001 /********************************************************************\ 00002 * qofbook.h -- Encapsulate all the information about a dataset. * 00003 * This program is free software; you can redistribute it and/or * 00004 * modify it under the terms of the GNU General Public License as * 00005 * published by the Free Software Foundation; either version 2 of * 00006 * the License, or (at your option) any later version. * 00007 * * 00008 * This program is distributed in the hope that it will be useful, * 00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00011 * GNU General Public License for more details. * 00012 * * 00013 * You should have received a copy of the GNU General Public License* 00014 * along with this program; if not, contact: * 00015 * * 00016 * Free Software Foundation Voice: +1-617-542-5942 * 00017 * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 * 00018 * Boston, MA 02110-1301, USA gnu@gnu.org * 00019 * * 00020 \********************************************************************/ 00039 #ifndef QOF_BOOK_H 00040 #define QOF_BOOK_H 00041 00042 #include "qof.h" 00043 00050 #define QOF_BOOK_LOOKUP_ENTITY(book,guid,e_type,c_type) ({ \ 00051 QofEntity *val = NULL; \ 00052 if (guid && book) { \ 00053 QofCollection *col; \ 00054 col = qof_book_get_collection (book, e_type); \ 00055 val = qof_collection_lookup_entity (col, guid); \ 00056 } \ 00057 (c_type *) val; \ 00058 }) 00059 00061 typedef struct _QofBook QofBook; 00062 00064 typedef GList QofBookList; 00065 00066 typedef void (*QofBookFinalCB) (QofBook *, gpointer key, gpointer user_data); 00067 00069 gboolean qof_book_register (void); 00070 00073 QofBook *qof_book_new (void); 00074 00077 void qof_book_destroy (QofBook * book); 00078 00084 void qof_book_mark_closed (QofBook * book); 00085 00099 QofCollection *qof_book_get_collection (QofBook *, QofIdType); 00100 00102 typedef void (*QofCollectionForeachCB) (QofCollection *, gpointer user_data); 00103 void qof_book_foreach_collection (QofBook *, QofCollectionForeachCB, 00104 gpointer); 00105 00113 #define qof_book_get_slots(book) qof_instance_get_slots(QOF_INSTANCE(book)) 00114 00125 void qof_book_set_data (QofBook * book, const gchar * key, gpointer data); 00126 00131 void qof_book_set_data_fin (QofBook * book, const gchar * key, gpointer data, 00132 QofBookFinalCB); 00133 00135 gpointer qof_book_get_data (QofBook * book, const gchar * key); 00136 00138 gboolean qof_book_shutting_down (QofBook * book); 00139 00148 gboolean qof_book_not_saved (QofBook * book); 00149 00155 void qof_book_mark_saved (QofBook * book); 00156 00159 void qof_book_kvp_changed (QofBook * book); 00160 00164 gboolean qof_book_equal (QofBook * book_1, QofBook * book_2); 00165 00169 gint64 qof_book_get_counter (QofBook * book, const gchar *counter_name); 00170 00172 #endif /* QOF_BOOK_H */