Russian Qt Forum
Ноябрь 24, 2024, 21:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Список сигналов/слотов  (Прочитано 10359 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #15 : Апрель 21, 2014, 17:45 »

Предлагаемый Вами "строб", на мой взгляд, не решает задачу т.к. все равно нужно лезть в потроха "A" (иначе откуда взять сам имедж для посылки). Ну может это и неизбежно.

А что, А "чужой"? Если свой, то какие проблемы...

Тут надо понимать так - чтобы А и В нормально обменивались объектами, оба должны поддерживать некий протокол обмена.

Насчет очереди - я так понимаю, если речь о компоузинге, то в очередь должны ставиться выходные кадры А, или указатели на них. Это если А и В асинхронно обрабатывают видео-поток (я бы так и проектировал).
« Последнее редактирование: Апрель 21, 2014, 17:53 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Апрель 21, 2014, 18:34 »

Насчет очереди - я так понимаю, если речь о компоузинге, то в очередь должны ставиться выходные кадры А, или указатели на них. Это если А и В асинхронно обрабатывают видео-поток (я бы так и проектировал).
В данном случае я специально/умышленно избегаю всякого углубления в предметную область, приводимый пример с маской - всего лишь пример.

В общем случае задача проста/примитивна: B "ссылается" на A, т.е использует данные A, сам при этом ими не владея. Часто это выражается простым членом-указателем B, этот указатель может быть нулевым. Когда таких связок немного - можно пережить неудобства (де)сериализации. Когда же их число разрастается - есть смысл "обобщить", тем более что есть др запрос пользователя: интерактивное связывание.
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #17 : Апрель 21, 2014, 22:28 »

Если В получает указатель от А, то это значит, что А уже завершил работу. И В никогда не получает "нецельные" данные при случайном разрыве связи А и В. То есть, если В получил указатель на данные, то он может их спокойно обрабатывать - данные  консистентны. А это значит, что никакая синхронизация не нужна. И для В совершенно по барабану факт, что связь разорвана - он просто в этом случае перестанет получать указатели. Факт разрыва связи нужен только для А, чтобы он перестал передавать. Да и то не обязательно - может и передавать, если захочется, просто указатели никуда попадать не будут. Также точно для В не интересен факт, что связь установлена - как только её установят и А пошлет указатель, то В может его обрабатывать.

Синхронизация нужна только если А станет передавать В сериализованные данные, часть из которых может быть утеряна при разрыве связи во время передачи.

Насколько я понимаю Qt, при передаче указателя ничего не произойдет - указатель, это атомарные данные, которые будут доставлены целиком, или не доставлены в случае разрыва при их передаче.
Записан

2^7-1 == 127, задумайтесь...
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 23.