Привет! Я работаю над проектом c ++, в котором я пытаюсь сохранить независимость от ОС, и у меня есть два процесса, которые должны взаимодействовать.Я думал о настройке 3-го процесса (возможно, в качестве службы?) Для координации двух других асинхронно.
Клиент 1 сообщит промежуточному процессу, когда данные будут готовы, и отправит данные ему.Затем промежуточный процесс будет хранить эти данные до тех пор, пока клиент 2 не скажет ему, что он готов к данным.Если промежуточный процесс не получил новые данные от клиента 1, он скажет клиенту 2 подождать.
Поскольку я пытаюсь сохранить независимость этой ОС, я не знаю, что использовать.Я изучал использование MPI, но он не совсем подходит для этой цели.Я также изучил Boost.ASIO, Named Pipes, RPC и RCF.В настоящее время я занимаюсь программированием в Windows, но я бы хотел избежать использования WIN_API, чтобы код потенциально мог быть скомпилирован в Linux.
Вот немного подробнее о двух процессах.
У нас есть внутренний процесс / модель (клиент 1), который будет получать начальные входные данные от GUI (клиент 2, написанный на Qt) через промежуточный процесс.Затем модель продолжит работу до тех пор, пока не будет выполнено конечное условие, и отправит данные на сервер по мере готовности.GUI будет запрашивать промежуточный процесс для получения данных через регулярные промежутки времени, и ему будет предложено подождать, если модель не обновит данные.Поскольку данные становятся доступными из модели, мы также хотим иметь возможность сохранять любые предыдущие данные из текущего сеанса для экспорта в файл, если пользователь решит это сделать (т. Е. Мы хотим, чтобы графический интерфейс пользователя выдавал командуинтерфейс для экспорта (или загрузки) данных).
Мои привилегии модификации задней части / модели минимальны, кроме как придерживаться дизайна, изложенного выше.У меня приличный опыт работы с c ++, но не так много параллельных / асинхронных приложений.Любая помощь или направление с благодарностью.