小组成员: 曹可心-10223903406 朴祉燕-10224602413
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

33 lines
1.1 KiB

#include "db/vlog_manager.h"
namespace leveldb{
namespace vlog{
void VlogManager::AddVlogFile(uint64_t vlogfile_number, SequentialFile* seq_file, WritableFile* write_file){
if(vlog_table_.find(vlogfile_number) == vlog_table_.end()){
vlog_table_[vlogfile_number] = seq_file;
writable_to_sequential_[write_file] = seq_file;
}
else{
//Do Nothing
}
}
SequentialFile* VlogManager::GetVlogFile(uint64_t vlogfile_number){
auto it = vlog_table_.find(vlogfile_number);
if(it != vlog_table_.end()){
return it->second;
}
else return nullptr;
}
bool VlogManager::IsEmpty(){
return vlog_table_.size() == 0;
}
// 标记一个vlog文件有一个新的无效的value,pzy
void VlogManager::MarkVlogValueInvalid(uint64_t vlogfile_number, uint64_t offset) {
auto vlog_file = GetVlogFile(vlogfile_number);
if (vlog_file) {
vlog_file->MarkValueInvalid(offset); // 调用具体文件的标记逻辑
}
}
}// namespace vlog
}