5#include "./utils/ErrorCodes.hpp"
6#include "./utils/MpiUtils.hpp"
7#include "./utils/Parameters.hpp"
9#include "./sharing/GlobalStrategies/GlobalSharingStrategy.hpp"
10#include "./sharing/SharingStrategy.hpp"
12#include "solvers/CDCL/SolverCdclInterface.hpp"
13#include "solvers/LocalSearch/LocalSearchInterface.hpp"
17#define LOCAL_SHARING_STRATEGY_COUNT 5
37 std::vector<std::shared_ptr<SharingStrategy>>& localStrategies,
38 std::vector<std::shared_ptr<SolverCdclInterface>>& cdclSolvers);
46 std::vector<std::shared_ptr<GlobalSharingStrategy>>& globalStrategies);
53 static void launchSharers(std::vector<std::shared_ptr<SharingStrategy>>& sharingStrategies,
54 std::vector<std::unique_ptr<Sharer>>& sharers);
62 std::vector<std::shared_ptr<SolverCdclInterface>>& newSolvers);
Factory class for creating and managing sharing strategies.
Definition SharingStrategyFactory.hpp:23
static void addEntitiesToLocal(std::vector< std::shared_ptr< SharingStrategy > > &localStrategies, std::vector< std::shared_ptr< SolverCdclInterface > > &newSolvers)
Add new entities (solvers) to existing local strategies.
static int selectedLocal
The selected local sharing strategy number.
Definition SharingStrategyFactory.hpp:25
static void launchSharers(std::vector< std::shared_ptr< SharingStrategy > > &sharingStrategies, std::vector< std::unique_ptr< Sharer > > &sharers)
Launch sharer threads for the given sharing strategies.
static int selectedGlobal
The selected global sharing strategy number.
Definition SharingStrategyFactory.hpp:28
static void instantiateGlobalStrategies(int strategyNumber, std::vector< std::shared_ptr< GlobalSharingStrategy > > &globalStrategies)
Instantiate global sharing strategies.
static void instantiateLocalStrategies(int strategyNumber, std::vector< std::shared_ptr< SharingStrategy > > &localStrategies, std::vector< std::shared_ptr< SolverCdclInterface > > &cdclSolvers)
Instantiate local sharing strategies.