/*
 * Pluma - Plug-in Management Framework
 * Copyright (C) 2010-2012 Gil Costa (gsaurus@gmail.com)
 *
 * This software is provided 'as-is', without any express or implied warranty.
 * In no event will the authors be held liable for any damages arising from the use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it freely,
 * subject to the following restrictions:
 *
 * 1. The origin of this software must not be misrepresented;
 *    you must not claim that you wrote the original software.
 *    If you use this software in a product, an acknowledgment
 *    in the product documentation would be appreciated but is not required.
 *
 * 2. Altered source versions must be plainly marked as such,
 *    and must not be misrepresented as being the original software.
 *
 * 3. This notice may not be removed or altered from any source distribution.
 */

#include "host.h"
#include "provider.h"

namespace kyplugin
{

Provider::~Provider()
{
    /* Nothing to do */
}

bool Provider::isCompatible(const Host &host) const
{
    // 检测类型主机是否支持该类型
    const std::string &type = this->kypluginGetType();
    if (!host.knows(type)) {
        return false;
    }

    // 判断版本号是否兼容
    unsigned int lowest = host.getLowestVersion(type);
    unsigned int current = host.getVersion(type);
    unsigned int myVersion = this->getVersion();
    return lowest <= myVersion && myVersion <= current;
}

} // namespace kyplugin
