src/main/include/CpdSearch.hpp
CpdSearch(CpdHeuristic<State, G, V>& heuristic, IGoalChecker<State>& goalChecker, Supplier& supplier, Expander& expander, IStatePruner<State>& pruner, const CpdManager<G,V>& cpdManager, cost_t epsilon, unsigned int openListCapacity = 1024) : Super2{},
            heuristic{heuristic}, goalChecker{goalChecker}, supplier{supplier}, expander{expander}, pruner{pruner},
            epsilon{epsilon}, cpdManager{cpdManager},
            openList{nullptr} {
                debug("CpdSearch constructor started!");
                if (!heuristic.isConsistent()) {
                    throw cpp_utils::exceptions::InvalidArgumentException{"the heuristic is not consistent!"};
                }
                this->openList = new StaticPriorityQueue<State>{openListCapacity, true};
                debug("CpdSearhc constructor ended!");
            }
/**
         * @brief Construct a new Time Cpd Search object
         * 
         * @param heuristic 
         * @param goalChecker 
         * @param supplier 
         * @param expander 
         * @param pruner 
         * @param cpdManager cpd manager that will be used to poll the cpd. It needs to be already loaded
         * @param epsilon suboptimality bound to test
         * @param openListCapacity 
         */
@brief Construct a new Time Cpd Search object


@brief Construct a new Time Cpd Search object
CpdSearch(CpdHeuristic<State, G, V>& heuristic, IGoalChecker<State>& goalChecker, Supplier& supplier, Expander& expander, IStatePruner<State>& pruner, const CpdManager<G,V>& cpdManager, cost_t epsilon, unsigned int openListCapacity = 1024) : Super2{},
            heuristic{heuristic}, goalChecker{goalChecker}, supplier{supplier}, expander{expander}, pruner{pruner},
            epsilon{epsilon}, cpdManager{cpdManager},
            openList{nullptr} {
                debug("CpdSearch constructor started!");
                if (!heuristic.isConsistent()) {
                    throw cpp_utils::exceptions::InvalidArgumentException{"the heuristic is not consistent!"};
                }
                this->openList = new StaticPriorityQueue<State>{openListCapacity, true};
                debug("CpdSearhc constructor ended!");
            }
CpdSearch ( CpdHeuristic < State , G , V > & heuristic , IGoalChecker < State > & goalChecker , Supplier & supplier , Expander & expander , IStatePruner < State > & pruner , const CpdManager < G , V > & cpdManager , cost_t epsilon , unsigned int openListCapacity = 1024 ) : Super2 { } , heuristic { heuristic } , goalChecker { goalChecker } , supplier { supplier } , expander { expander } , pruner { pruner } , epsilon { epsilon } , cpdManager { cpdManager } , openList { nullptr } { debug ( " " ) ; if ( ! heuristic . isConsistent ( ) ) { throw cpp_utils :: exceptions :: InvalidArgumentException { " " } ; } this -> openList = new StaticPriorityQueue < State > { openListCapacity , true } ; debug ( " " ) ; }
@brief Construct a new Time Cpd Search object
@brief Construct a new Time Cpd Search object