// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include "rankmanager.h" namespace streaming { /* * Snapshot of SearchEnvironment used by SearchVisitor. The snapshot * is created as part of applying config to the search environment and * references classes based on the same config snapshot. */ class SearchEnvironmentSnapshot { std::shared_ptr _rank_manager_snapshot; std::shared_ptr _vsm_fields_cfg; std::shared_ptr _docsum_tools; int64_t _config_generation; public: SearchEnvironmentSnapshot(const RankManager& rank_manager, const vsm::VSMAdapter& vsm_adapter, int64_t config_generation); ~SearchEnvironmentSnapshot(); const std::shared_ptr& get_rank_manager_snapshot() const noexcept { return _rank_manager_snapshot; } const std::shared_ptr& get_vsm_fields_config() const noexcept { return _vsm_fields_cfg; } const std::shared_ptr& get_docsum_tools() const noexcept { return _docsum_tools; } int64_t get_config_generation() const noexcept { return _config_generation; } }; }