/**
* UGENE - Integrated Bioinformatics Tools.
* Copyright (C) 2008-2021 UniPro <ugene@unipro.ru>
* http://ugene.net
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/

#include "BaseThroughWorker.h"

#include <U2Core/U2OpStatusUtils.h>

namespace U2 {
namespace LocalWorkflow {

BaseThroughWorker::BaseThroughWorker(Actor *a, const QString &inPortId, const QString &outPortId)
    : BaseOneOneWorker(a, /* autoTransitBus= */ true, inPortId, outPortId) {
}

void BaseThroughWorker::cleanup() {
}

Task *BaseThroughWorker::processNextInputMessage() {
    const Message message = getMessageAndSetupScriptValues(input);
    U2OpStatusImpl os;
    Task *task = createTask(message, os);
    if (os.hasError()) {
        reportError(os.getError());
    }
    return task;
}

Task *BaseThroughWorker::onInputEnded() {
    return NULL;
}

Message BaseThroughWorker::composeMessage(const QVariantMap &data) {
    return Message(output->getBusType(), data);
}

}    // namespace LocalWorkflow
}    // namespace U2
