// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include "i_document_db_reference.h" namespace search { struct IDocumentMetaStoreContext; } namespace proton { struct IAttributeManager; class IGidToLidChangeHandler; /* * Class for getting target attributes for imported * attributes, and for getting interface for mapping to lids * compatible with the target attributes. */ class DocumentDBReference : public IDocumentDBReference { std::shared_ptr _attrMgr; std::shared_ptr _dmsContext; std::shared_ptr _gidToLidChangeHandler; public: DocumentDBReference(std::shared_ptr attrMgr, std::shared_ptr dmsContext, std::shared_ptr gidToLidChangeHandler); virtual ~DocumentDBReference(); virtual std::shared_ptr getAttribute(vespalib::stringref name) override; virtual std::shared_ptr getDocumentMetaStore() const override; virtual std::shared_ptr getGidToLidMapperFactory() override; virtual std::unique_ptr makeGidToLidChangeRegistrator(const vespalib::string &docTypeName) override; }; } // namespace proton