00001 #ifndef TABLE_METADATA_H
00002 #define TABLE_METADATA_H
00003
00004 #include "global.h"
00005 #include "Field.h"
00006 #include "Link.h"
00007 #include <vector>
00008 using namespace std;
00009
00017
00018
00019
00020 class TableMetaData {
00021
00022 public:
00026 TableMetaData();
00027
00028
00029
00033 ~TableMetaData();
00034
00038 TableMetaData operator=(const TableMetaData &t);
00039
00043 TableMetaData(const TableMetaData &t);
00044
00045 int setDesciption(char *desc, int *status);
00046 int setFields(vector<Field> f, int *status);
00047 int setLinks(vector<Link> l, int *status);
00048
00053 int getNumOfColumns(int &ncols, int *status);
00054
00058 int getNumOfLinks(int &nLinks, int *status);
00059
00064 int getField(Field &field, int fieldNum, int *status);
00065
00070 int getLink(Link &link, int linkNum, int *status);
00071
00075 int getDescription(char *&desc, int *status);
00076
00077
00078 void cleanup();
00079 void init(void);
00080
00081
00082 private:
00083 char * m_description;
00084 vector<Field> m_fieldList;
00085 vector<Link> m_linkList;
00086
00087 void makecopy(const TableMetaData &t);
00088
00089
00090
00091 };
00092
00093 #endif