dxMap
1. 概述
dxMap 模块是 dejaOS 官方系统模块库的一部分,用于基于主题命名空间的内存键值存储。
该模块提供线程安全、基于主题的内存存储系统。每个主题都是键的独立命名空间,允许多个 JavaScript 线程安全地访问和修改数据而不会发生冲突。
主要特性:
- 基于主题的键值存储,具有自动命名空间隔离
- 多线程环境的线程安全操作
- 各种数据类型的自动序列化/反序列化
- 支持字符串、数字、布尔值、对象和数组数据类型
- 内存高效存储,具有自动清理功能
- 简单直观的 API 设计
2. 文件
dxMap.js- JavaScript 模块包装器libvbar-m-dxmap.so- 底层 C 语言实现
确保两个文件都包含在项目根目录下的
dxmodules子目录中。
3. 依赖
- 无
4. 兼容设备
兼容所有运行 dejaOS v2.0+ 的设备
5. API 参考
map.get(topicName)
这是模块的核心函数。它返回特定主题命名空间的映射实例。
topicName{string}: (必需) 主题命名空间的名称。不能为 null 或空。- 返回: 一个映射实例对象,具有在指定主题内管理数据的方法。
- 抛出: 如果主题名称为 null 或空,则抛出
Error。
映射实例方法
由 map.get(topicName) 返回的每个映射实例提供以下方法:
instance.put(key, value)
在当前主题内插入或更新键值对。
key{string}: (必需) 要设置的键。不能为 null 或空。value{*}: 与键关联的值。支持的类型:字符串、数字、布尔值、对象、数组。不支持函数。- 返回:
{boolean}成功时返回true。 - 抛出: 如果键为 null 或空,或值为函数,则抛出
Error。 - 特殊行为: 如果
value是null或undefined,键将被自动删除。
instance.get(key)
在当前主题内检索与键关联的值。
key{string}: (必需) 要检索的键。不能为 null 或空。- 返回: 与键关联的值,如果键不存在则返回
undefined。 - 抛出: 如果键为 null 或空,则抛出
Error。 - 注意: 返回值会自动反序列化为原始类型。