本文整理汇总了C++中FileManager::read方法的典型用法代码示例。如果您正苦于以下问题:C++ FileManager::read方法的具体用法?C++ FileManager::read怎么用?C++ FileManager::read使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileManager
的用法示例。
在下文中一共展示了FileManager::read方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pageIn
void BufferManager::pageIn(int index, int pageNum) {
// Read page data from disk into buffer
char buffer[4096] = {};
int blockOffset = getBlockOffset(pageNum);
fm->read(dbName, blockOffset, 8, buffer);
// Create page
pages[index] = Page(buffer);
// Set page status
pageNums[index] = pageNum;
dirtied[index] = 0;
pinned[index] = 0;
}
示例2: forceLSNRecord
void LogManager::forceLSNRecord(int index) {
for (int pageNum = 0; pageNum < 4; pageNum++) {
char page[4096] = {};
fm->read(logName, pageNum * 8, 8, page);
for (int i = 0; i < 73; i++) {
char bytes[56] = {};
int start = i * 56;
for (int j = 0; j < 56; j++) { bytes[j] = page[start + j]; }
LogRecord rec = LogRecord(bytes);
if (rec.LSN == 0) {
char* recordBytes = (char*) &log[index];
for (int k = 0; k < 56; k++) { page[start + k] = recordBytes[k]; }
fm->write(logName, pageNum * 8, 8, page);
return;
}
}
}
}
示例3: start
void LogManager::start(char* inLogName) {
logName = inLogName;
char page[4096] = {};
for (int pageNum = 0; pageNum < 4; pageNum++) {
fm->read(logName, pageNum * 8, 8, page);
for (int i = 0; i < 73; i++) {
char bytes[56] = {};
int start = i * 56;
for (int j = 0; j < 56; j++) { bytes[j] = page[start + j]; }
LogRecord rec = LogRecord(bytes);
if (rec.LSN == 0) { return; }
else if (rec.LSN != 0) {
log[tail] = rec;
tail++;
}
}
}
}