//
// Created by sozonov on 18.10.2021.
//
#pragma once

#include <filesystem>

namespace itr {

    /*! Создание пары именнованых каналов (на прием и передачу данных). <br>
     *  Данная функция является блокирующей, до подключения к именованым каналам. <br>
     *  После успешного подключения, в потоко info будет переденна информация об этом. <br>
     *  //todo: В функции реализована проверка валидности пути, информация об этом предается в info <br>
     *
     * @param to_input Название именнованного канала на приём данных.
     * @param to_output Название именнованного канала на передачу данных.
     * @param info Поток вывода информации.
     * @return Кортеж с уникальными указатаелями на потоки ввода/вывода для каждого именнованого канала.
     */
    std::tuple<
        std::unique_ptr<std::istream>,
        std::unique_ptr<std::ostream>
    > create_pipes( std::filesystem::path to_input, std::filesystem::path to_output, std::ostream & info );
}

