/** * Constructor. * * Created the master file which stores all the meta data about various distributed file systems. */ DistributedFileSystemManager :: DistributedFileSystemManager(const string root_path) { this->root_path = root_path; // Create meta data file. const string path = root_path + "/" + METADATA_FILE; FileManager fileManager; if (!fileManager.findIfExists(path) && !fileManager.createFile (path, "")) { cout << "Failed to create DFS manager metadata file." << endl; exit(1); } }
void init() { FileManager* fm = new FileManager(); BufPageManager* bpm = new BufPageManager(fm); fm->createFile("testfile.txt"); //新建文件 int fileID; fm->openFile("testfile.txt", fileID); //打开文件,fileID是返回的文件id int index; BufType b = bpm->allocPage(fileID, 0, index, true); b[0] = 256; b[1] = 100; b[2] = 0; b[3] = 0; for (int i = 0; i < b[1]; i++) { b[i+4] = 0; } bpm->markDirty(index); fm->writePage(fileID, 0, b, 0); bpm->close(); }
int main() { FileManager* fm = new FileManager(); BufPageManager* bpm = new BufPageManager(fm); fm->createFile("testfile.txt"); //新建文件 int fileID; fm->openFile("testfile.txt", fileID); //打开文件,fileID是返回的文件id for (int pageID = 0; pageID < 1000; ++ pageID) { int index; //为pageID获取一个缓存页 BufType b = bpm->allocPage(fileID, pageID, index, false); b[0] = pageID; //对缓存页进行写操作 bpm->markDirty(index); //标记脏页 } for (int pageID = 0; pageID < 1000; ++ pageID) { int index; //为pageID获取一个缓存页 BufType b = bpm->getPage(fileID, pageID, index); cout << b[0] << endl; //读取缓存页中第一个整数 bpm->access(index); //标记访问 } return 0; }