예제 #1
0
 bool LdbLogsReader::parse_one_key(int32_t type, leveldb::Slice& key)
 {
   bool ret = leveldb::GetLengthPrefixedSlice(last_log_record_, &key);
   log_debug("@@ parse key ret : %d", ret);
   if (ret && filter_ != NULL && filter_->ok(type, key, last_sequence_))
   {
     // skip this key
     key.clear();  
   }
   return ret;
 }
예제 #2
0
 bool LdbLogsReader::parse_one_kv(int32_t type, leveldb::Slice& key, leveldb::Slice& value)
 {
   bool ret = leveldb::GetLengthPrefixedSlice(last_log_record_, &key);
   log_debug("@@ parse key ret : %d", ret);
   if (ret)
   {
     if (filter_ == NULL || filter_->ok(type, key, last_sequence_))
     {
       ret = leveldb::GetLengthPrefixedSlice(last_log_record_, &value);
     }
     else
     {
       // skip this key
       key.clear();  
       // skip value
       ret = leveldb::SkipLengthPrefixedSlice(last_log_record_);
     }
   }
   return ret;
 }