logo
Литература_1 / photon_old

Механизм транспортировки

Механизм транспортировки в Photon'е позволяет Вам переносить любые данные из одного приложения в другое, даже если приложения принадлежат к различным платформам с отличающимся форматом передачи данных (расположением старшего/младшего байтов). Этот механизм используется как основа технологии "тащить и бросать", но может использоваться и для других целей, таких как конфигурационные файлы.

Имеется два способа транспортировки данных:

Inline

Поточный. Данные пакуются в поток (stream) и отсылаются адресату.

By request

По запросу. Пакуются в поток и отсылаются описания данных. Адресат принимает решение, какой тип (типы) данных ему нужен и отсылает запрос обратно на источник, который затем упаковывает только затребовнные данные.

Для того, чтобы транспортировать данные, механизм транспортировки должен паковать данные в источнике – приложении или виджете – и распаковывать их в адресате. Он должен быть способен опознавать тип данных, чтобы определять, какой вид паковки и распаковки должен быть выполнен. Это выполняется через транспортный реестр.

Существует несколько регистрируемых системой типов, которые появляются после инициализации Photon'овской библиотеки через вызовы PtInit() или PtAppInit() – это для приложений PhAB выполняется автоматически. Регистрируемыми системой типами являются:

Вы можете добавить в реестр другие типы данных, как это описано в разделе "Регистрация новых транспортных типов" ниже в этой главе. Механизм транспортировки работает посредством построения списка данных, предназначенных для транспортировки, пакования данных в поток, в котором каждому блоку предшествует заголовок, описывающий данные.

              1. Рис. 21-1. Упакованные данные и заголовки

Когда данные прибывают к адресату, заголовки извлекаются для получения распаковочных инструкций к данным. Механизм транспортировки автоматически распаковывает данные; приложение получает данные в своём оригинальном виде.

    1. Yandex.RTB R-A-252273-3
      Yandex.RTB R-A-252273-4