/* * include/framework/reconstruction/ReconstructionPolicy.h * * Reconstruction class interface, used to implement custom reconstruction * policies. * * Copyright (C) 2023-2024 Douglas B. Rumbaugh * Dong Xie * * Distributed under the Modified BSD License. * */ #pragma once #include "framework/scheduling/LockManager.h" #include "framework/scheduling/Version.h" #include "framework/structure/ExtensionStructure.h" #include "util/types.h" namespace de { template QueryType> class ReconstructionPolicy { typedef ExtensionStructure StructureType; public: ReconstructionPolicy() {} virtual std::vector get_reconstruction_tasks(const Version *version, LockManager &lock_mngr) const = 0; virtual ReconstructionVector get_flush_tasks(const Version *version) const = 0; }; } // namespace de