00001 #ifndef _WINC_DATA
00002 #define _WINC_DATA
00003
00004 #include <WXP/Date.h>
00005 #include <WXP/Datum.h>
00006 #include <WXP/EarthPoint.h>
00007 #include <WXP/String.h>
00008 #include <WXP/VarSpec.h>
00009
00010 namespace WXP {
00011 class Data {
00012 String dinfo;
00013 String datim;
00014 Date date;
00015 char source[20];
00016
00017 char **info;
00018 VarSpec *vs;
00019 int *type;
00020 int fields;
00021
00022 char **id;
00023 EarthPoint *ept;
00024 float **value;
00025 char ***str;
00026 int num;
00027 int limit;
00028
00029 int initClass();
00030 public:
00031
00032 Data();
00033 Data( int rfields );
00034 ~Data();
00035 Data( const Data &data );
00036 Data operator=(const Data &data );
00037 static int copyInfo( Data &data1, const Data &data2 );
00038 static int copy( Data &data1, const Data &data2 );
00039 int copy( Data &data );
00040
00041 int init();
00042 int clear();
00043 inline int getNum(){ return num; };
00044 int setSource( const char *str );
00045 inline const char *getSource(){ return source; };
00046 int setFields( int rfields );
00047 inline int getFields(){ return fields; };
00048 int setType( int fld, int rtype );
00049 int getType( int fld );
00050 int expand( int rlimit );
00051 int expand();
00052 int setDate( Date &rdate );
00053 inline int getDate( Date &rdate ){ rdate = date; return 1; };
00054 inline Date getDate(){ return date; };
00055 int setDatim( const char *rdatim );
00056 const char *getDatim();
00057 int setInfo( const char *rinfo );
00058 const char *getInfo();
00059 int setInfo( int ind, const char *rinfo );
00060 const char *getInfo( int ind );
00061 int searchInfo( const char *str );
00062 int setUnits( int ind, const char *unit );
00063 const char *getUnits( int ind );
00064 int setVarSpec( int fld, VarSpec &rvs );
00065 int getVarSpec( int fld, VarSpec &rvs );
00066 int getIndex( const char *rid );
00067 int setId( int ind, const char *rid );
00068 const char *getId( int ind );
00069 int setLoc( int ind, EarthPoint &rpt );
00070 int setLoc( int ind, float lat, float lon );
00071 int getLoc( int ind, EarthPoint &rpt );
00072 EarthPoint getLoc( int ind );
00073 int setValue( int ind, float rval );
00074 int setValue( int ind, int fld, float rval );
00075 int setString( int ind, const char *rstr );
00076 int setString( int ind, int fld, const char *rstr );
00077 int add( Data &data, int ind, int fld );
00078 int add( Data &data, int ind );
00079 int add( const char *rid, EarthPoint &rpt, float rval );
00080 int add( const char *rid, EarthPoint &rpt, float rval1, float rval2 );
00081 int add( Datum &datum );
00082 int addValue( EarthPoint &rpt, float val );
00083 float getValue( int ind );
00084 float getValue( int ind, int fld );
00085 const char *getString( int ind );
00086 const char *getString( int ind, int fld );
00087 int print();
00088 int printData(int ind);
00089 int printData();
00090
00091 enum Type {
00092 NONE,
00093 VALUE,
00094 STRING
00095 };
00096 };
00097 }
00098 #endif