/*
 * @brief Defines the EuroScope plug-in
 * @file src/PlugIn.h
 * @author Sven Czarnian <devel@svcz.de>
 * @copyright Copyright 2021 Sven Czarnian
 * @license This project is published under the GNU General Public License v3 (GPLv3)
 */

#pragma once

#include <functional>

#pragma warning(push, 0)
#include <EuroScopePlugIn.h>
#pragma warning(pop)

namespace aman {
    /**
     * @brief Defines the EuroScope plug-in
     * @ingroup euroscope
     */
    class PlugIn : public EuroScopePlugIn::CPlugIn {
    public:
        /**
         * @brief Defines the different internal and external tag functions
         */
        enum class TagItemFunction {
        };

    private:
        enum class TagItemElement {
        };

    public:
        /**
         * @brief Creates a new plug-in
         */
        PlugIn();
        /**
         * @brief Destroys all internal strcutures
         */
        ~PlugIn() noexcept;

        PlugIn(const PlugIn&) = delete;
        PlugIn(PlugIn&&) = delete;
        PlugIn& operator=(const PlugIn&) = delete;
        PlugIn& operator=(PlugIn&&) = delete;
    };
}
