1/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2/* 3 * Copyright 2017 Couchbase, Inc 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18#include "collections/collections_callbacks.h" 19#include "kv_bucket.h" 20#include "vbucket.h" 21 22namespace Collections { 23namespace VB { 24 25void LogicallyDeletedCallback::callback(CacheLookup& lookup) { 26 VBucketPtr vb = store.getVBucket(lookup.getVBucketId()); 27 if (!vb) { 28 return; 29 } 30 // Check with collections if this key should be loaded, status EEXISTS is 31 // the only way to inform the scan to not continue with this key. 32 if (vb->lockCollections().isLogicallyDeleted( 33 lookup.getKey(), lookup.getBySeqno(), lookup.getSeparator())) { 34 setStatus(ENGINE_KEY_EEXISTS); 35 return; 36 } 37} 38 39} // end namespace VB 40} // end namespace Collections