// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include #include #include namespace vespalib { class nbostream; } namespace proton { class LidVectorContext { public: using LidVector = std::vector; private: LidVector _result; size_t _docIdLimit; enum { ARRAY = 0, BITVECTOR = 1 }; public: using SP = std::shared_ptr; LidVectorContext(); LidVectorContext(size_t docIdLimit); LidVectorContext(size_t docIdLimit, const LidVector &lids); void addLid(const search::DocumentIdT lid); void serialize(vespalib::nbostream &os) const; void deserialize(vespalib::nbostream &is); const LidVector &getLidVector() const { return _result; } void clearLidVector() { _result.clear(); } size_t getDocIdLimit() const { return _docIdLimit; } size_t getNumLids() const { return _result.size(); } }; }