1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-distributeddatamgr_data_object

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README_zh.md

Распределенные данные объекта компонент

Введение

Распределенная система управления объектами данных представляет собой объектно-ориентированный фреймворк управления данными в памяти, предоставляющий разработчикам приложений возможности для создания, запроса, удаления, изменения и подписки на базовые объекты данных в памяти. Она также обладает распределенными возможностями, что позволяет удовлетворять требования синхронизации объектов данных между несколькими устройствами для одного и того же приложения в сценариях супер-терминалов.

Распределенные данные объекта предоставляют интерфейсы на языке JavaScript, что позволяет разработчикам использовать распределенные объекты так же, как они используют локальные объекты. Поддерживаемые типы данных включают числовые, символьные и булевы типы, а также массивы и сложные типы, включающие вложенные базовые типы.## Ограничения

  • Только приложения с одинаковым bundleName могут синхронизироваться напрямую между различными устройствами.
  • Не рекомендуется создавать слишком много распределенных объектов, так как каждый распределенный объект занимает от 100 до 150 КБ памяти.
  • Размер каждого объекта не должен превышать 500 КБ.
  • Поддерживается взаимодействие между интерфейсами на языке 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

DistributedObject

Имя интерфейса Описание
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 )

Вы можете оставить комментарий после Вход в систему

Введение

В документе отсутствует описание. Пожалуйста, уточните текст для перевода. Развернуть Свернуть
C++ и 4 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/openharmony-distributeddatamgr_data_object.git
git@api.gitlife.ru:oschina-mirror/openharmony-distributeddatamgr_data_object.git
oschina-mirror
openharmony-distributeddatamgr_data_object
openharmony-distributeddatamgr_data_object
master