00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00036 #ifndef GNC_ENGINE_H
00037 #define GNC_ENGINE_H
00038
00039 #include <glib.h>
00040 #include "qof.h"
00041
00043
00044 #define GNC_MOD_ROOT "gnc"
00045 #define GNC_MOD_ENGINE "gnc.engine"
00046 #define GNC_MOD_ACCOUNT "gnc.account"
00047 #define GNC_MOD_SX "gnc.engine.sx"
00048 #define GNC_MOD_QUERY "gnc.query"
00049 #define GNC_MOD_SCRUB "gnc.scrub"
00050 #define GNC_MOD_LOT "gnc.lots"
00051 #define GNC_MOD_COMMODITY "gnc.commodity"
00052 #define GNC_MOD_BACKEND "gnc.backend"
00053 #define GNC_MOD_PRICE "gnc.pricedb"
00054 #define GNC_MOD_BUSINESS "gnc.business"
00055 #define GNC_MOD_IO "gnc.io"
00056 #define GNC_MOD_BOOK "gnc.book-period"
00057 #define GNC_MOD_GUI "gnc.gui"
00058 #define GNC_MOD_GUI_SX "gnc.gui.sx"
00059 #define GNC_MOD_GUILE "gnc.guile"
00060 #define GNC_MOD_LEDGER "gnc.ledger"
00061 #define GNC_MOD_REGISTER "gnc.register"
00062 #define GNC_MOD_HTML "gnc.html"
00063 #define GNC_MOD_PREFS "gnc.pref"
00064 #define GNC_MOD_IMPORT "gnc.import"
00065 #define GNC_MOD_DRUID "gnc.druids"
00066 #define GNC_MOD_TEST "gnc.tests"
00067 #define GNC_MOD_BUDGET "gnc.budget"
00068
00069
00087 #define GNC_ID_NONE QOF_ID_NONE
00088 #define GNC_ID_BOOK QOF_ID_BOOK
00089 #define GNC_ID_SESSION QOF_ID_SESSION
00090 #define GNC_ID_NULL QOF_ID_NULL
00091
00092 #define GNC_ID_ACCOUNT "Account"
00093 #define GNC_ID_COMMODITY "Commodity"
00094 #define GNC_ID_COMMODITY_NAMESPACE "CommodityNamespace"
00095 #define GNC_ID_COMMODITY_TABLE "CommodityTable"
00096 #define GNC_ID_LOT "Lot"
00097 #define GNC_ID_PERIOD "Period"
00098 #define GNC_ID_PRICE "Price"
00099 #define GNC_ID_PRICEDB "PriceDB"
00100 #define GNC_ID_SPLIT "Split"
00101 #define GNC_ID_BUDGET "Budget"
00102 #define GNC_ID_SCHEDXACTION "SchedXaction"
00103 #define GNC_ID_SXES "SchedXactions"
00104 #define GNC_ID_SXTG "SXTGroup"
00105 #define GNC_ID_SXTT "SXTTrans"
00106 #define GNC_ID_TRANS "Trans"
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00132 typedef struct account_s Account;
00133
00144 typedef struct split_s Split;
00145
00155 typedef struct transaction_s Transaction;
00156
00171 typedef struct gnc_commodity_s gnc_commodity;
00172
00174 typedef struct gnc_commodity_namespace_s gnc_commodity_namespace;
00175
00177 typedef struct gnc_commodity_table_s gnc_commodity_table;
00178
00188 typedef struct gnc_lot_s GNCLot;
00189
00195 typedef struct gnc_price_s GNCPrice;
00196 typedef struct gnc_quote_source_s gnc_quote_source;
00197
00199 typedef GList AccountList;
00201 typedef GList LotList;
00203 typedef GList SplitList;
00205 typedef GList TransList;
00207 typedef GList AccountGUIDList;
00209 typedef GList BookGUIDList;
00210
00211 typedef void (*EngineCommitErrorCallback)( gpointer data, QofBackendError errcode );
00212
00213 typedef gint (*SplitCallback)(Split *s, gpointer data);
00214 typedef gint (*TransactionCallback)(Transaction *t, void *data);
00215
00217 typedef void (* gnc_engine_init_hook_t)(int, char **);
00218
00219
00223 unsigned int gnucash_major_version (void);
00225 unsigned int gnucash_minor_version (void);
00227 unsigned int gnucash_micro_version (void);
00228
00232 void gnc_engine_init(int argc, char ** argv);
00233
00239 void gnc_engine_init_static(int argc, char ** argv);
00240
00243 void gnc_engine_shutdown (void);
00244
00246 gboolean gnc_engine_is_initialized(void);
00247
00249 void gnc_log_default(void);
00250
00253 void gnc_engine_add_init_hook(gnc_engine_init_hook_t hook);
00254
00257 void gnc_engine_add_commit_error_callback( EngineCommitErrorCallback cb, gpointer data );
00258
00259 void gnc_engine_signal_commit_error( QofBackendError errcode );
00260
00261 #endif
00262