/****************************************************************************** 
* Copyright (c) 2017 Volkswagen Group of America. 
* 
* This program and the accompanying materials are made 
* available under the terms of the Eclipse Public License 2.0 
* which is available at https://www.eclipse.org/legal/epl-2.0/ 
* 
* SPDX-License-Identifier: EPL-2.0 
******************************************************************************/

//-----------------------------------------------------------------------------
//! @file  PluginManagerInterface.h
//! @brief ...
//!
//-----------------------------------------------------------------------------

#ifndef PLUGINMANAGERINTERFACE_H
#define PLUGINMANAGERINTERFACE_H

#include <QDir>
#include <QObject>
#include <QString>

#include "openPASS/ServiceInterface.h"

static ServiceManagerInterface::ID const PluginManagerInterfaceID =
    ServiceManagerInterfaceID("openPASS.PluginManagerInterface");

class PluginManagerInterface : public QObject,
                               public ServiceInterface<PluginManagerInterface, PluginManagerInterfaceID>
{
    Q_OBJECT

public:
    explicit PluginManagerInterface(QObject *const parent = nullptr) :
        QObject(parent), ServiceInterface(this)
    {
    }
    virtual ~PluginManagerInterface() = default;

Q_SIGNALS:
    void started() const;

public:
    virtual bool loadDirectory(QDir const &directory) = 0;
    virtual bool isLoaded(QString const &iid) const = 0;
};

#endif // PLUGINMANAGERINTERFACE_H