Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Появился вопрос: можно ли создавать в c++ свои события. Например у меня есть объект, мне нужно, чтобы при изменении его имени у меня возникало событие, которое я мог бы обработать. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 07:30 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Приложение консольное, ос - ubuntu ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 07:33 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
La FranceЗдравствуйте! Появился вопрос: можно ли создавать в c++ свои события. Например у меня есть объект, мне нужно, чтобы при изменении его имени у меня возникало событие, которое я мог бы обработать. boost::signal курим В линуксе можно ещё задействовать POSIX signal курим В Qt есть своё сигнально-слотовое хозяйство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 10:19 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
La Franceможно ли создавать в c++ свои события. Например у меня есть объект, мне нужно, чтобы при изменении его имени у меня возникало событие, которое я мог бы обработать. Любое событие это не более чем callback, который вызывается в некоторой ситуации. Поэтому - да, события создавать можно. Достаточно инкапсулировать код изменения имени чтобы избежать его дублирования и заставить его (код) вызывать данный callback при изменении имени. Всё тривиально. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 12:08 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВсё тривиально. А как с многопоточностью и асинхронностью быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 12:40 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
luislomА как с многопоточностью и асинхронностью быть? Объявить, что обработчик события всегда вызывается в контексте потока вызвавшего событие и забыть. Пусть у его писателя голова болит о синхронизации (если таковая вообще требуется). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 12:47 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОбъявить, что обработчик события всегда вызывается в контексте потока вызвавшего событие и забыть. Пусть у его писателя голова болит о синхронизации (если таковая вообще требуется). А как быть с паттерном производитель-потребитель? Как быть с паттернами Диспетчер, Казначей ( не знаю как он там у академиков, я его так называю), и т.д. Ведь если обрабатывать сигнал в том же потоке, в котором он генерится, то он, сигнал, вообще тогда в рог не упёрся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 13:11 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
luislomА как быть с паттерном производитель-потребитель? Оставить их витающим в облаках теоретикам и спуститься на грешную землю, поближе к железу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 13:43 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Оставить их витающим в облаках теоретикам и спуститься на грешную землю, поближе к железу. Зря Вы так. Нет, конечно, для всяких гаджетов с ведроидом или яблокачалкабаблОС оно всё является фантазиями теоретиков, но для нагруженных сетевых сервисов, например, исполняющихся на машинах с 16-ю ядрами-очень даже в тему. И да, если у ТС однопоточное десктоп приложение, то про сигналы лучше не думать. Но поиграться с ними прикольно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 14:07 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДостаточно инкапсулировать код изменения имени чтобы избежать его дублирования и заставить его (код) вызывать данный callback при изменении имени. Можно подробней об этом? callback я могу написать, но мне интересно как заставить его сработать при изменении имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 16:01 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
La Francecallback я могу написать, но мне интересно как заставить его сработать при изменении имени. Примерно так: Код: sql 1. 2. 3. 4. 5. 6. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 17:23 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
La FranceПоявился вопрос: можно ли создавать в c++ свои события. Например у меня есть объект, мне нужно, чтобы при изменении его имени у меня возникало событие, которое я мог бы обработать. Нет нельзя. В С++ нет таких language keywords как события (events). Вот если-бы мы обсуждали C# или Objective C - то другое дело. Те примеры которые тебе приводят в топике - не имеют никакого отношения к событиям. В любом другом контексте в них невозможно распознать "обработчик" или "событие". В них - просто плоский код. Просто callback с параметрами. Отдельный вопрос - библиотеки графики. В них есть зарезервированные имена типов (классов) событий. Можно было-бы посмотреть как реализованы обработки контролов в Win32 GDI или GTK. Но ты заведомо не указал графическую библиотеку и отметил что приложение - консольное. Ограничил нас. Видимо так надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 00:30 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
maytonМожно было-бы посмотреть как реализованы обработки контролов в Win32 GDI или GTK. За GTK не скажу, а в Win32 GDI Window Function - тот же "плоский callback с параметрами" указываемый классу или отдельному окну при создании. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 00:35 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
maytonНет нельзя. В С++ нет таких language keywords как события (events). Вот если-бы мы обсуждали C# или Objective C - то другое дело. Те примеры которые тебе приводят в топике - не имеют никакого отношения к событиям. В любом другом контексте в них невозможно распознать "обработчик" или "событие". В них - просто плоский код. Просто callback с параметрами. Ага. То есть есть колбеки а есть события. В колбеках код плоский, а в событиях он ...бугорчатый, да? И вызывается обработчик события при помощи магии и заклинаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 04:49 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Про зарезервированные имена типов (классов) я уже упомянул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 11:33 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
maytonПро зарезервированные имена типов (классов) я уже упомянул.И что? Если в языке нету специального ключевого слова, то значит в нем уже нельзя сделать события? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 17:52 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
White OwlmaytonПро зарезервированные имена типов (классов) я уже упомянул.И что? Если в языке нету специального ключевого слова, то значит в нем уже нельзя сделать события? Невозможно доказать что это событие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 20:04 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
maytonНевозможно доказать что это событие. Для опознания "события" необходимы такие признаки как нимб над головой и умение ходить по воде?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 20:09 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
maytonНевозможно доказать что это событие."Бремя доказательства лежит на обвиняющей стороне" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 20:10 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
luislomВ линуксе можно ещё задействовать POSIX signal курим Совсем не для этого они предназначены, учитывая, что стандартная реакция на такой сигнал -- завершение программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 09:31 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
NekZСовсем не для этого они предназначены, учитывая, что стандартная реакция на такой сигнал -- завершение программы. Может, прежде чем эксперта включать, изучите POSIX сигналы, возможности их применения и предназначение. Для затравки (на каком курсе учитесь, предпоследнем?) напишите: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Запустите, а в другой консоли делайте Код: powershell 1. И снизайдёт да просветление, и да прибудет с Вами сила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 10:51 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
wikiВ информатике и программировании событие — это сообщение программного обеспечения (либо его части), которое указывает, что произошло. Ряд протоколов, таких, как MIDI, событийно-обоснованы. См. также Оконные сообщения. О событии в UNIX, Unix-подобных и других POSIX-совместимых операционных системах процесс асинхронно уведомляется сигналом (один из способов взаимодействия между процессами). Событие (примитив синхронизации). Используется в Windows для реализации взаимодействия потоков. В моём понимании событие это нечто более сложное чем callback. Должна быть "среда" где события ходят. Событие должно существовать независимо от процесса его продившего. И событие может быть принято (перехвачено) несколькими подписчиками (процессами или потоками или приложениями). Вышеуказанный пример на С++ в моём IMHO не подходит под эти критерии. Вот как-то так вобщем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 11:45 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
White Owl, Dimitry Sibiryakov . Выше я попытался вам ответить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 12:09 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
Ребята, по-моему все гораздо проще, чем в тут все себе это представляете. авторПоявился вопрос: можно ли создавать в c++ свои события. Нет, в C++ нет такой концепции, нет поддержки событий. Чтобы ее реализовать, нужно использовать какие-то библиотеки, реализующие подобную концепцию. автор Например у меня есть объект, мне нужно, чтобы при изменении его имени у меня возникало событие, которое я мог бы обработать. Это pattern "Subject - Observer" из GoF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 12:25 |
|
||
|
События в c++
|
|||
|---|---|---|---|
|
#18+
maytonВ моём понимании событие это нечто более сложное чем callback. Должна быть "среда" где события ходят. Событие должно существовать независимо от процесса его продившего. И событие может быть принято (перехвачено) несколькими подписчиками (процессами или потоками или приложениями). Это абстрактно-высокоуровневая терминология класса паттернов. Когда дело доходит до конкретного кода, всё всегда вырождается в колбэки, статические или динамические. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 13:28 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38613096&tid=2019529]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
982ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 299ms |
| total: | 1377ms |

| 0 / 0 |
