//
// Created by Dan Crosby on 3/14/21.
//

#ifndef EAGLE0_COMMANDFACTORIESLIST_HPP
#define EAGLE0_COMMANDFACTORIESLIST_HPP

#include <memory>
#include <vector>

#include "src/main/cpp/net/eagle0/shardok/library/command_factories/CommandFactory.hpp"

namespace shardok {

using std::shared_ptr;
using std::vector;

class CommandFactoriesList {
private:
    vector<shared_ptr<const CommandFactory>> factories;

public:
    explicit CommandFactoriesList(const SettingsGetter& settings);

    auto GetFactories() const -> vector<shared_ptr<const CommandFactory>>;
};
}  // namespace shardok

#endif  // EAGLE0_COMMANDFACTORIESLIST_HPP
