Взаимодействие объектов
От: vascat Россия  
Дата: 30.01.07 14:25
Оценка:
Доброго времени суток!
Ищу библиотеку, которая бы позволяла связывать объекты по схеме слот>>>сигнал. Ну типа как это в QT реализовано... QT хороша, но для моих целей несколько неприменима (размер, лицензия...)
Есть ли такое в природе? Единственное, нужна под Линукс/BSD
Re: Взаимодействие объектов
От: Garrrrr  
Дата: 30.01.07 14:28
Оценка:
Здравствуйте, vascat, Вы писали:

V>Доброго времени суток!

V>Ищу библиотеку, которая бы позволяла связывать объекты по схеме слот>>>сигнал. Ну типа как это в QT реализовано... QT хороша, но для моих целей несколько неприменима (размер, лицензия...)
V>Есть ли такое в природе? Единственное, нужна под Линукс/BSD
первое, что необходимо сделать
Re[2]: Взаимодействие объектов
От: vascat Россия  
Дата: 30.01.07 15:19
Оценка:
Увы, на гугле крайне сложно найти не ссылки, а собственный опыт использования того или иного. За тем, собственно, и запостил свой вопрос
Re[3]: Взаимодействие объектов
От: Garrrrr  
Дата: 30.01.07 15:26
Оценка:
Здравствуйте, vascat, Вы писали:

V>Увы, на гугле крайне сложно найти не ссылки, а собственный опыт использования того или иного. За тем, собственно, и запостил свой вопрос

Прочтите свой первоначальный вопрос — в нем что-нибудь написано о собственном опыте? Возможно, я просмотрел.
Если основываться на собственный опыт — рекомендую boost::signal.
Минусы — требуется неплохая квалификация использующего ее инженера, достаточно тормознутая (в ядро какой-нить реал-тайм системы по обработке чего-бы-то-ни-было я бы ее наверно запихивать не стал).
Плюсы — написано in pure C++ way, хорошо интегрирована с прочими фишками бюста, низок порог вхождения (однократного чтения документации обычно вполне хватает чтобы начать использовать ее in generic way), по факту — mainstream, вроде как стабильна, отлажена и оттестирована.
Re[4]: Взаимодействие объектов
От: vascat Россия  
Дата: 30.01.07 15:53
Оценка:
Здравствуйте, Garrrrr, Вы писали:

G>Прочтите свой первоначальный вопрос — в нем что-нибудь написано о собственном опыте? Возможно, я просмотрел.

Согласен, вопрос поставил недостаточно корректно. Прошу прощения и спасибо за терпение

G>Если основываться на собственный опыт — рекомендую boost::signal.

G>Минусы — требуется неплохая квалификация использующего ее инженера, достаточно тормознутая (в ядро какой-нить реал-тайм системы по обработке чего-бы-то-ни-было я бы ее наверно запихивать не стал).
Планирую использовать на серверной стороне системы, обрабатывающей большое число запросов и оперирующей большим количеством собственных объектов, так что наверное не подойдет, хотя пока не попробую, уверенности не будет

Кстати, гугл навел на паттерн Observer, попробую копать в его сторону
Re: Взаимодействие объектов
От: Пётр Седов Россия  
Дата: 01.02.07 02:21
Оценка:
Здравствуйте, vascat, Вы писали:

V>Ищу библиотеку, которая бы позволяла связывать объекты по схеме слот>>>сигнал.

Boost.Signals (Garrrrr уже написал здесь
Автор: Garrrrr
Дата: 30.01.07
)
libsigc++
Winnie.Closure

Когда нужен 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);

Может, и в GCC что-нибудь найдётся.
Пётр Седов (ушёл с RSDN)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.