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

#ifndef EAGLE0_SHARDOK_LIBRARY_COMMAND_FACTORIES_COMMAND_FACTORIES_LIST_HPP
#define EAGLE0_SHARDOK_LIBRARY_COMMAND_FACTORIES_COMMAND_FACTORIES_LIST_HPP

#include <memory>
#include <vector>

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

namespace shardok {

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

public:
    explicit CommandFactoriesList(const SettingsGetter& settings);

    [[nodiscard]] auto GetFactories() const -> std::vector<std::shared_ptr<const CommandFactory>>;
};
}  // namespace shardok

#endif  // EAGLE0_SHARDOK_LIBRARY_COMMAND_FACTORIES_COMMAND_FACTORIES_LIST_HPP
