//***************************************************************************
//* Copyright (c) 2015 Saint Petersburg State University
//* Copyright (c) 2011-2014 Saint Petersburg Academic University
//* All Rights Reserved
//* See file LICENSE for details.
//***************************************************************************

#pragma once

#include "stage.hpp"

namespace debruijn_graph {

class RepeatResolution : public spades::AssemblyStage {
    const bool preliminary_;
  public:
    RepeatResolution(bool preliminary = false)
        : AssemblyStage(preliminary ? "Preliminary Repeat Resolving" : "Repeat Resolving",
                        preliminary ? "repeat_resolving_preliminary" : "repeat_resolving"),
                        preliminary_(preliminary) {}

    void load(conj_graph_pack&, const std::string &, const char*) {}
    void save(const conj_graph_pack&, const std::string &, const char*) const {}

    void run(conj_graph_pack &gp, const char*);
};

class ContigOutput : public spades::AssemblyStage {
  public:
    ContigOutput()
        : AssemblyStage("Contig Output", "contig_output") {}

    void load(conj_graph_pack&, const std::string &, const char*) {}
    void save(const conj_graph_pack&, const std::string &, const char*) const {}

    void run(conj_graph_pack &gp, const char*);
};

}

