00001 #ifndef _WINC_WXP
00002 #define _WINC_WXP
00003
00004 #include <WXP/Const.h>
00005 #include <WXP/Convert.h>
00006 #include <WXP/Resrc.h>
00007
00008 #undef NOFILE
00009 #ifdef MACOSX
00010 typedef int socklen_t;
00011 #endif
00012
00013 namespace WXP {
00014 class Wxp : public Const, public Convert {
00015 static bool verb;
00016 static int error;
00017 static int debug_level;
00018 static int message_level;
00019 static int init_time;
00020 static int lic;
00021 static int lic_gif;
00022 static int lic_prodman;
00023 static int lic_nldn;
00024 static char *datapath;
00025 static char progname[20];
00026
00027 static Resrc resrc;
00028
00029 public:
00030
00031 enum MessLevel { NONE,
00032 PRINT,
00033 ERROR,
00034 WARN,
00035 MESS,
00036 OUT1,
00037 OUT2,
00038 OUT3,
00039 OUT4,
00040 OUT5,
00041 OUT6,
00042 OUT7,
00043 OUT8,
00044 DEBUG1,
00045 DEBUG2,
00046 DEBUG3,
00047 DEBUG4,
00048 DEBUG5,
00049 DEBUG6,
00050 DEBUG7,
00051 DEBUG8 };
00052
00053
00054
00055
00056 enum Error {
00057 NOERR,
00058 MISC,
00059 NORUN,
00060 NOMEMORY,
00061 NOGRAPH,
00062 NOINIT,
00063 NOFILE,
00064 NODBASE,
00065 ENDFILE,
00066 NOWRITE,
00067 NOINPUT,
00068 NODATA
00069 };
00070
00071 static int setVerbose( bool val );
00072 static bool getVerbose();
00073 static int setDebug( int val );
00074 static bool isDebug();
00075 static bool isDebug(int level);
00076 static int getDebug();
00077 static inline int setError( int val ){ error = val; return 1; };
00078 static inline bool getError(){ return error; };
00079 static int setMessage( int val );
00080 static int setMessage( const char *str );
00081 static int setProgramName( const char *str );
00082 static const char *getProgramName();
00083 static int setDatabasePath( const char *str );
00084 static const char *getDatabasePath();
00085 static bool validLicense();
00086 static bool validLicense( const char *type );
00087 static int pause();
00088 static int sleep( float secs );
00089 static bool getMessage(int level);
00090 static bool checkMessage(int level);
00091 static int outMessage( const char *mess, ... );
00092 static int print( const char *mess );
00093 static int outMessage( int level, const char *mess, ... );
00094 static int outWarning( const char *mess, ... );
00095 static int outError( const char *mess, ... );
00096 static int outDebug( const char *mess, ... );
00097 static int outDebug( int level, const char *mess, ... );
00098 static double getTime();
00099 static int getVirtMem();
00100 static int exit( Error val );
00101 static const char *getVersion();
00102 static const char *getLicenseVersion();
00103 static const char *getComputerName();
00104
00105 static inline int setInitTime( int val ){
00106 init_time = val; return 1;
00107 }
00108
00109 static inline int getInitTime(){
00110 return init_time;
00111 }
00112
00113 static inline const char *getResrc( const char *name ){
00114 return resrc.get( name );
00115 }
00116 static inline const char *getResrc( const char *name, const char *def ){
00117 return resrc.get( name, def );
00118 }
00119 static inline float getResrc( const char *name, float val ){
00120 return resrc.get( name, val );
00121 }
00122 static inline int getResrc( const char *name, int val ){
00123 return resrc.get( name, val );
00124 }
00125 static inline int addResrc( const char *name, const char *data, int type ){
00126 return resrc.add( name, data, type );
00127 };
00128 static inline int putResrc( const char *name, const char *data ){
00129 return resrc.put( name, data );
00130 };
00131 static inline int setResrc( const char *name, const char *data ){
00132 return resrc.set( name, data );
00133 };
00134 static inline int appendResrc( const char *name, const char *data ){
00135 return resrc.append( name, data );
00136 };
00137 static inline int printAllResrc(){
00138 return resrc.printAll();
00139 }
00140 static inline const char *nextResrc(){
00141 return resrc.getNext();
00142 }
00143 static inline int rewindResrc(){
00144 return resrc.rewind();
00145 }
00146 static inline int getResrcType( const char *name ){
00147 return resrc.getType( name );
00148 }
00149
00150 friend class ResrcDB;
00151 friend class Prog;
00152 };
00153
00154 }
00155 #endif