]> vaikene.ee Git - evaf/blobdiff - src/plugins/Test/factory.cpp
Added a module for testing the eVaf framework.
[evaf] / src / plugins / Test / factory.cpp
diff --git a/src/plugins/Test/factory.cpp b/src/plugins/Test/factory.cpp
new file mode 100644 (file)
index 0000000..feb433f
--- /dev/null
@@ -0,0 +1,62 @@
+/**
+ * @file plugins/Test/factory.cpp
+ * @brief eVaf test plugin factory
+ * @author Enar Vaikene
+ *
+ * Copyright (c) 2011 Enar Vaikene
+ *
+ * This file is part of the eVaf C++ cross-platform application development framework.
+ *
+ * This file can be used under the terms of the GNU General Public License
+ * version 3.0 as published by the Free Software Foundation and appearing in
+ * the file LICENSE included in the packaging of this file. Please review the
+ * the following information to ensure the GNU General Public License version
+ * 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+ *
+ * Alternatively, this file may be used in accordance with the Commercial License
+ * Agreement provided with the Software.
+ */
+
+#include "factory.h"
+#include "test.h"
+#include "version.h"
+
+#include <Common/iLogger>
+
+#include <QtCore>
+
+using namespace eVaf::Test;
+
+VER_EXPORT_VERSION_INFO()
+Q_EXPORT_PLUGIN2(VER_MODULE_NAME_STR, Factory)
+
+
+//-------------------------------------------------------------------
+
+Factory::Factory()
+    : Plugins::iPluginFactory()
+    , mTest(0)
+{
+    setObjectName(QString("%1-Factory").arg(VER_MODULE_NAME_STR));
+
+    EVAF_INFO("%s created", qPrintable(objectName()));
+}
+
+Factory::~Factory()
+{
+    if (mTest)
+        delete mTest;
+
+    EVAF_INFO("%s destroyed", qPrintable(objectName()));
+}
+
+QObject * Factory::create(QString const & name)
+{
+    if (name == "Test") {
+        if (mTest == 0)
+            mTest = new Internal::TestPlugin;
+        return mTest;
+    }
+    else
+        return 0;
+}