Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

hk_classes/hk_classes/hk_definitions.h

Go to the documentation of this file.
00001 // ****************************************************************************
00002 // copyright (c) 2000-2005 Horst Knorr <hk_classes@knoda.org>
00003 // This file is part of the hk_classes library.
00004 // This file may be distributed and/or modified under the terms of the
00005 // GNU Library Public License version 2 as published by the Free Software
00006 // Foundation and appearing in the file COPYING included in the
00007 // packaging of this file.
00008 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00009 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00010 // ****************************************************************************
00011 #ifndef HK_DEFINITIONS
00012 #define HK_DEFINITIONS
00013 #include "hk_string.h"
00014 #include <list>
00015 #include <stdlib.h>
00016 #include <stdio.h>
00082 using namespace std;
00083 
00084 #define  HK_DEBUG
00085 #define HK_VERSION "081"
00086 /*
00087 ** The HK_VERSION_NUMBER is an integer with the value
00088 ** (X*100000 + Y*1000 + Z). For example, for version "3.1.2",
00089 ** HK_VERSION_NUMBER is set to 3001002. To detect if they are using
00090 ** version 0.7.2 or greater at compile time, programs may use the test
00091 ** (HK_VERSION_NUMBER>=0007002).
00092 */
00093 #ifdef HK_VERSION_NUMBER
00094 # undef HK_VERSION_NUMBER
00095 #endif
00096 #define HK_VERSION_NUMBER 0008001
00097 
00098 
00099 #ifdef HAVE_NO_SSTREAM
00100 #include <strstream.h>
00101 #define STRINGSTREAM  strstream
00102 #else
00103 #include <sstream>
00104 #define STRINGSTREAM stringstream
00105 #endif
00106 
00110 enum filetype{ft_table=1,ft_query=2,ft_form=3,ft_report=4,ft_view=6,ft_referentialintegrity=7};
00111 enum listtype{lt_table=1,lt_query=2,lt_form=3,lt_report=4,lt_index=5,lt_view=6};
00112 
00113 enum datasourcetype {dt_table=1,dt_query=2,dt_view=3};
00114 enum objecttype{ot_database=0,ot_table=1,ot_query=2,ot_form=3,ot_report=4,ot_view=6};
00115 
00120 typedef class struct_raw_data
00121 {
00122     public:
00123         struct_raw_data(){length=0;data=NULL;}
00124         unsigned long   length;
00125         char* data;
00126 
00127 } ;
00128 
00129 typedef class struct_connectionfields
00130 {
00131     public:
00132         struct_connectionfields(){cancel=false;save=false;allowdatabaseselect=true;};
00133         hk_string host;
00134         hk_string user;
00135         hk_string password;
00136         hk_string sql_delimiter;
00137         hk_string port;
00138         hk_string database;
00139         bool allowdatabaseselect;
00140         bool cancel;
00141         bool save;
00142         bool emulateboolean;
00143 } ;
00144 
00145 
00146 class struct_commands;
00147 
00148 typedef class struct_commandlinefields
00149 {
00150     public:
00151         struct_commandlinefields()
00152             {
00153                runtime_only=false;
00154                p_guicommands=NULL;
00155             };
00156         hk_string driver;
00157         hk_string database;
00158         hk_string form;
00159 
00160         hk_string host;
00161         hk_string user;
00162         hk_string password;
00163         hk_string port;
00164         bool runtime_only;
00165         struct_commands* p_guicommands;
00166 } ;
00167 
00168 
00169 int hk_random(int min,int max);
00170 
00171 class hk_column;
00175 bool is_numerictype(hk_column*);
00179 bool is_integertype(hk_column*);
00183 bool is_realtype(hk_column*);
00184 double inch2cm(double);
00185 double cm2inch(double);
00186 //the following functions and datatypes are all needed for hk_report
00187 class hk_report;
00188 class hk_reportdata;
00189 class hk_reportsection;
00190 
00191 typedef hk_string   recodefunctiontype(const hk_string&,hk_report*);
00192 typedef hk_string   data_replacefunctiontype(hk_reportdata*,const hk_string&);
00193 typedef bool report_configurefunction(hk_report*,int);
00194 typedef bool reporttypefunction(hk_report*,bool);
00195 typedef unsigned long reportsectioncounttype(hk_reportsection*);
00196 typedef void reportsectionautomaticcreatedatatype(hk_reportsection*);
00197 typedef unsigned long reportdatacounttype(hk_reportdata*);
00198 typedef void    data_configurefunctiontype(hk_reportdata*);
00199 
00200 typedef void voidfunction(void);
00201 
00202 typedef struct_raw_data* psimagedatatype(struct_raw_data* imgdata,const hk_string& file,hk_string& errormsg);
00203 union number
00204 {
00205     long integer;
00206     double real;
00207 };
00208 
00209 union longnumber
00210 {
00211     long int integer;
00212     long double real;
00213 };
00214 
00215 
00216 typedef class
00217 {
00218  public:
00219  hk_string dependingfield;
00220  hk_string masterfield;
00221 } dependingclass;
00222 
00223 
00224 typedef class referentialclass
00225 {
00226 public:
00227 referentialclass();
00228 bool operator=(const referentialclass&);
00229 
00230 
00231 hk_string p_name;
00232 hk_string p_masterdatasource;
00233 list<dependingclass> p_fields;
00234 bool p_deletecascade;
00235 bool p_updatecascade;
00236 } ;
00237 
00238 
00239 bool load_file(const hk_string& filename, struct_raw_data* result);
00240 bool save_file(const hk_string& filename, const struct_raw_data* data);
00241 bool save_textfile(const hk_string& filename, const hk_string& data);
00242 bool file_exists(const hk_string& filename);
00243 bool data2hex(struct_raw_data* data, hk_string& result);
00244 bool hex2data( const hk_string& data,unsigned long maxbytes, struct_raw_data* result);
00245 const hk_string charsets[]=
00246 {
00247 "UTF8","UTF16","ISO88591","ISO88592","ISO88593","ISO88594","ISO88595","ISO88596","ISO88597","ISO88598",
00248 "ISO88599","ISO885910","ISO885911","ISO885913","ISO885914","ISO885915","KOI8","KOI8R","KOI8U","LATIN1",
00249 "LATIN2","LATIN3","LATIN4","LATIN5","LATIN6","LATIN7","LATIN8","LATIN10","WINDOWS-31J","WINDOWS-874",
00250 "WINDOWS-936","WINDOWS-1250","WINDOWS-1251","WINDOWS-1252","WINDOWS-1253","WINDOWS-1254","WINDOWS-1255",
00251 "WINDOWS-1256","WINDOWS-1257","WINDOWS-1258",
00252 "CP037","CP038","CP273","CP274","CP275","CP278","CP280","CP281","CP282","CP284","CP285","CP290","CP297","CP367",
00253 "CP420","CP423","CP424","CP437","CP500","CP737",
00254 "CP775","CP813","CP819","CP850","CP851","CP852","CP855","CP856","CP857","CP860","CP861","CP862","CP863","CP864","CP865",
00255 "CP866","CP866NAV","CP868","CP869","CP870","CP871","CP874","CP875","CP880","CP891","CP903","CP904","CP905","CP912"
00256 ,"CP915","CP916","CP918","CP920","CP922","CP930","CP932","CP933","CP935","CP936","CP937","CP939","CP949","CP950",
00257 "CP1004","CP1026","CP1046","CP1047","CP1070","CP1079","CP1081","CP1084","CP1089","CP1124","CP1125","CP1129","CP1132",
00258 "CP1133","CP1160","CP1161","CP1162","CP1163","CP1164","CP1250","CP1251","CP1252","CP1253","CP1254","CP1255","CP1256",
00259 "CP1257","CP1258","CP1361","CP10007"
00260 
00261 };
00262 
00263 
00264 const hk_string locales[]=
00265 {
00266 "C","aa_DJ","aa_ER","aa_ET","af_ZA","am_ET","an_ES","ar_AE","ar_BH","ar_DZ","ar_EG","ar_IN","ar_IQ","ar_JO","ar_KW",
00267 "ar_LB","ar_LY","ar_MA","ar_OM","ar_QA","ar_SA","ar_SD","ar_SY","ar_TN","ar_YE","be_BY","bg_BG","bn_BD","bn_IN",
00268 "br_FR","bs_BA","byn_ER","ca_ES","cs_CZ","cy_GB","da_DK","de_AT","de_BE","de_CH","de_DE","de_LU","el_GR","en_AU","en_BE","en_BW","en_CA","en_DK","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PH","en_SG",
00269 "en_US","en_ZA","en_ZW","es_AR","es_BO","es_CL","es_CO","es_CR","es_DO","es_EC","es_ES","es_GT",
00270 "es_HN","es_MX","es_NI","es_PA","es_PE","es_PR","es_PY","es_SV","es_US","es_UY","es_VE","et_EE","eu_ES",
00271 "fa_IR","fi_FI","fo_FO","fr_BE","fr_CA","fr_CH","fr_FR","fr_LU",
00272 "ga_IE","gd_GB","gez_ER","gez_ET","gl_ES","gu_IN","gv_GB",
00273 "he_IL","hi_IN","hr_HR","hu_HU","id_ID","is_IS","it_CH","it_IT","iw_IL","ka_GE","kk_KZ","kl_GL","kn_IN",
00274 "kw_GB","lg_UG","lo_LA","lt_LT","lv_LV","mi_NZ","mk_MK","ml_IN","mn_MN","mr_IN","ms_MY","mt_MT","nb_NO","ne_NP",
00275 "nl_BE","nl_NL","nn_NO","no_NO","oc_FR","om_ET","om_KE","pa_IN","pl_PL","POSIX","pt_BR","pt_PT",
00276 "ro_RO","ru_RU","ru_UA","se_NO","sh_YU","sid_ET","sk_SK","sl_SI","so_DJ","so_ET","so_KE","so_SO","sq_AL",
00277 "st_ZA","sv_FI","sv_SE","ta_IN","te_IN","tg_TJ","th_TH","ti_ER","ti_ET","tig_ER","tl_PH","tr_TR","uk_UA",
00278 "ur_PK","uz_UZ","vi_VN","wa_BE","xh_ZA","yi_US","zh_CN","zh_HK","zh_SG","zh_TW","zu_ZA"
00279 
00280 };
00281 
00282 
00283 #endif //HK_DEFINITIONS
00284 
00285 
00286 

Generated on Thu Mar 9 18:40:40 2006 for hk_classes by  doxygen 1.4.1