00001 /* 00002 * SystemManager.h 00003 * 00004 * Created on: Apr 20, 2010 00005 * Author: green 00006 */ 00007 00008 #ifndef SYSTEMMANAGER_H_ 00009 #define SYSTEMMANAGER_H_ 00010 00011 #include "Common.h" 00012 #include "RecordFileScan.h" 00013 #include "PageFileManager.h" 00014 #include "RecordFileManager.h" 00015 #include "IndexManager.h" 00016 #include "RecordFileHandle.h" 00017 #include <vector> 00018 00027 class SystemManager { 00028 public: 00032 static SystemManager* getInstance(); 00033 00045 ReturnCode createDb(const char *dbName); 00046 00058 ReturnCode dropDb(const char* dbName); 00059 00070 ReturnCode openDb(const char *dbName); 00071 00079 ReturnCode closeDb(); 00080 00093 ReturnCode createTable(const char *relName, int attrCount, 00094 AttributeInfo *attributes); 00095 00106 ReturnCode dropTable(const char *relName); 00107 00119 ReturnCode createIndex(const char *relName, const char *attrName); 00120 00132 ReturnCode dropIndex(const char *relName, const char *attrName); 00133 00163 ReturnCode load(const char *relName, const char *fileName); 00164 00173 ReturnCode info(); 00174 00187 ReturnCode info(const char *relName); 00188 00203 ReturnCode print(const char *relName); 00204 00214 bool isOpen(); 00215 00216 00217 00218 private: 00219 SystemManager(); 00220 ~SystemManager(); 00221 00222 static const char* ATTRIBUTE_CATALOG; 00223 static const char* RELATION_CATALOG; 00224 00225 }; 00226 00227 #endif /* SYSTEMMANAGER_H_ */