00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00046 #ifndef GNC_COMMODITY_H
00047 #define GNC_COMMODITY_H
00048
00049 typedef struct _GncCommodityClass gnc_commodityClass;
00050 typedef struct _GncCommodityNamespaceClass gnc_commodity_namespaceClass;
00051
00052 #include <glib.h>
00053 #include "gnc-engine.h"
00054
00055
00056 #define GNC_TYPE_COMMODITY (gnc_commodity_get_type ())
00057 #define GNC_COMMODITY(o) \
00058 (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_COMMODITY, gnc_commodity))
00059 #define GNC_COMMODITY_CLASS(k) \
00060 (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_COMMODITY, gnc_commodityClass))
00061 #define GNC_IS_COMMODITY(o) \
00062 (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_COMMODITY))
00063 #define GNC_IS_COMMODITY_CLASS(k) \
00064 (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_COMMODITY))
00065 #define GNC_COMMODITY_GET_CLASS(o) \
00066 (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_COMMODITY, gnc_commodityClass))
00067 GType gnc_commodity_get_type(void);
00068
00069
00070 #define GNC_TYPE_COMMODITY_NAMESPACE (gnc_commodity_namespace_get_type ())
00071 #define GNC_COMMODITY_NAMESPACE(o) \
00072 (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_COMMODITY_NAMESPACE, gnc_commodity_namespace))
00073 #define GNC_COMMODITY_NAMESPACE_CLASS(k) \
00074 (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_COMMODITY_NAMESPACE, gnc_commodity_namespaceClass))
00075 #define GNC_IS_COMMODITY_NAMESPACE(o) \
00076 (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_COMMODITY_NAMESPACE))
00077 #define GNC_IS_COMMODITY_NAMESPACE_CLASS(k) \
00078 (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_COMMODITY_NAMESPACE))
00079 #define GNC_COMMODITY_NAMESPACE_GET_CLASS(o) \
00080 (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_COMMODITY_NAMESPACE, gnc_commodity_namespaceClass))
00081 GType gnc_commodity_namespace_get_type(void);
00082
00083
00084 #define GNC_COMMODITY_TABLE "gnc_commodity_table"
00085
00097 #define GNC_COMMODITY_NS_LEGACY "GNC_LEGACY_CURRENCIES"
00098
00099 #define GNC_COMMODITY_NS_ISO "ISO4217"
00100 #define GNC_COMMODITY_NS_CURRENCY "CURRENCY"
00101 #define GNC_COMMODITY_NS_NASDAQ "NASDAQ"
00102 #define GNC_COMMODITY_NS_NYSE "NYSE"
00103 #define GNC_COMMODITY_NS_EUREX "EUREX"
00104 #define GNC_COMMODITY_NS_MUTUAL "FUND"
00105 #define GNC_COMMODITY_NS_AMEX "AMEX"
00106 #define GNC_COMMODITY_NS_ASX "ASX"
00107
00108 typedef GList CommodityList;
00109
00118 typedef enum
00119 {
00120 SOURCE_SINGLE = 0,
00124 SOURCE_MULTI,
00127 SOURCE_UNKNOWN,
00131 SOURCE_MAX,
00132 SOURCE_CURRENCY = SOURCE_MAX,
00133 } QuoteSourceType;
00134
00141 gboolean gnc_quote_source_fq_installed (void);
00142
00152 void gnc_quote_source_set_fq_installed (const GList *sources_list);
00153
00160 gint gnc_quote_source_num_entries(QuoteSourceType type);
00161
00173 gnc_quote_source *gnc_quote_source_add_new(const char * name, gboolean supported);
00174
00183 gnc_quote_source *gnc_quote_source_lookup_by_internal(const char * internal_name);
00184
00195 gnc_quote_source *gnc_quote_source_lookup_by_ti(QuoteSourceType type, gint index);
00196
00205 gboolean gnc_quote_source_get_supported (const gnc_quote_source *source);
00206
00214 QuoteSourceType gnc_quote_source_get_type (const gnc_quote_source *source);
00215
00223 gint gnc_quote_source_get_index (const gnc_quote_source *source);
00224
00233 const char *gnc_quote_source_get_user_name (const gnc_quote_source *source);
00234
00243 const char *gnc_quote_source_get_internal_name (const gnc_quote_source *source);
00244
00257 const char *gnc_quote_source_get_old_internal_name (const gnc_quote_source *source);
00297 gnc_commodity * gnc_commodity_new(QofBook *book,
00298 const char * fullname,
00299 const char * namespace,
00300 const char * mnemonic,
00301 const char * cusip,
00302 int fraction);
00303
00309 void gnc_commodity_destroy(gnc_commodity * cm);
00310
00312 void gnc_commodity_copy(gnc_commodity * dest, const gnc_commodity *src);
00313
00315 gnc_commodity * gnc_commodity_clone(const gnc_commodity *src, QofBook *dest_book);
00333 const char * gnc_commodity_get_mnemonic(const gnc_commodity * cm);
00334
00344 const char * gnc_commodity_get_namespace(const gnc_commodity * cm);
00345
00358 const char * gnc_commodity_get_namespace_compat(const gnc_commodity * cm);
00359
00368 gnc_commodity_namespace *gnc_commodity_get_namespace_ds(const gnc_commodity * cm);
00369
00379 const char * gnc_commodity_get_fullname(const gnc_commodity * cm);
00380
00391 const char * gnc_commodity_get_printname(const gnc_commodity * cm);
00392
00408 const char * gnc_commodity_get_cusip(const gnc_commodity * cm);
00409
00421 const char * gnc_commodity_get_unique_name(const gnc_commodity * cm);
00422
00433 int gnc_commodity_get_fraction(const gnc_commodity * cm);
00434
00443 gint16 gnc_commodity_get_mark(const gnc_commodity * cm);
00444
00454 gboolean gnc_commodity_get_quote_flag(const gnc_commodity *cm);
00455
00464 gnc_quote_source* gnc_commodity_get_quote_source(const gnc_commodity *cm);
00465 gnc_quote_source* gnc_commodity_get_default_quote_source(const gnc_commodity *cm);
00466
00477 const char* gnc_commodity_get_quote_tz(const gnc_commodity *cm);
00496 void gnc_commodity_set_mnemonic(gnc_commodity * cm, const char * mnemonic);
00497
00508 void gnc_commodity_set_namespace(gnc_commodity * cm, const char * namespace);
00509
00520 void gnc_commodity_set_fullname(gnc_commodity * cm, const char * fullname);
00521
00536 void gnc_commodity_set_cusip(gnc_commodity * cm, const char * cusip);
00537
00548 void gnc_commodity_set_fraction(gnc_commodity * cm, int smallest_fraction);
00549
00564 void gnc_commodity_user_set_quote_flag(gnc_commodity *cm,
00565 const gboolean flag);
00566
00576 void gnc_commodity_set_quote_flag(gnc_commodity *cm, const gboolean flag);
00577
00587 void gnc_commodity_set_quote_source(gnc_commodity *cm, gnc_quote_source *src);
00588
00600 void gnc_commodity_set_quote_tz(gnc_commodity *cm, const char *tz);
00614 void
00615 gnc_commodity_increment_usage_count(gnc_commodity *cm);
00616
00623 void
00624 gnc_commodity_decrement_usage_count(gnc_commodity *cm);
00638 gboolean gnc_commodity_equiv(const gnc_commodity * a, const gnc_commodity * b);
00639
00644 gboolean gnc_commodity_equal(const gnc_commodity * a, const gnc_commodity * b);
00658 gboolean gnc_commodity_namespace_is_iso(const char *namespace);
00659
00665 gboolean gnc_commodity_is_iso(const gnc_commodity * cm);
00666
00673 gboolean gnc_commodity_is_currency(const gnc_commodity *cm);
00674
00678
00685 gnc_commodity_table * gnc_commodity_table_get_table(QofBook *book);
00686
00687
00688 #define gnc_book_get_commodity_table gnc_commodity_table_get_table
00689
00691 gboolean gnc_commodity_table_equal(gnc_commodity_table *t_1,
00692 gnc_commodity_table *t_2);
00693
00695 void gnc_commodity_table_copy(gnc_commodity_table *dest,
00696 gnc_commodity_table *src,
00697 QofBook *dest_book);
00699
00703 gnc_commodity * gnc_commodity_table_lookup(const gnc_commodity_table * table,
00704 const char * namespace,
00705 const char * mnemonic);
00706 gnc_commodity *
00707 gnc_commodity_table_lookup_unique(const gnc_commodity_table *table,
00708 const char * unique_name);
00709 gnc_commodity * gnc_commodity_table_find_full(const gnc_commodity_table * t,
00710 const char * namespace,
00711 const char * fullname);
00712
00713 gnc_commodity * gnc_commodity_find_commodity_by_guid(const GUID *guid, QofBook *book);
00714 gnc_commodity_namespace * gnc_commodity_find_namespace_by_guid(const GUID *guid, QofBook *book);
00715
00717
00718
00737 gnc_commodity * gnc_commodity_table_insert(gnc_commodity_table * table,
00738 gnc_commodity * comm);
00739
00746 void gnc_commodity_table_remove(gnc_commodity_table * table,
00747 gnc_commodity * comm);
00748
00757 gboolean gnc_commodity_table_add_default_data(gnc_commodity_table *table, QofBook *book);
00758
00760
00771 const char * gnc_commodity_namespace_get_name (const gnc_commodity_namespace *ns) ;
00772
00773
00780 GList * gnc_commodity_namespace_get_commodity_list(const gnc_commodity_namespace * ns);
00781
00782
00788 guint gnc_commodity_table_get_number_of_namespaces(const gnc_commodity_table* tbl);
00789
00798 int gnc_commodity_table_has_namespace(const gnc_commodity_table * table,
00799 const char * namespace);
00800
00808 GList * gnc_commodity_table_get_namespaces(const gnc_commodity_table * t);
00809
00817 GList * gnc_commodity_table_get_namespaces_list(const gnc_commodity_table * t);
00818
00827 gnc_commodity_namespace * gnc_commodity_table_add_namespace(gnc_commodity_table * table,
00828 const char * namespace,
00829 QofBook *book);
00830
00839 gnc_commodity_namespace * gnc_commodity_table_find_namespace(const gnc_commodity_table * table,
00840 const char * namespace);
00841
00851 void gnc_commodity_table_delete_namespace(gnc_commodity_table * table,
00852 const char * namespace);
00854
00865 guint gnc_commodity_table_get_size(const gnc_commodity_table* tbl);
00866
00879 CommodityList * gnc_commodity_table_get_commodities(
00880 const gnc_commodity_table * table, const char * namespace);
00881
00899 CommodityList * gnc_commodity_table_get_quotable_commodities(
00900 const gnc_commodity_table * table);
00901
00912 gboolean gnc_commodity_table_foreach_commodity(const gnc_commodity_table * table,
00913 gboolean (*f)(gnc_commodity *cm,
00914 gpointer user_data),
00915 gpointer user_data);
00919
00932 void gnc_commodity_set_mark(gnc_commodity * cm, gint16 mark);
00933
00938 gnc_commodity_table * gnc_commodity_table_new(void);
00939 void gnc_commodity_table_destroy(gnc_commodity_table * table);
00940
00946 gnc_commodity * gnc_commodity_obtain_twin (const gnc_commodity *from, QofBook *book);
00947
00952 gboolean gnc_commodity_table_register (void);
00953
00954 void gnc_commodity_begin_edit (gnc_commodity *cm);
00955 void gnc_commodity_commit_edit (gnc_commodity *cm);
00956
00960 #endif
00961