00001 #ifndef _WINC_UNIT
00002 #define _WINC_UNIT
00003
00004 #include <WXP/String.h>
00005 #include <WXP/UnitData.h>
00006
00007 namespace WXP {
00008 class Unit {
00009 UnitData cvs[10];
00010 int ncvs;
00011
00012 public:
00013 Unit();
00014 int init();
00015 bool valid( const char *in, const char *out );
00016 float convert( float value, const char *in, const char *out );
00017 int readFile( const char *uin, const char *uout, UnitData &data );
00018
00019 static int scale( const char *in, float rscale, const char *mstr, String &out );
00020 static int parse( const char *str, String &var, String &units );
00021 static int change( String &str, const char *units );
00022 static bool equal( const char *unit1, const char *unit2 );
00023 static int simplify( char *unit );
00024 static int simplify( String &unit );
00025 };
00026 }
00027 #endif