Распределенная система управления объектами данных представляет собой объектно-ориентированный фреймворк управления данными в памяти, предоставляющий разработчикам приложений возможности для создания, запроса, удаления, изменения и подписки на базовые объекты данных в памяти. Она также обладает распределенными возможностями, что позволяет удовлетворять требования синхронизации объектов данных между несколькими устройствами для одного и того же приложения в сценариях супер-терминалов.
Распределенные данные объекта предоставляют интерфейсы на языке JavaScript, что позволяет разработчикам использовать распределенные объекты так же, как они используют локальные объекты. Поддерживаемые типы данных включают числовые, символьные и булевы типы, а также массивы и сложные типы, включающие вложенные базовые типы.## Ограничения
//foundation/distributeddatamgr/data_object/
├── frameworks # Код уровня фреймворка
│ ├── innerkitsimpl # Реализация внутренних интерфейсов
│ │ ├── include
│ │ ├── src
│ │ └── test # Тесты на языке C++
│ └── jskitsimpl # Реализация интерфейсов на языке JavaScript
│ ├── include
│ ├── src
│ └── test # Тесты на языке JavaScript
├── interfaces # Код интерфейсов
│ ├── innerkits # Объявления внутренних интерфейсов
│ └── jskits # Объявления интерфейсов на языке JavaScript
├── picture # Библиотека ресурсных изображений
└── samples # Примеры разработки
Рис. 1 Структура реализации распределенных данных объекта
При определении каждого распределенного объекта данных создается распределенная база данных памяти, которая идентифицируется сессионным идентификатором (sessionId). При выполнении операций чтения и записи для распределенного объекта данных, фактически выполняются операции чтения и записи для распределенной базы данных. Распределенные данные объекта синхронизируются через программную шину.## Описание интерфейсов
import distributedObject from '@ohos.data.distributedDataObject'
Имя интерфейса | Описание |
---|---|
function createDistributedObject(source: object): DistributedObject; | Создает распределенный объект source определяет свойства распределенного объекта возвращает созданный распределенный объект, см. интерфейс DistributedObject |
function genSessionId(): string; | Генерирует sessionId возвращает случайно сгенерированный sessionId |
Имя интерфейса | Описание |
---|---|
setSessionId(sessionId?: string): boolean; | Устанавливает sessionId для синхронизации, если в доверительной сети есть несколько устройств, объекты на этих устройствах могут автоматически синхронизироваться, если их sessionId установлены одинаково sessionId является идентификатором сети для разных устройств, установка sessionId в "" или ее отсутствие приводит к выходу из сети возвращает результат операции, true означает успешное установление sessionId |
off(type: 'change', callback? : Callback<{ sessionId: string, fields: Array }>): void | Удаляет отслеживание изменений данных объекта type всегда 'change' callback является необязательным параметром, отсутствие параметра означает удаление всех отслеживаний изменений для объекта |
on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>): void | Отслеживает изменения статуса объекта (в сети или вне сети) type всегда 'status' callback вызывается при изменении статуса объекта, параметры callback: sessionId - идентификатор изменения объекта, networkId - идентификатор сети объекта, status - статус объекта ('online' - в сети, 'offline' - вне сети) |
off(type: 'status', callback? : Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }>): void | Удаляет отслеживание изменений статуса объекта (в сети или вне сети) type всегда 'status' callback является необязательным параметром, отсутствие параметра означает удаление всех отслеживаний изменений статуса для объекта |
save(deviceId: string, callback: AsyncCallback): void | Позволяет сохранить данные объекта. |
deviceId — идентификатор устройства, задается пользователем. Например, "local". | |
revokeSave(callback: AsyncCallback): void | Отменяет сохранение данных объекта.callback — обратный вызов для отмены сохранения данных объекта. |
Для распределенных данных объектов доступны следующие примеры разработки: Пример приложения "Заметки" Распределенные данные объекты в приложении "Заметки" используются через распределенный объект данных. Когда пользователь добавляет событие заметок, изменяет заголовок и содержимое события или очищает список событий на одном устройстве, изменения данных синхронизируются и обновляются на других устройствах в доверенной сети.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )