12ee81decSopenharmony_ci/* 22ee81decSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 32ee81decSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 42ee81decSopenharmony_ci * you may not use this file except in compliance with the License. 52ee81decSopenharmony_ci * You may obtain a copy of the License at 62ee81decSopenharmony_ci * 72ee81decSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 82ee81decSopenharmony_ci * 92ee81decSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 102ee81decSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 112ee81decSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 122ee81decSopenharmony_ci * See the License for the specific language governing permissions and 132ee81decSopenharmony_ci * limitations under the License. 142ee81decSopenharmony_ci */ 152ee81decSopenharmony_ci 162ee81decSopenharmony_ci#ifndef SERVICE_MSG_MESSENGER_WRAPPER_H 172ee81decSopenharmony_ci#define SERVICE_MSG_MESSENGER_WRAPPER_H 182ee81decSopenharmony_ci 192ee81decSopenharmony_ci#include <stdbool.h> 202ee81decSopenharmony_ci#include <stdint.h> 212ee81decSopenharmony_ci 222ee81decSopenharmony_ci#include "device_security_defines.h" 232ee81decSopenharmony_ci 242ee81decSopenharmony_ci#ifdef __cplusplus 252ee81decSopenharmony_ciextern "C" { 262ee81decSopenharmony_ci#endif 272ee81decSopenharmony_ci 282ee81decSopenharmony_ci#define ONLINE 1 292ee81decSopenharmony_ci#define OFFLINE 0 302ee81decSopenharmony_ci 312ee81decSopenharmony_citypedef int32_t (*MessageReceiver)(const DeviceIdentify *devId, const uint8_t *msg, uint32_t len); 322ee81decSopenharmony_ci 332ee81decSopenharmony_citypedef int32_t (*StatusReceiver)(const DeviceIdentify *devId, uint32_t status, int32_t level); 342ee81decSopenharmony_ci 352ee81decSopenharmony_citypedef int32_t (*SendResultNotifier)(const DeviceIdentify *devId, uint64_t transNo, uint32_t result); 362ee81decSopenharmony_ci 372ee81decSopenharmony_citypedef int32_t (*DeviceProcessor)(const DeviceIdentify *devId, int32_t level, void *para); 382ee81decSopenharmony_ci 392ee81decSopenharmony_civoid SendMsgToDevice(uint64_t transNo, const DeviceIdentify *devId, const uint8_t *msg, uint32_t msgLen); 402ee81decSopenharmony_ci 412ee81decSopenharmony_ciuint32_t InitMessenger(const MessageReceiver messageReceiver, const StatusReceiver statusReceiver, 422ee81decSopenharmony_ci const SendResultNotifier notifier); 432ee81decSopenharmony_ci 442ee81decSopenharmony_ciuint32_t DeinitMessenger(void); 452ee81decSopenharmony_ci 462ee81decSopenharmony_cibool GetMessengerStatus(void); 472ee81decSopenharmony_ci 482ee81decSopenharmony_cibool GetPeerDeviceOnlineStatus(const DeviceIdentify *devId, int32_t *level); 492ee81decSopenharmony_ci 502ee81decSopenharmony_ciconst DeviceIdentify *GetSelfDevice(int32_t *level); 512ee81decSopenharmony_ci 522ee81decSopenharmony_ciconst char *GetMessengerPackageName(void) __attribute__((weak)); 532ee81decSopenharmony_ciconst char *GetMessengerPrimarySessionName(void) __attribute__((weak)); 542ee81decSopenharmony_ciconst char *GetMessengerSecondarySessionName(void) __attribute__((weak)); 552ee81decSopenharmony_ci 562ee81decSopenharmony_ci#ifdef __cplusplus 572ee81decSopenharmony_ci} 582ee81decSopenharmony_ci#endif 592ee81decSopenharmony_ci 602ee81decSopenharmony_ci#endif // SERVICE_MSG_MESSENGER_WRAPPER_H 61