Доброго времени суток!
Ищу библиотеку, которая бы позволяла связывать объекты по схеме слот>>>сигнал. Ну типа как это в QT реализовано... QT хороша, но для моих целей несколько неприменима (размер, лицензия...)
Есть ли такое в природе? Единственное, нужна под Линукс/BSD
Здравствуйте, vascat, Вы писали:
V>Доброго времени суток! V>Ищу библиотеку, которая бы позволяла связывать объекты по схеме слот>>>сигнал. Ну типа как это в QT реализовано... QT хороша, но для моих целей несколько неприменима (размер, лицензия...) V>Есть ли такое в природе? Единственное, нужна под Линукс/BSD первое, что необходимо сделать
Здравствуйте, vascat, Вы писали:
V>Увы, на гугле крайне сложно найти не ссылки, а собственный опыт использования того или иного. За тем, собственно, и запостил свой вопрос
Прочтите свой первоначальный вопрос — в нем что-нибудь написано о собственном опыте? Возможно, я просмотрел.
Если основываться на собственный опыт — рекомендую boost::signal.
Минусы — требуется неплохая квалификация использующего ее инженера, достаточно тормознутая (в ядро какой-нить реал-тайм системы по обработке чего-бы-то-ни-было я бы ее наверно запихивать не стал).
Плюсы — написано in pure C++ way, хорошо интегрирована с прочими фишками бюста, низок порог вхождения (однократного чтения документации обычно вполне хватает чтобы начать использовать ее in generic way), по факту — mainstream, вроде как стабильна, отлажена и оттестирована.
Здравствуйте, Garrrrr, Вы писали:
G>Прочтите свой первоначальный вопрос — в нем что-нибудь написано о собственном опыте? Возможно, я просмотрел.
Согласен, вопрос поставил недостаточно корректно. Прошу прощения и спасибо за терпение
G>Если основываться на собственный опыт — рекомендую boost::signal. G>Минусы — требуется неплохая квалификация использующего ее инженера, достаточно тормознутая (в ядро какой-нить реал-тайм системы по обработке чего-бы-то-ни-было я бы ее наверно запихивать не стал).
Планирую использовать на серверной стороне системы, обрабатывающей большое число запросов и оперирующей большим количеством собственных объектов, так что наверное не подойдет, хотя пока не попробую, уверенности не будет
Кстати, гугл навел на паттерн Observer, попробую копать в его сторону
Здравствуйте, vascat, Вы писали:
V>Ищу библиотеку, которая бы позволяла связывать объекты по схеме слот>>>сигнал. Boost.Signals (Garrrrr уже написал здесь
Когда нужен callback, я использую обычный указатель на функцию + void* для контекста (например, this). Код получается неуклюжий, но так проще всего, и нет зависимости от библиотеки.
Компилятор C++ может иметь расширение для удобных callback-ов. Например, в Borland C++ Builder-е (VCL\controls.hpp):
typedef void __fastcall (__closure *TMouseMoveEvent)(System::TObject* Sender, Classes::TShiftState Shift, int X, int Y);