QOF
0.8.0
|
00001 /********************************************************************\ 00002 * qofsession.h -- session access (connection to backend) * 00003 * * 00004 * This program is free software; you can redistribute it and/or * 00005 * modify it under the terms of the GNU General Public License as * 00006 * published by the Free Software Foundation; either version 2 of * 00007 * the License, or (at your option) any later version. * 00008 * * 00009 * This program is distributed in the hope that it will be useful, * 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00012 * GNU General Public License for more details. * 00013 * * 00014 * You should have received a copy of the GNU General Public License* 00015 * along with this program; if not, contact: * 00016 * * 00017 * Free Software Foundation Voice: +1-617-542-5942 * 00018 * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 * 00019 * Boston, MA 02110-1301, USA gnu@gnu.org * 00020 * * 00021 \********************************************************************/ 00022 00101 #ifndef QOF_SESSION_H 00102 #define QOF_SESSION_H 00103 00104 #include "qofbackend.h" 00105 #include "qofbook.h" 00106 #include "qofclass.h" 00107 #include "qofobject.h" 00108 00109 #define QOF_MOD_SESSION "qof-session" 00110 00111 /* PROTOTYPES ******************************************************/ 00112 00113 typedef struct _QofSession QofSession; 00114 00115 QofSession *qof_session_new (void); 00116 00117 void qof_session_destroy (QofSession * session); 00118 00122 void 00123 qof_session_swap_data (QofSession * session_1, QofSession * session_2); 00124 00152 void qof_session_begin (QofSession * session, const gchar *book_id, 00153 gboolean ignore_lock, gboolean create_if_nonexistent); 00154 00168 typedef void (*QofPercentageFunc) (const gchar *message, gdouble percent); 00169 void qof_session_load (QofSession * session, 00170 QofPercentageFunc percentage_func); 00171 00179 void 00180 qof_session_add_book (QofSession * session, QofBook * book); 00181 00182 QofBook * 00183 qof_session_get_book (QofSession * session); 00184 00199 const gchar *qof_session_get_file_path (QofSession * session); 00200 00201 const gchar *qof_session_get_url (QofSession * session); 00202 00207 gboolean qof_session_not_saved (QofSession * session); 00208 00210 gboolean qof_session_save_may_clobber_data (QofSession * session); 00211 00218 void qof_session_save (QofSession * session, 00219 QofPercentageFunc percentage_func); 00228 void qof_session_end (QofSession * session); 00229 00277 gboolean qof_entity_copy_to_session (QofSession * new_session, 00278 QofEntity * original); 00279 00298 gboolean qof_entity_copy_list (QofSession * new_session, GList * entity_list); 00299 00313 gboolean qof_entity_copy_coll (QofSession * new_session, 00314 QofCollection * entity_coll); 00315 00344 gboolean 00345 qof_entity_copy_coll_r (QofSession * new_session, QofCollection * coll); 00346 00366 gboolean qof_entity_copy_one_r (QofSession * new_session, QofEntity * ent); 00367 00386 #define QOF_STDOUT "file:" 00387 00395 gboolean qof_session_events_pending (QofSession * session); 00396 00401 gboolean qof_session_process_events (QofSession * session); 00410 void qof_session_add_close_hook (GFunc fn, gpointer data); 00411 00416 void qof_session_call_close_hooks (QofSession * session); 00417 00421 #endif /* QOF_SESSION_H */