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_ASSISTANT "gnc.assistant"
00067 #define GNC_MOD_TEST "gnc.tests"
00068 #define GNC_MOD_BUDGET "gnc.budget"
00069
00070
00088 #define GNC_ID_NONE QOF_ID_NONE
00089 #define GNC_ID_BOOK QOF_ID_BOOK
00090 #define GNC_ID_SESSION QOF_ID_SESSION
00091 #define GNC_ID_NULL QOF_ID_NULL
00092
00093 #define GNC_ID_ACCOUNT "Account"
00094 #define GNC_ID_COMMODITY "Commodity"
00095 #define GNC_ID_COMMODITY_NAMESPACE "CommodityNamespace"
00096 #define GNC_ID_COMMODITY_TABLE "CommodityTable"
00097 #define GNC_ID_LOT "Lot"
00098 #define GNC_ID_PERIOD "Period"
00099 #define GNC_ID_PRICE "Price"
00100 #define GNC_ID_PRICEDB "PriceDB"
00101 #define GNC_ID_SPLIT "Split"
00102 #define GNC_ID_BUDGET "Budget"
00103 #define GNC_ID_SCHEDXACTION "SchedXaction"
00104 #define GNC_ID_SXES "SchedXactions"
00105 #define GNC_ID_SXTG "SXTGroup"
00106 #define GNC_ID_SXTT "SXTTrans"
00107 #define GNC_ID_TRANS "Trans"
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00133 typedef struct account_s Account;
00134
00145 typedef struct split_s Split;
00146
00156 typedef struct transaction_s Transaction;
00157
00172 typedef struct gnc_commodity_s gnc_commodity;
00173
00175 typedef struct gnc_commodity_namespace_s gnc_commodity_namespace;
00176
00178 typedef struct gnc_commodity_table_s gnc_commodity_table;
00179
00189 typedef struct gnc_lot_s GNCLot;
00190
00196 typedef struct gnc_price_s GNCPrice;
00197 typedef struct gnc_quote_source_s gnc_quote_source;
00198
00200 typedef GList AccountList;
00202 typedef GList LotList;
00204 typedef GList SplitList;
00206 typedef GList TransList;
00208 typedef GList AccountGUIDList;
00210 typedef GList BookGUIDList;
00211
00212 typedef void (*EngineCommitErrorCallback)( gpointer data, QofBackendError errcode );
00213
00214 typedef gint (*SplitCallback)(Split *s, gpointer data);
00215 typedef gint (*TransactionCallback)(Transaction *t, void *data);
00216
00218 typedef void (* gnc_engine_init_hook_t)(int, char **);
00219
00220
00226 void gnc_engine_init(int argc, char ** argv);
00227
00233 void gnc_engine_init_static(int argc, char ** argv);
00234
00237 void gnc_engine_shutdown (void);
00238
00240 gboolean gnc_engine_is_initialized(void);
00241
00243 void gnc_log_default(void);
00244
00247 void gnc_engine_add_init_hook(gnc_engine_init_hook_t hook);
00248
00251 void gnc_engine_add_commit_error_callback( EngineCommitErrorCallback cb, gpointer data );
00252
00253 void gnc_engine_signal_commit_error( QofBackendError errcode );
00254
00255 #endif
00256