* @version 1.0
* @brief This file contains the definition of plugin dao class.
*/
-
+#include <stddef.h>
#include <dpl/wrt-dao-rw/plugin_dao.h>
#include <dpl/log/log.h>
#include <dpl/foreach.h>
row.Set_InstallationState(INSTALLATION_IN_PROGRESS);
row.Set_PluginLibraryPath(
DPL::FromUTF8String(pluginPath));
- row.Set_InstallURI(
- DPL::FromUTF8String(metafile.m_featuresInstallURI));
- row.Set_KeyCN(
- DPL::FromUTF8String(metafile.m_featuresKeyCN));
- row.Set_RootKeyCN(
- DPL::FromUTF8String(metafile.m_featuresRootCN));
- row.Set_RootKeyFingerprint(
- DPL::FromUTF8String(metafile.m_featuresRootFingerprint));
WRT_DB_INSERT(insert, PluginProperties, &WrtDatabase::interface())
insert->Values(row);
}
}
+void PluginDAO::unregisterPlugin(DbPluginHandle pluginHandle)
+{
+ LogDebug("unregisterPlugin plugin. Handle: " << pluginHandle);
+
+ Try {
+ DPL::DB::ORM::wrt::ScopedTransaction transaction(
+ &WrtDatabase::interface());
+
+ if (!isPluginInstalled(pluginHandle)) {
+ LogInfo("PluginHandle is invalid. Handle: " << pluginHandle);
+ return;
+
+ } else {
+ using namespace DPL::DB::ORM;
+ using namespace DPL::DB::ORM::wrt;
+
+ WRT_DB_DELETE(del, PluginProperties, &WrtDatabase::interface())
+ del->Where(
+ Equals<PluginProperties::PluginPropertiesId>(pluginHandle));
+ del->Execute();
+
+ transaction.Commit();
+ LogDebug(" >> Plugin Unregistered. Handle: " << pluginHandle);
+ }
+ }
+ Catch(DPL::DB::SqlConnection::Exception::Base)
+ {
+ ReThrowMsg(PluginDAO::Exception::DatabaseError,
+ "Failed in UnregisterPlugin");
+ }
+}
+
} // namespace WrtDB