Здравствуйте, AlexGin, Вы писали:
C>>1. Старый win-код нужно сохранить/трогать по минимуму? (Необходимо будет собирать и для win, и для lin?)
AG>Да.
Сдаётся мне, что ваша ситуация чем-то похожа на нашу: была win-only система, которую после некоторых событий нужно было сделать кроссплатформенной. Я прав?
В этом случае максимально удобным оказался, естественно, подход, когда специфичные для платформы вызовы не разбросаны по коду, а локализованы в компонентах-обёртках (на начало работы над кроссплатформой у нас так было процентов на 90, в том числе и код, подобный тому, который ты приводил, был в отдельном компоненте).
C>>2. Говорим о GUI-программе? (Потому что если не GUI, то вообще средствами языка можно обойтись.)
AG>Нет. Здесь речь скорее о CLI-приложении. Или даже о системной службе (демоне).
AG>В программе с GUI я бы без вопросов всё это закрыл на Qt.
AG>Пока подробности проекта не прорисовались — но я уже что-то намечаю.
Если приложение новое и не-GUI, то условный «обмен сообщениями» сейчас добавляем только в том случае, если того требует используемый framework/библиотека и, соответственно, тот, который там используется (web-сервер на базе boost.beast – asio, естественно, gstreamer – его GstBus, который по факту glib), в остальных случаях стараемся обойтись средствами языка.
C>>По поводу asio. Ну, во-первых, можно использовать и без boost.
AG>Да и какой смысл — тащить всё ради asio...
C>>Upd. Сейчас увидел, что ты GNOME используешь, если про GUI говорим — по glib документацию не смотрел? Например, начиная отсюда:
C>>The Main Event Loop: GLib Reference Manual
AG>Спасибо за подсказку! Обязательно посмотрю!
AG>Но ограничиваться только гномом как-то ИМХО не правильно.
Да в том-то и дело, что нет тут ограничения, просто glib для gnome родной, но это отнюдь не значит, что не будет работать не в gnome. Опять же в качестве примера: мой дорогой во всех смыслах этого слова gstreamer – glib'овский, но работает везде, и Qt, в частности, его с удовольствием в QtMultimedia использует. Другой вопрос, что glib не всем, скажем так, нравится (вон коллега Marty сильно плевался с glib поработав), т.к. C-интерфейс, но ничего – в smart-pointer'ы оборачиваешь, лямбды присобачиваешь и можно жить более-менее удобно.