]> vaikene.ee Git - evaf/commitdiff
Added more sources to the common library.
authorEnar Väikene <enar.vaikene@mt.com>
Thu, 21 Apr 2011 13:05:15 +0000 (16:05 +0300)
committerEnar Väikene <enar.vaikene@mt.com>
Thu, 21 Apr 2011 13:05:15 +0000 (16:05 +0300)
Removed other modules from the build system so that the common lib can be compiled.

16 files changed:
src/CMakeLists.txt
src/libs/CMakeLists.txt
src/libs/Common/CMakeLists.txt [new file with mode: 0644]
src/libs/Common/app.cpp
src/libs/Common/app.h
src/libs/Common/env.cpp [new file with mode: 0644]
src/libs/Common/env.h [new file with mode: 0644]
src/libs/Common/event.cpp [new file with mode: 0644]
src/libs/Common/event.h
src/libs/Common/eventqueue.cpp [new file with mode: 0644]
src/libs/Common/eventqueue.h [new file with mode: 0644]
src/libs/Common/iapp.h
src/libs/Common/ienv.h
src/libs/Common/ieventqueue.h
src/libs/Common/ilogger.h
src/libs/Common/registry.cpp

index 79123e72c4352940d72ef09bdeaca44a38f9754d..dc43d15f7d33ac7e33ece44cc12f39bd4abcd686 100644 (file)
@@ -1,3 +1,3 @@
 add_subdirectory(libs)
-add_subdirectory(main)
-add_subdirectory(plugins)
+#add_subdirectory(main)
+#add_subdirectory(plugins)
index 918e3ce9f4efad2fba72301144aeac3a56efcf98..d20916f2a23302e966b555b358d8a14b111e1580 100644 (file)
@@ -1,2 +1,2 @@
-add_subdirectory(Plugins)
+#add_subdirectory(Plugins)
 add_subdirectory(Common)
diff --git a/src/libs/Common/CMakeLists.txt b/src/libs/Common/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1d16647
--- /dev/null
@@ -0,0 +1,49 @@
+# Name of the target
+set(TARGET CommonLib)
+
+# Qt modules
+include(${QT_USE_FILE})
+
+# Needed for exporting/importing symbols
+add_definitions(-DCOMMON_LIBRARY)
+
+# Include files
+include_directories(${eVaf_INCLUDE})
+
+# Required eVaf libraries
+set(eVaf_LIBRARIES)
+
+# Source files
+set(SRCS
+    app.cpp
+    env.cpp
+    event.cpp
+    eventqueue.cpp
+    registry.cpp
+)
+
+# Header files for the meta-object compiler
+set(MOC_HDRS
+    iapp.h
+    ienv.h
+    ieventqueue.h
+    ilogger.h
+    iregistry.h
+    app.h
+    env.h
+    eventqueue.h
+    registry.h
+)
+
+# Version info resource file for Windows builds
+if(WIN32)
+    set(SRCS ${SRCS} version.rc)
+endif(WIN32)
+
+qt4_wrap_cpp(MOC_SRCS ${MOC_HDRS})
+
+add_library(${TARGET} SHARED ${SRCS} ${MOC_SRCS})
+
+target_link_libraries(${TARGET} ${QT_LIBRARIES} ${eVaf_LIBRARIES})
+
+install(TARGETS ${TARGET} DESTINATION bin)
index 6f289427a864d3c53b7703208499daae3991fa75..3956548f4e1656e1c1e7f44d343d0ab89fccec19 100644 (file)
@@ -32,7 +32,7 @@ using namespace eVaf::Common;
 
 iApp * iApp::instance()
 {
-    Internal::App singleton;
+    static Internal::App singleton;
     return &singleton;
 }
 
@@ -95,6 +95,8 @@ bool App::init()
         else if (QRegExp("-[-]?lang(uage)?").exactMatch(arg.at(0)) && arg.size() > 1)
             mLanguage = arg.at(1);
     }
+
+    return true;
 }
 
 QString const App::xmlFileName() const
@@ -112,7 +114,7 @@ QString const App::xmlFileName() const
             name = mName + "_" + mLanguage.left(2) + ".xml";
             fi.setFile(iEnv::instance()->etcDir() + name);
             if (fi.isReadable())
-                mName = name;
+                mXmlFile = name;
             else
                 // Fall-back to the generic name
                 mXmlFile = mName + ".xml";
index c95464179d271d011f1edb7c103876cc77c66ac1..1cf1fdef3269eee4a67148ded50151ae25ce839a 100644 (file)
@@ -59,7 +59,7 @@ public:
 
     virtual void restart();
 
-    virtual void quit();
+    virtual void quit(bool err);
 
     virtual bool isReady() const { return mReady; }
 
@@ -76,7 +76,7 @@ private:
     QString mLanguage;
 
     /// Name of the application's XML file
-    QString mXmlFile;
+    mutable QString mXmlFile;
 
 };
 
diff --git a/src/libs/Common/env.cpp b/src/libs/Common/env.cpp
new file mode 100644 (file)
index 0000000..55b133e
--- /dev/null
@@ -0,0 +1,200 @@
+/**
+ * @file Common/env.cpp
+ * @brief iEnv interface implementation
+ * @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 "env.h"
+#include "iregistry.h"
+#include "globals.h"
+#include "version.h"
+#include "iapp.h"
+
+#include <QtCore>
+#include <QDesktopServices>
+
+
+//-------------------------------------------------------------------
+
+using namespace eVaf::Common;
+
+iEnv * iEnv::instance()
+{
+    static Internal::Env singleton;
+    return &singleton;
+}
+
+
+//-------------------------------------------------------------------
+
+using namespace eVaf::Common::Internal;
+
+Env::Env()
+    : iEnv()
+{
+    setObjectName(QString("%1-iEnv").arg(VER_MODULE_NAME_STR));
+
+    // Set initial bin and root directories
+    mRootDir = mBinDir = qApp->applicationDirPath();
+    int t = mBinDir.lastIndexOf(QChar('/'), -1);
+    if (t >= 0)
+        mRootDir = mBinDir.left(t);
+
+    if (!mBinDir.endsWith('/'))
+        mBinDir.append('/');
+    if (!mRootDir.endsWith('/'))
+        mRootDir.append('/');
+}
+
+Env::~Env()
+{
+}
+
+bool Env::init()
+{
+    // Register out interface
+    iRegistry::instance()->registerInterface("iEnv", this);
+
+    // Clear directories
+    mDataRootDir.clear();
+    mQtPluginsDir.clear();
+    mEtcDir.clear();
+    mLogDir.clear();
+    mDocDir.clear();
+
+    // Process the environment
+    QStringList env = QProcess::systemEnvironment();
+    int sz = env.size();
+    for (int i = 0; i < sz; ++i) {
+        // Get the name/value pair
+        QString name = env.at(i).section('=', 0, 0).trimmed();
+        QString value = env.at(i).section('=', 1).trimmed();
+
+        if (name == "EVAF_ROOT_DIR") {
+            mRootDir = value;
+            if (!mRootDir.endsWith('/'))
+                mRootDir.append('/');
+        }
+        else if (name == "EVAF_DATA_ROOT_DIR") {
+            mDataRootDir = value;
+            if (!mDataRootDir.endsWith('/'))
+                mDataRootDir.append('/');
+        }
+        else if (name == "EVAF_ETC_DIR") {
+            mEtcDir = value;
+            if (!mEtcDir.endsWith('/'))
+                mEtcDir.append('/');
+        }
+        else if (name == "EVAF_LOG_DIR") {
+            mLogDir = value;
+            if (!mLogDir.endsWith('/'))
+                mLogDir.append('/');
+        }
+        else if (name == "EVAF_DOC_DIR") {
+            mDocDir = value;
+            if (!mDocDir.endsWith('/'))
+                mDocDir.append('/');
+        }
+        else if (name == "EVAF_QT_PLUGINS_DIR") {
+            mQtPluginsDir = value;
+            if (!mQtPluginsDir.endsWith('/'))
+                mQtPluginsDir.append('/');
+        }
+    }
+
+    // Then process comman-line arguments
+    env = QCoreApplication::arguments();
+    sz = env.size();
+    for (int i = 0; i < sz; ++i) {
+        // Get the name and optional value
+        QStringList arg = env.at(i).simplified().split(QChar('='));
+
+        if (QRegExp("-[-]?root(dir)?").exactMatch(arg.at(0)) && arg.size() > 1) {
+            mRootDir = arg.at(1);
+            if (!mRootDir.endsWith('/'))
+                mRootDir.append('/');
+        }
+        else if (QRegExp("-[-]?dataroot(dir)?").exactMatch(arg.at(0)) && arg.size() > 1) {
+            mDataRootDir = arg.at(1);
+            if (!mDataRootDir.endsWith('/'))
+                mDataRootDir.append('/');
+        }
+        else if (QRegExp("-[-]?etc(dir)?").exactMatch(arg.at(0)) && arg.size() > 1) {
+            mEtcDir = arg.at(1);
+            if (!mEtcDir.endsWith('/'))
+                mEtcDir.append('/');
+        }
+        else if (QRegExp("-[-]?log(dir)?").exactMatch(arg.at(0)) && arg.size() > 1) {
+            mLogDir = arg.at(1);
+            if (!mLogDir.endsWith('/'))
+                mLogDir.append('/');
+        }
+        else if (QRegExp("-[-]?doc(dir)?").exactMatch(arg.at(0)) && arg.size() > 1) {
+            mDocDir = arg.at(1);
+            if (!mDocDir.endsWith('/'))
+                mDocDir.append('/');
+        }
+        else if (QRegExp("-[-]?qtplugins(dir)?").exactMatch(arg.at(0)) && arg.size() > 1) {
+            mQtPluginsDir = arg.at(1);
+            if (!mQtPluginsDir.endsWith('/'))
+                mQtPluginsDir.append('/');
+        }
+    }
+
+    return true;
+}
+
+QString const Env::dataRootDir() const
+{
+    if (mDataRootDir.isEmpty()) {
+        QString dataLoc = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
+        if (!dataLoc.endsWith('/'))
+            dataLoc.append('/');
+        mDataRootDir = dataLoc.append(iApp::instance()->name());
+        if (!mDataRootDir.endsWith('/'))
+            mDataRootDir.append('/');
+    }
+
+    return mDataRootDir;
+}
+
+QString const Env::etcDir() const
+{
+    if (mEtcDir.isEmpty())
+        mEtcDir = dataRootDir() + "etc/";
+    return mEtcDir;
+}
+
+QString const Env::logDir() const
+{
+    if (mLogDir.isEmpty())
+        mLogDir = dataRootDir() + "log/";
+    return mLogDir;
+}
+
+QString const Env::docDir() const
+{
+    if (mDocDir.isEmpty())
+        mDocDir = rootDir() + "doc/";
+    return mDocDir;
+}
+
+QString const Env::qtPluginsDir() const
+{
+    if (mQtPluginsDir.isEmpty())
+        mQtPluginsDir = binDir();
+    return mQtPluginsDir;
+}
diff --git a/src/libs/Common/env.h b/src/libs/Common/env.h
new file mode 100644 (file)
index 0000000..592db2c
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+ * @file Common/env.h
+ * @brief iEnv interface implementation
+ * @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.
+ */
+
+#ifndef __COMMON_ENV_H
+#define __COMMON_ENV_H
+
+#include "ienv.h"
+
+#include <QObject>
+#include <QString>
+
+namespace eVaf {
+namespace Common {
+namespace Internal {
+
+/**
+ * iEnv interface implementation
+ */
+class Env : public iEnv
+{
+    Q_OBJECT
+
+public:
+
+    Env();
+
+    virtual ~Env();
+
+    /**
+     * Initializes the iEnv interface implementation
+     * @return True if ok; false if the initialization fails
+     */
+    bool init();
+
+    /*
+        iEnv interface
+    */
+
+    virtual QString const rootDir() const { return mRootDir; }
+
+    virtual QString const dataRootDir() const;
+
+    virtual QString const binDir() const { return mBinDir; }
+
+    virtual QString const etcDir() const;
+
+    virtual QString const logDir() const;
+
+    virtual QString const docDir() const;
+
+    virtual QString const qtPluginsDir() const;
+
+
+private: // Members
+
+    QString mRootDir;
+    mutable QString mDataRootDir;
+    QString mBinDir;
+    mutable QString mQtPluginsDir;
+    mutable QString mEtcDir;
+    mutable QString mLogDir;
+    mutable QString mDocDir;
+
+};
+
+} // namespace eVaf::Common::Internal
+} // namespace eVaf::Common
+} // namespace eVaf
+
+#endif // env.h
diff --git a/src/libs/Common/event.cpp b/src/libs/Common/event.cpp
new file mode 100644 (file)
index 0000000..be9f34b
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+ * @file Common/event.cpp
+ * @brief Event class implementation
+ * @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 "event.h"
+
+using namespace eVaf::Common;
+
+QEvent::Type const Event::eVafEvent = QEvent::Type(QEvent::registerEventType());
index 91f33c9a9bc01bc3d6182abaddb963b46e3d91fb..960b53e05db0c69d1c8656bf0f022b2d6e02b68f 100644 (file)
@@ -31,10 +31,10 @@ namespace eVaf {
 namespace Common {
 
 /**
- * Base class for all the eVaf events
+ * Event class for all the eVaf events
  * @code@include <Common/Event>@endcode
  *
- * The Event class is an event container for reference counted data objects.
+ * The Event class is an event container for all the eVaf events.
  */
 class COMMON_EXPORT Event : public QEvent
 {
diff --git a/src/libs/Common/eventqueue.cpp b/src/libs/Common/eventqueue.cpp
new file mode 100644 (file)
index 0000000..bbf30ed
--- /dev/null
@@ -0,0 +1,155 @@
+/**
+ * @file Common/eventqueue.cpp
+ * @brief Event queue interface implementation
+ * @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 "eventqueue.h"
+#include "event.h"
+#include "globals.h"
+#include "iregistry.h"
+#include "version.h"
+
+#include <QtCore>
+
+
+//-------------------------------------------------------------------
+
+using namespace eVaf::Common;
+
+iEventQueue * iEventQueue::instance()
+{
+    static Internal::EventQueue singleton;
+    return &singleton;
+}
+
+
+//-------------------------------------------------------------------
+
+using namespace eVaf::Common::Internal;
+
+EventQueue::EventQueue()
+    : iEventQueue()
+    , mNextEventId(1)
+{
+}
+
+EventQueue::~EventQueue()
+{
+}
+
+bool EventQueue::event(QEvent * e)
+{
+    // Is it an eVaf event?
+    if (e->type() == Event::eVafEvent) {
+
+        Event * event = static_cast<Event *>(e);
+
+        uint id = event->id();
+
+        // Verify that this event is registered
+        QHash<uint, QString>::const_iterator eventsIt = mEvents.constFind(id);
+        if (eventsIt == mEvents.constEnd()) {
+            return true; // We don't know it, but it is an eVaf event and we should handle it
+        }
+
+        // Send the event to all the subscribers
+        QHash<uint, QList<QPointer<QObject> > >::const_iterator subscribersIt = mSubscribers.constFind(id);
+        if (subscribersIt != mSubscribers.constEnd()) {
+            QList<QPointer<QObject> > subscribers = *subscribersIt;
+            int sz = subscribers.size();
+            for (int i = 0; i < sz; ++i) {
+
+                // Get the subscriber object and make sure that it is still alive
+                QPointer<QObject> obj = subscribers.at(i);
+                if (obj.isNull()) {
+                    continue;
+                }
+
+                // Notify the subscriber
+                bool rval = QCoreApplication::sendEvent(obj, e);
+
+                if (rval) {
+                    // The event was consumed and should be sent to any other subscribers
+                    break;
+                }
+            }
+        }
+
+        return true;
+    }
+    else
+        return iEventQueue::event(e);
+}
+
+uint EventQueue::registerEvent(QString const & name)
+{
+    uint id = queryEvent(name);
+
+    if (id == 0) {
+        mEvents.insert(mNextEventId, name);
+        id = mNextEventId++;
+    }
+
+    return id;
+}
+
+uint EventQueue::queryEvent(QString const & name) const
+{
+    return mEvents.key(name, 0);
+}
+
+void EventQueue::unregisterEvent(uint id)
+{
+    mEvents.remove(id);
+    mSubscribers.remove(id);
+}
+
+uint EventQueue::subscribeEvent(uint id, QObject * obj)
+{
+    if (id == 0)
+        return 0;
+
+    // Only registered events please
+    if (mEvents.constFind(id) == mEvents.constEnd()) {
+        return 0;
+    }
+
+    // Check for duplicates
+    if (mSubscribers[id].indexOf(obj) != -1)
+        return id;
+
+    mSubscribers[id].append(obj);
+
+    return id;
+}
+
+void EventQueue::unsubscribeEvent(uint id, QObject * obj)
+{
+    if (id == 0)
+        return;
+
+    // Is the event registered?
+    if (mEvents.constFind(id) == mEvents.constEnd())
+        return;
+
+    mSubscribers[id].removeAll(obj);
+}
+
+void EventQueue::broadcastEvent(Event * event)
+{
+    QCoreApplication::postEvent(this, event);
+}
diff --git a/src/libs/Common/eventqueue.h b/src/libs/Common/eventqueue.h
new file mode 100644 (file)
index 0000000..92bcb06
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+ * @file Common/eventqueue.h
+ * @brief Event queue interface implementation
+ * @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.
+ */
+
+#ifndef __COMMON_EVENTQUEUE_H
+#define __COMMON_EVENTQUEUE_H
+
+#include "ieventqueue.h"
+
+#include <QObject>
+#include <QString>
+#include <QHash>
+#include <QList>
+#include <QPointer>
+
+
+namespace eVaf {
+namespace Common {
+namespace Internal {
+
+/**
+ * iEventQueue interface implementation
+ */
+class EventQueue : public iEventQueue
+{
+    Q_OBJECT
+
+public:
+
+    EventQueue();
+
+    virtual ~EventQueue();
+
+    /// Qt event handler
+    virtual bool event(QEvent * e);
+
+    /*
+        iEventQueue interface
+    */
+
+    virtual uint registerEvent(QString const & name);
+
+    virtual uint queryEvent(QString const & name) const;
+
+    virtual void unregisterEvent(uint id);
+
+    virtual uint subscribeEvent(uint id, QObject * obj);
+
+    virtual void unsubscribeEvent(uint id, QObject * obj);
+
+    virtual void broadcastEvent(Event * event);
+
+
+private: // Members
+
+    /// ID of the next event
+    uint mNextEventId;
+
+    /// List of registered events
+    QHash<uint, QString> mEvents;
+
+    /// List of subscribers
+    QHash<uint, QList<QPointer<QObject> > > mSubscribers;
+
+};
+
+} // namespace evaf::Common::Internal
+} // namespace eVaf::Common
+} // namespace eVaf
+
+#endif // eventqueue.h
index 8028589f112d58659b1925598928f274ca4eb0ff..5329e1b77c6465777f731ce362031f32ef845de3 100644 (file)
@@ -130,10 +130,11 @@ public:
 
     /**
      * Requests the eVaf application to quit.
+     * @param err If true, then indicates that the application exits due to a fatal error
      *
      * This function requests the eVaf application to quit.
      */
-    virtual void quit() = 0;
+    virtual void quit(bool err) = 0;
 
     /**
      * Returns true if the eVaf application is ready.
index 0eba5eabfbf9d4f6bbe88214ebe3c72372b78171..2effd2c0b8f7f64e2736a5f734105fe853bca4cc 100644 (file)
@@ -90,7 +90,7 @@ public:
      * on Linux is ${HOME}/.${EVAF_APP_NAME}.
      *
      * This directory can be changed with the EVAF_DATA_ROOT_DIR environment variable or with the
-     * -data[root[dir]]=&lt;directory&gt; command line argument.
+     * -dataroot[dir]=&lt;directory&gt; command line argument.
      */
     virtual QString const dataRootDir() const = 0;
 
@@ -146,7 +146,7 @@ public:
      * Changing this directory does not affect the way how Qt itself loads its plugins.
      *
      * This directory can be changed with the EVAF_QT_PLUGINS_DIR environment variable or with the
-     * -qt[plugins[dir]]=&lt;directory&gt; command line argument.
+     * -qtplugins[dir]=&lt;directory&gt; command line argument.
      */
     virtual QString const qtPluginsDir() const = 0;
 
index ce12e428e8f27c53ed06f22024a735acf32eb4d5..bf60a674bd2f2fb6bbbaa3e049d2faf6e895d499 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file Common/ieventqueue.h
- * @brief Event queue interfaces
+ * @brief Event queue interface
  * @author Enar Vaikene
  *
  * Copyright (c) 2011 Enar Vaikene
@@ -28,6 +28,8 @@
 namespace eVaf {
 namespace Common {
 
+class Event;
+
 /**
  * The eVaf event queue interface
  * @code#include <Common/iEventQueue>@endcode
@@ -48,6 +50,12 @@ public:
     /// Empty virtual destructor
     virtual ~iEventQueue() {}
 
+    /**
+     * Returns the instance of the iEventQueue interface
+     * @return The iEventQueue interface
+     */
+    static iEventQueue * instance();
+
     /**
      * Registers an event
      * @param name Name of the event
index ecc4858bb8d4a11330b026858de7c6ed411786cc..4a75e3e42390ed026aca7ae880de3ac220bc9cfc 100644 (file)
@@ -79,7 +79,7 @@ public:
      * are expected to be linked against the Common library, then this is the preferred method of obtaining
      * the iLogger interface. The other method is by using the iRegistry interface.
      */
-    static iLogger::instance();
+    static iLogger * instance();
 
     /**
      * Returns the current default source name.
index c0f9cae9e1f4e4330213f20d3d6a758fc044e447..d93e469eaeea97185e39c9e61b7f9db0146fa261 100644 (file)
@@ -41,7 +41,7 @@ using namespace eVaf::Common::Internal;
 Registry::Registry()
     : iRegistry()
 {
-    setObjectName(QString("%1-iRegistry").arg(VER_MODULENAME_STR));
+    setObjectName(QString("%1-iRegistry").arg(VER_MODULE_NAME_STR));
 
     // Register our own interface
     registerInterface("iRegistry", this);
@@ -55,9 +55,11 @@ Registry::~Registry()
 bool Registry::registerInterface(QString const & name, QObject * obj)
 {
     mInterfaces.insert(name, QPointer<QObject>(obj));
+
+    return true;
 }
 
-QObject * Registry::queryInterface(QString const & name)
+QObject * Registry::queryInterface(QString const & name) const
 {
     QHash<QString, QPointer<QObject> >::const_iterator it = mInterfaces.constFind(name);
     return it != mInterfaces.constEnd() ? *it : 0;