#pragma once #include #include "calrt_utils.h" #include "calrt_vdevice.h" #include "calrt_calbin.h" namespace calrt { // template // CalrtError_e configure(CalculetDevice *vDev, Calbin *pParser) // { // using DECAYTYPE = std::decay_t; // REPORT_CALRT_ERROR_IF(CalrtErrorAssert, vDev != nullptr, "Device pointer is nullptr"); // if constexpr(std::is_same_v) // { // auto physicalDev = vDev->GetDevice(); // return configure_impl(physicalDev.get(), pParser); // } // else if constexpr(std::is_base_of_v) // { // return configure_impl(vDev, pParser); // } // else // { // return CalrtErrorInvalidConfiguration; // } // } /** * @brief * * @param vDevPtr * @param pCalbin * @param dumpIni enable dump configuration ini. default: disable * @return CalrtError_e */ CALRT_API CalrtError_e configure(VirtualDevice* vDevPtr, Calbin *pCalbin, bool dumpIni=false); /** * @brief * * @param devPtr * @param pCalbin * @param dumpIni enable dump configuration ini. default: disable * @return CalrtError_e */ CALRT_API CalrtError_e configure(std::unique_ptr& vDevPtr, Calbin *pCalbin, bool dumpIni=false); CALRT_API CalbinModel* findModel(std::vector &modelList, const char *name); }