// // Created by robin on 7/22/16. // #include #include "libnfc_cpptools/LibNfc.h" #include "LibNfcInternal.h" #define Q(x) #x #define QUOTE(x) Q(x) #ifndef GIT_SHA1 #define GIT_SHA1 "unknown" #endif #ifndef GIT_REF_NAME #define GIT_REF_NAME "unknown" #endif namespace LibNfc { namespace Core { LibNfcContext::LibNfcContext() { _libNfc = std::make_shared(); } LibNfcContext::~LibNfcContext() { _libNfc->clean(); } LibNfc::Utils::ResultBool LibNfcContext::init() { if (isInitialized()) { return LibNfc::Utils::ResultBool::error("LibNfc is already initialized"); } return _libNfc->init(); } std::string LibNfcContext::getLibNfcVersion() { return LibNfcInternal::getVersion(); } void LibNfcContext::clean() { if (isInitialized()) { _libNfc->clean(); } } bool LibNfcContext::isInitialized() const { return _libNfc->getContext() != 0; } LibNfc::Utils::Result>> LibNfcContext::getDevices() const { if (!isInitialized()) { return LibNfc::Utils::Result>>::error("LibNfc is not initialized"); } auto devicesResult = _libNfc->getDevices(); if (!devicesResult) { return LibNfc::Utils::Result>>::error(devicesResult); } auto devices = devicesResult.getData(); std::vector> devicesBusiness; for (auto device : devices) { devicesBusiness.push_back(std::make_shared(device)); } return LibNfc::Utils::Result>>::ok(devicesBusiness); } std::string LibNfcContext::getMifareToolsVersion() { return QUOTE(GIT_REF_NAME) "-" QUOTE(GIT_SHA1); } }; // Core }; // LibNfc