Введение в разработку приложений на платформе Atom/MeeGo. Граничин О.Н - 82 стр.

UptoLike

82
Создание учётной записи jabber
Для выполнения лабораторной работы необходимы 2 учётные записи jabber. Следует отметить,
что учётная запись GTalk также является учётной записью jabber. Если у вас нет регистрации в jabber,
учётную запись jabber.org можно создать бесплатно, пройдя по ссылке: https://register.jabber.org/
.
· Зарегистрируйте учётные записи в клиенте jabber (например, в empathy).
· Добавьте в список контактов каждой записи вторую и авторизуйте их, для того, чтоб между этими
двумя учётными записями можно было обмениваться сообщениями.
7.10.3.2. Работа с TelepathyQt4
Telepathy является общим back-end'ом для различных сервисов IM, аудио- и видеотелефонии.
Объединяя эти сервисы, Telepathy предоставляет единый простой интерфейс, что позволяет
клиентским приложениям использовать любой из сервисов без необходимости реализовывать
поддержку конкретного протокола. Telepathy позволяет также без каких-либо ухищрений запускать
несколько клиентских приложений, использующих один сервис. Для взаимодействия между
различными компонентами системы, Telepathy использует шину D-Bus.
Telepathy-qt4 представляет собой прозрачную Qt-обёртку для D-Bus интерфейса, который
используется Telepathy. Использование D-Bus накладывает заметный отпечаток на API Telepathy-qt4,
который в силу этой причины ялвяется асинхронным. Эта асинхронность реализована при помощи
механизма сигналов и слотов: при выполнении D-Bus вызова создаётся объект класса
PendingOperation, который по завершении вызова и получении результата отправляет сигнал
finished().
Специфика интерфейса заключается также в том, что дабы минимизировать обмен сообщениями
по сравнительно медленному каналу D-Bus, Telepathy-qt4 зачастую не загружает полную информацию
об D-Bus-объекте и не включает функциональности, которые генерируют частые сообщения. В силу
этого часть функциональности некоторых объектов Telepathy-qt4 бывает изначально недоступна. Для
того, чтоб активировать те или иные функции, необходимо выполнить запрос becomeReady() с
соответствующим значением Features.
Во избежание утечек памяти интерфейс Telepathy-qt4 активно использует «умные» указатели.
Базовые компоненты telepathy-qt4
· ConnectionManagerпредставляет сервис, обеспечивающий взаимодействие по определенному
протоколу или по группе протоколов. Например, gabble (для протокола jabber)
· Connectionсоединение, создаваемое сущностью ConnectionManager
· Channelканал обмена данными, привязанный к определенной сущности Connection. Может
быть текстовым, медиаканалом и каналом для передачи файлов.
· AccountManagerменеджер зарегистрированных в системе аккаунтов
· Accountзарегистрированный в системе пользовательский аккаунт
· AbstractClient клиент, обработчик каналов, принадлежащий одному из типов:
o AbstractClientApprover
o AbstractClientHandlerнепосредственно обработчик
o AbstractClientObserverнаблюдатель. Может использоваться, например, для
журналирования
· ChannelDispatcherопределяет, какой обработчик будет обрабатывать созданный канал
· ClientRegistrarрегистрирует обработчики.
Низкоуровневая реализация клиента
Низкоуровневый подход, который разработчики Telepathy-qt4 не рекомендуют использовать в
обычных приложениях, характерен тем, что не использует сохраненную в системе информацию об