/* * ApplicationFolder.cpp * * Created on: Oct 12, 2019 * Author: Gabriele Contini */ #include #include #include //B#include #include "../base/logger.h" #include "../api/datatypes.h" #include "../base/base.h" #include "../base/EventRegistry.h" #include "../base/FileUtils.hpp" #include "../os/os.h" #include "ApplicationFolder.hpp" #include namespace license { namespace locate { using namespace std; ApplicationFolder::ApplicationFolder() : LocatorStrategy("ApplicationFolder") { } ApplicationFolder::~ApplicationFolder() { } const vector ApplicationFolder::license_locations( EventRegistry &eventRegistry) { vector diskFiles; char fname[MAX_PATH] = { 0 }; const FUNCTION_RETURN fret = getModuleName(fname); if (fret == FUNC_RET_OK) { const string module_name = remove_extension(fname); const string temptativeLicense = string(module_name) + ".lic"; ifstream f(temptativeLicense.c_str()); if (f.good()) { diskFiles.push_back(temptativeLicense); eventRegistry.addEvent(LICENSE_FOUND, temptativeLicense.c_str()); } else { eventRegistry.addEvent(LICENSE_FILE_NOT_FOUND, temptativeLicense.c_str()); } f.close(); } else { LOG_WARN("Error determining module name."); } return diskFiles; } } } /* namespace license */