/***************************************************************************
 *   Copyright (C) 2009 by Eric MAEKER, MD.                                *
 *   eric.maeker@free.fr                                                   *
 *                                                                         *
 *   This code is free and open source .                                   *
 *   It is released under the terms of the new BSD License.                *
 *                                                                         *
 *   Redistribution and use in source and binary forms, with or without    *
 *   modification, are permitted provided that the following conditions    *
 *   are met:                                                              *
 *   - Redistributions of source code must retain the above copyright      *
 *   notice, this list of conditions and the following disclaimer.         *
 *   - Redistributions in binary form must reproduce the above copyright   *
 *   notice, this list of conditions and the following disclaimer in the   *
 *   documentation and/or other materials provided with the distribution.  *
 *   - Neither the name of the FreeMedForms' organization nor the names of *
 *   its contributors may be used to endorse or promote products derived   *
 *   from this software without specific prior written permission.         *
 *                                                                         *
 *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   *
 *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     *
 *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS     *
 *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE        *
 *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,  *
 *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,  *
 *   BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;      *
 *   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER      *
 *   CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT    *
 *   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN     *
 *   ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE       *
 *   POSSIBILITY OF SUCH DAMAGE.                                           *
 ***************************************************************************/
#include "coreimpl.h"

#include <common/databasemanager.h>
#include <common/commandlineparser.h>
#include <common/settings.h>

namespace Common {
    static CoreImpl *m_instance = 0;
} // namespace Core

Common::ICore* Common::ICore::instance()
{
    return m_instance;
}

CoreImpl::CoreImpl() :
        Common::ICore(),
        m_Settings(0),
        m_DbManager(0),
        m_CommandLine(0)
{
    Common::m_instance = this;
}

CoreImpl::~CoreImpl()
{
    if (m_CommandLine) {
        delete m_CommandLine;
        m_CommandLine = 0;
    }
    if (m_DbManager) {
        delete m_DbManager;
        m_DbManager = 0;
    }
}

bool CoreImpl::init()
{
    m_Settings = Common::Settings::instance();
    m_DbManager = new Common::DatabaseManager();
    m_CommandLine = new Common::CommandLine();
    return true;
}
