#ifndef HALMAKEPTR_H #define HALMAKEPTR_H #include "IHal.h" #include "IHalCpp.h" #include "StatusCode.h" #include class HalMakePtr { public: HalMakePtr() = default; virtual ~HalMakePtr() = default; static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); virtual StatusCode Init() { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } virtual StatusCode UnInit() { return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } virtual StatusCode CreateHalPtr(IHal **hal); virtual StatusCode CreateHalSharePtr(std::shared_ptr &impl); }; #endif