对外接口层
接口目录结构总览1. 公共接口Common头文件: softbus_common.h | softbus_error_code.h常量定义常量值说明NETWORK_ID_BUF_LEN65网络ID长度UDID_BUF_LEN65UDID长度UUID_BUF_LEN65UUID长度BT_MAC_LEN18蓝牙MAC地址长度IP_STR_MAX_LEN46IP地址最大长度(支持IPv6)MAX_CAPABILITYDATA_LEN513能力数据最大长度DISC_MAX_CUST_DATA_LEN513发现自定义数据最大长度DISC_MAX_DEVICE_NAME_LEN65设备名最大长度DISC_MAX_DEVICE_ID_LEN96设备ID最大长度核心枚举类型枚举说明ConnectionAddrType连接地址类型 (WLAN/BR/BLE/ETH/SESSION/USB)BleProtocolTypeBLE协议类型 (GATT/COC)DiscoverMode发现模式 (PASSIVE0x55 / ACTIVE0xAA)ExchangeMedium传输介质 (AUTO/BLE/COAP/USB)ExchangeFreq交换频率 (LOW/MID/HIGH/SUPER_HIGH/EXTREME_HIGH)DataBitMap能力位图 (hicall/profile/castPlus/dvKit/ddmp等)DeviceType设备类型 (手机/平板/手表/TV/PC/音箱/车机等)StrategyForBleBLE策略 (抑制/恢复发现)核心结构体结构体说明ConnectionAddr设备连接地址(含BR/BLE/IP/Session地址联合体)PublishInfo服务发布信息(publishId/mode/medium/freq/capability等)SubscribeInfo服务订阅信息(subscribeId/mode/medium/freq/capability等)DeviceInfo发现设备信息(devId/devType/devName/addr/capability等)AuthHandle认证句柄(authId/type)错误码模块模块编号说明DISC_SUB_MODULE_CODE1发现模块CONN_SUB_MODULE_CODE2连接模块AUTH_SUB_MODULE_CODE3认证模块LNN_SUB_MODULE_CODE4组网模块TRANS_SUB_MODULE_CODE5传输模块IPCRPC_SUB_MODULE_CODE6IPC/RPC模块PUBLIC_SUB_MODULE_CODE10公共模块2. 发现接口Discovery头文件: softbus_bus_center.h (发现相关部分)注意dsoftbus 的发现接口与组网接口合并在softbus_bus_center.h中没有独立的发现头文件。发现相关函数函数说明int32_t PublishLNN(const char *pkgName, const PublishInfo *info, const IPublishCb *cb)发布服务同一局域网的设备可发现该服务int32_t StopPublishLNN(const char *pkgName, int32_t publishId)停止发布服务函数说明int32_t RefreshLNN(const char *pkgName, const SubscribeInfo *info, const IRefreshCallback *cb)订阅服务发现设备发布该服务的设备信息将被上报int32_t StopRefreshLNN(const char *pkgName, int32_t refreshId)停止订阅服务发现相关回调回调/结构体说明IPublishCb.OnPublishResult(int publishId, PublishResult reason)发布结果回调IRefreshCallback.OnDeviceFound(const DeviceInfo *device)发现设备回调IRefreshCallback.OnDiscoverResult(int32_t refreshId, RefreshResult reason)订阅结果回调PublishResult发布结果枚举 (SUCCESS/NOT_SUPPORT_MEDIUM/INTERNAL/UNKNOWN)RefreshResult订阅结果枚举 (SUCCESS/NOT_SUPPORT_MEDIUM/INTERNAL/UNKNOWN)发现流程发布端: PublishLNN() → IPublishCb.OnPublishResult() ↓ 订阅端: RefreshLNN() → IRefreshCallback.OnDeviceFound() → IRefreshCallback.OnDiscoverResult()3. 组网接口Networking / Bus Center头文件: softbus_bus_center.h (组网相关部分)组网核心函数函数说明int32_t JoinLNN(const char *pkgName, ConnectionAddr *target, OnJoinLNNResult cb, bool isForceJoin)加入局域网网络将当前设备加入指定设备所在的LNNint32_t LeaveLNN(const char *pkgName, const char *networkId, OnLeaveLNNResult cb)离开局域网网络节点状态监听函数说明int32_t RegNodeDeviceStateCb(const char *pkgName, INodeStateCb *callback)注册节点状态变化回调int32_t UnregNodeDeviceStateCb(INodeStateCb *callback)注销节点状态变化回调INodeStateCb 回调事件:事件掩码回调说明EVENT_NODE_STATE_ONLINE (0x1)onNodeOnline设备上线EVENT_NODE_STATE_OFFLINE (0x02)onNodeOffline设备下线EVENT_NODE_STATE_INFO_CHANGED (0x04)onNodeBasicInfoChanged设备信息变化EVENT_NODE_STATUS_CHANGED (0x08)onNodeStatusChanged运行状态变化EVENT_NODE_STATE_NETWORK_CHANGED (0x10)onLocalNetworkIdChanged本地网络ID变化EVENT_NODE_HICHAIN_PROOF_EXCEPTION (0x20)onHichainProofExceptionHichain证明异常-onNodeDeviceTrustedChange信任关系变化节点信息查询函数说明int32_t GetAllNodeDeviceInfo(const char *pkgName, NodeBasicInfo **info, int32_t *infoNum)获取所有在线设备基本信息void FreeNodeInfo(NodeBasicInfo *info)释放设备信息内存int32_t GetLocalNodeDeviceInfo(const char *pkgName, NodeBasicInfo *info)获取本设备基本信息int32_t GetNodeKeyInfo(const char *pkgName, const char *networkId, NodeDeviceInfoKey key, uint8_t *info, int32_t infoLen)获取指定设备关键信息int32_t SetNodeDataChangeFlag(const char *pkgName, const char *networkId, uint16_t dataChangeFlag)设置节点数据变化标志NodeDeviceInfoKey 枚举: UDID/UUID/MASTER_UDID/BR_MAC/IP_ADDRESS/DEV_NAME/NETWORK_CAPABILITY/NETWORK_TYPE/BLE_OFFLINE_CODE/NODE_ADDRESS/P2P_IP_ADDRESS/DEVICE_SECURITY_LEVEL/DEVICE_SCREEN_STATUS/STATIC_NETWORK_CAP时间同步函数说明int32_t StartTimeSync(const char *pkgName, const char *targetNetworkId, TimeSyncAccuracy accuracy, TimeSyncPeriod period, ITimeSyncCb *cb)启动时间同步int32_t StopTimeSync(const char *pkgName, const char *targetNetworkId)停止时间同步Meta Node 管理函数说明int32_t ActiveMetaNode(const char *pkgName, const MetaNodeConfigInfo *info, char *metaNodeId)激活元节点int32_t DeactiveMetaNode(const char *pkgName, const char *metaNodeId)去激活元节点int32_t GetAllMetaNodeInfo(const char *pkgName, MetaNodeInfo *infos, int32_t *infoNum)获取所有元节点信息心跳与辅助函数说明int32_t ShiftLNNGear(const char *pkgName, const char *callerId, const char *targetNetworkId, const GearMode *mode)修改心跳参数并触发临时心跳int32_t SetBleUuidLNN(uint16_t uuid)设置BLE UUIDint32_t SyncTrustedRelationShip(const char *pkgName, const char *msg, uint32_t msgLen)同步信任关系仅DM使用int32_t SetDisplayName(const char *pkgName, const char *nameData, uint32_t len)设置本地设备显示名4. 传输接口Transport4.1 Session 接口 (v1)头文件: session.h | trans_type.h会话管理函数说明int CreateSessionServer(const char *pkgName, const char *sessionName, const ISessionListener *listener)创建会话服务端最多32个int RemoveSessionServer(const char *pkgName, const char *sessionName)移除会话服务端int OpenSession(const char *mySessionName, const char *peerSessionName, const char *peerNetworkId, const char *groupId, const SessionAttribute* attr)打开会话异步void CloseSession(int sessionId)关闭会话数据发送函数说明int SendBytes(int sessionId, const void *data, unsigned int len)发送字节数据int SendMessage(int sessionId, const void *data, unsigned int len)发送消息int SendStream(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)发送流数据int SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)发送文件会话信息查询函数说明int GetMySessionName(int sessionId, char *sessionName, unsigned int len)获取本端会话名int GetPeerSessionName(int sessionId, char *sessionName, unsigned int len)获取对端会话名int GetPeerDeviceId(int sessionId, char *networkId, unsigned int len)获取对端设备IDint GetSessionSide(int sessionId)获取会话角色(0服务端,1客户端)int GetSessionOption(int sessionId, SessionOption option, void* optionValue, uint32_t valueSize)获取会话选项文件监听函数说明int SetFileReceiveListener(const char *pkgName, const char *sessionName, const IFileReceiveListener *recvListener, const char *rootDir)设置文件接收监听int SetFileSendListener(const char *pkgName, const char *sessionName, const IFileSendListener *sendListener)设置文件发送监听核心回调结构体回调方法说明ISessionListenerOnSessionOpened会话打开OnSessionClosed会话关闭OnBytesReceived接收字节数据OnMessageReceived接收消息OnStreamReceived接收流数据OnQosEventQoS事件IFileReceiveListenerOnReceiveFileStarted/OnReceiveFileProcess/OnReceiveFileFinished/OnFileTransError文件接收回调IFileSendListenerOnSendFileProcess/OnSendFileFinished/OnFileTransError文件发送回调核心类型类型说明SessionTypeTYPE_MESSAGE / TYPE_BYTES / TYPE_FILE / TYPE_STREAMStreamTypeRAW_STREAM / COMMON_VIDEO_STREAM / COMMON_AUDIO_STREAM / VIDEO_SLICE_STREAMLinkTypeWIFI_5G / WIFI_2G / P2P / BR / BLE / COC / HML 等SessionAttribute会话属性(dataType/linkType/streamAttr/fastTransData)4.2 Socket 接口 (v2)头文件: socket.h | trans_type.hSocket 生命周期函数说明int32_t Socket(SocketInfo info)创建Socket最多15个int32_t Listen(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener)服务端监听int32_t Bind(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener)客户端绑定同步int32_t BindAsync(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener)客户端绑定异步void Shutdown(int32_t socket)关闭Socket数据发送函数说明int32_t SendBytes(int32_t socket, const void *data, uint32_t len)发送字节数据int32_t SendBytesAsync(int32_t socket, uint32_t dataSeq, const void *data, uint32_t len)异步发送字节数据int32_t SendMessage(int32_t socket, const void *data, uint32_t len)发送消息int32_t SendStream(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param)发送流数据int32_t SendFile(int32_t socket, const char *sFileList[], const char *dFileList[], uint32_t fileCnt)发送文件QoS函数说明int32_t EvaluateQos(const char *peerNetworkId, TransDataType dataType, const QosTV *qos, uint32_t qosCount)评估QoS质量核心回调结构体回调方法说明ISocketListenerOnBindSocket绑定成功OnShutdownSocket关闭OnBytes接收字节数据OnMessage接收消息OnStream接收流数据OnFile接收文件事件OnQosQoS状态变化OnError异步绑定错误OnNegotiate协商回调OnBytesSent数据发送完成核心类型类型说明TransDataTypeMESSAGE / BYTES / FILE / RAW_STREAM / VIDEO_STREAM / AUDIO_STREAM / SLICE_STREAM / RAW_STREAM_ENCRYPEDSocketInfoSocket描述(name/peerName/peerNetworkId/pkgName/dataType)QosTypeMIN_BW / MAX_LATENCY / MIN_LATENCY / RTT_LEVEL / MAX_BUFFER / MAX_IDLE_TIMEOUT / TRANS_RELIABILITY / TRANS_CONTINUOUS / REUSE_BEShutdownReasonUNKNOWN / LOCAL / PEER / LNN_CHANGED / CONN_CHANGED / TIMEOUT / SEND_FILE_ERR / RECV_FILE_ERR 等FileEvent文件事件(发送/接收进度、完成、错误、路径更新等)5. 内部接口Inner Kits5.1 内部认证会话接口头文件: inner_session.h函数说明int OpenAuthSession(const char *sessionName, const ConnectionAddr *addrInfo, int num, const char *mixAddr)打开身份认证会话void NotifyAuthSuccess(int sessionId)通知身份认证成功5.2 内部 Socket 扩展接口头文件: inner_socket.h函数说明int32_t GetMtuSize(int32_t socket, uint32_t *mtuSize)获取Socket最大传输单元int32_t DBinderGrantPermission(int32_t uid, int32_t pid, const char *socketName)授予Socket权限DBinderint32_t DBinderRemovePermission(const char *socketName)移除Socket权限int32_t DfsBind(int32_t socket, const ISocketListener *listener)DFS专用绑定int32_t SetSocketOpt(int32_t socket, OptLevel level, OptType optType, void *optValue, int32_t optValueSize)设置Socket选项int32_t GetSocketOpt(int32_t socket, OptLevel level, OptType optType, void *optValue, int32_t *optValueSize)获取Socket选项int32_t PrivilegeShutdown(uint64_t tokenId, int32_t pid, const char *peerNetworkId)特权关闭会话仅DMS可用int32_t RegisterRelationChecker(IFeatureAbilityRelationChecker *relationChecker)注册特性能力关系检查器5.3 分布式文件服务接口头文件: dfs_session.h函数说明int32_t GetSessionKey(int32_t sessionId, char *key, unsigned int len)获取会话密钥int32_t GetSessionHandle(int32_t sessionId, int *handle)获取会话句柄int32_t DisableSessionListener(int32_t sessionId)禁用会话监听5.4 BLE 测距接口头文件: ble_range.h函数说明int32_t RegBleRangeCb(const char *pkgName, IBleRangeCb *callback)注册BLE测距回调int32_t UnregBleRangeCb(const char *pkgName)注销BLE测距回调int32_t TriggerHbForMeasureDistance(const char *pkgName, const char *callerId, const HbMode *mode)触发心跳测量距离5.5 数据级别接口头文件: data_level.h函数说明int32_t RegDataLevelChangeCb(const char *pkgName, IDataLevelCb *callback)注册数据级别变化回调int32_t UnregDataLevelChangeCb(const char *pkgName)注销数据级别变化回调int32_t SetDataLevel(const DataLevel *dataLevel)设置分布式数据库数据级别接口层级关系总图