Проектирование веб-сервисов в приложении Blackberry Cascades

Я (пытаюсь) написать приложение Cascades, которое включает множество вызовов различных веб-служб. У меня это отлично работает в моем основном классе приложения, но я хотел бы иметь возможность вызывать другой класс - класс диспетчера служб, если хотите, - и заставить его возвращать значение моему вызывающему классу приложения, когда вызов службы был обработан классом Services Manager и завершен.

Это хороший дизайн? Это путь, по которому я бы пошел в Java, но я совершенно новичок в C++ и QT. Могу ли я потенциально использовать процесс излучения и сигнала для создания этой функциональности?

Спасибо


person user1754529    schedule 17.10.2012    source источник


Ответы (1)


Да, если я правильно прочитал ваш вопрос.

Для класса ServicesManager вполне разумно общаться с классом Application через сигналы/слоты. Похоже, что они работают в разных потоках, но это нормально для сигналов/слотов Qt. Кроме того, вы можете подклассировать класс сигнала для отправки пользовательской полезной нагрузки (или просто сказать получателю: «Эй, я закончил, запросите у меня результаты»).

Если вам нужна асинхронность, взгляните на это довольно хорошее объяснение:

Сигналы/слоты Qt в потоках

person Mark Stevens    schedule 17.10.2012
comment
@ user1754529: Я начал задаваться вопросом, не является ли объяснение, на которое я вам указал, слишком сложным для того, что вы хотите. См. qt-project.org/doc/qt-4.8/threads-qobject. .html для более простого объяснения непосредственно от разработчиков Qt. (Перейдите примерно на 2/3 к сигналам и слотам между потоками - я думаю, что блокировка или соединение в очереди - это то, что вам нужно, в зависимости от того, хотите ли вы синхронизировать или асинхронно для своего приложения соответственно). - person Mark Stevens; 18.10.2012