git.fiddlerwoaroof.com
Raw Blame History
#ifndef INSTALLER_H_
#define INSTALLER_H_

#include <string>
#include <memory>
#include <functional>

#include "token.h"
#include "sys_unistd.h"
#include "user.h"


class installer_ifc {
    public:
        using generator = std::function<std::string()>;
        virtual std::string install_token() const {
            return "123456";
        }
};

class installer {
    public:
        using delegate = std::shared_ptr<installer_ifc>;
    private:
        delegate delegate_;
    public:
        installer(const delegate &delegate = std::make_shared<installer_ifc>()) : delegate_(delegate) {}
        std::string install_token() const {
            return delegate_->install_token();
        }
        static installer create(const tokens &tokens, const unistd &unistd,
            const directory &directory, const installer_ifc::generator &generator);
};




#endif