/* * identification_strategy.hpp * * Created on: Jan 1, 2020 * Author: devel */ #ifndef SRC_LIBRARY_PC_IDENTIFIER_IDENTIFICATION_STRATEGY_HPP_ #define SRC_LIBRARY_PC_IDENTIFIER_IDENTIFICATION_STRATEGY_HPP_ #include #include #include #include #include "../base/base.h" #include "pc_identifier.hpp" namespace license { namespace pc_identifier { class IdentificationStrategy { protected: LCC_EVENT_TYPE validate_identifier(const PcIdentifier& identifier, const std::vector>& available_ids) const; public: IdentificationStrategy(){}; virtual ~IdentificationStrategy(){}; virtual LCC_API_IDENTIFICATION_STRATEGY identification_strategy() const = 0; virtual FUNCTION_RETURN identify_pc(PcIdentifier& identifier) const = 0; virtual std::vector alternative_ids() const = 0; virtual LCC_EVENT_TYPE validate_identifier(const PcIdentifier& identifier) const = 0; static std::unique_ptr get_strategy(LCC_API_IDENTIFICATION_STRATEGY strategy); }; } // namespace pc_identifier } /* namespace license */ #endif /* SRC_LIBRARY_PC_IDENTIFIER_IDENTIFICATION_STRATEGY_HPP_ */