mirror of
https://gitee.com/openharmony/account_os_account
synced 2024-11-23 02:00:01 +00:00
[cj]: distributed_account cangjie ffi层
Change-Id: Ie46d88b639d67b21e30b43b9a4e1ee0f9ec4bbb7 Signed-off-by: l30009422 <liangjun24@huawei.com>
This commit is contained in:
parent
1ab811b3ed
commit
c1cdb920a4
@ -81,7 +81,8 @@
|
||||
"//base/account/os_account/frameworks/domain_account:domain_account_innerkits",
|
||||
"//base/account/os_account/frameworks/ohosaccount/native:libaccountkits",
|
||||
"//base/account/os_account/frameworks/osaccount/native:os_account_innerkits",
|
||||
"//base/account/os_account/frameworks/appaccount/cj:cj_appAccount_ffi"
|
||||
"//base/account/os_account/frameworks/appaccount/cj:cj_appAccount_ffi",
|
||||
"//base/account/os_account/frameworks/cj/distributed_account:cj_distributed_account_ffi"
|
||||
],
|
||||
"service_group": [
|
||||
"//base/account/os_account/services:services_target",
|
||||
|
52
frameworks/cj/distributed_account/BUILD.gn
Normal file
52
frameworks/cj/distributed_account/BUILD.gn
Normal file
@ -0,0 +1,52 @@
|
||||
# Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import("//build/ohos.gni")
|
||||
import("../../../os_account.gni")
|
||||
|
||||
ohos_shared_library("cj_distributed_account_ffi") {
|
||||
sanitize = {
|
||||
cfi = true
|
||||
cfi_cross_dso = true
|
||||
debug = false
|
||||
}
|
||||
|
||||
include_dirs = [
|
||||
"${os_account_path}/frameworks/cj/distributed_account/include",
|
||||
"${os_account_path}/interfaces/innerkits/appaccount/native/include",
|
||||
]
|
||||
|
||||
sources = [ "./src/cj_distributed_account.cpp" ]
|
||||
|
||||
deps = [
|
||||
"${common_path}:libaccount_common",
|
||||
"${innerkits_native_path}:libaccountkits",
|
||||
]
|
||||
|
||||
external_deps = [
|
||||
"ability_base:want",
|
||||
"ability_runtime:ability_connect_callback_stub",
|
||||
"ability_runtime:ability_manager",
|
||||
"ability_runtime:abilitykit_native",
|
||||
"c_utils:utils",
|
||||
"common_event_service:cesfwk_innerkits",
|
||||
"hilog:libhilog",
|
||||
"ipc:ipc_single",
|
||||
"napi:cj_bind_ffi",
|
||||
"napi:cj_bind_native",
|
||||
]
|
||||
|
||||
innerapi_tags = [ "platformsdk" ]
|
||||
subsystem_name = "account"
|
||||
part_name = "os_account"
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef CJ_DISTRIBUTED_ACCOUNT_FFI_H
|
||||
#define CJ_DISTRIBUTED_ACCOUNT_FFI_H
|
||||
|
||||
#include "ffi_remote_data.h"
|
||||
|
||||
namespace OHOS {
|
||||
namespace AccountSA {
|
||||
struct RetDistributedInfo {
|
||||
char *name;
|
||||
char *id;
|
||||
char *event;
|
||||
char *nickname;
|
||||
char *avatar;
|
||||
int32_t status;
|
||||
};
|
||||
|
||||
extern "C"
|
||||
{
|
||||
FFI_EXPORT RetDistributedInfo FfiOHOSDistributedAccountDistributedInfoGetOsAccountDistributedInfo(int32_t *errCode);
|
||||
|
||||
FFI_EXPORT void FfiOHOSDistributedAccountUnitSetOsAccountDistributedInfo(RetDistributedInfo retInfo, int32_t *errCode);
|
||||
}
|
||||
} // namespace AccountSA
|
||||
} // namespace OHOS
|
||||
|
||||
#endif
|
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "cj_distributed_account.h"
|
||||
#include "ohos_account_kits.h"
|
||||
|
||||
namespace OHOS {
|
||||
namespace AccountSA {
|
||||
char *convertStrToChar(std::string str)
|
||||
{
|
||||
static char *res = const_cast<char *>(str.c_str());
|
||||
return res;
|
||||
}
|
||||
|
||||
RetDistributedInfo convertToRet(AccountSA::OhosAccountInfo ohosInfo)
|
||||
{
|
||||
RetDistributedInfo retInfo{0};
|
||||
retInfo.name = convertStrToChar(ohosInfo.name_);
|
||||
retInfo.id = convertStrToChar(ohosInfo.uid_);
|
||||
retInfo.nickname = convertStrToChar(ohosInfo.nickname_);
|
||||
retInfo.avatar = convertStrToChar(ohosInfo.avatar_);
|
||||
retInfo.status = ohosInfo.status_;
|
||||
return retInfo;
|
||||
}
|
||||
|
||||
AccountSA::OhosAccountInfo getOhosInfoFromRet(RetDistributedInfo retInfo)
|
||||
{
|
||||
AccountSA::OhosAccountInfo ohosInfo;
|
||||
OhosAccountKits::GetInstance().GetOhosAccountInfo(ohosInfo);
|
||||
ohosInfo.name_ = retInfo.name;
|
||||
ohosInfo.uid_ = retInfo.id;
|
||||
ohosInfo.nickname_ = retInfo.nickname;
|
||||
ohosInfo.avatar_ = retInfo.avatar;
|
||||
ohosInfo.status_ = retInfo.status;
|
||||
return ohosInfo;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
RetDistributedInfo FfiOHOSDistributedAccountDistributedInfoGetOsAccountDistributedInfo(int32_t *errCode)
|
||||
{
|
||||
AccountSA::OhosAccountInfo ohosAccountInfo;
|
||||
if (errCode == nullptr) {
|
||||
return convertToRet(ohosAccountInfo);
|
||||
}
|
||||
*errCode = OhosAccountKits::GetInstance().GetOhosAccountInfo(ohosAccountInfo);
|
||||
return convertToRet(ohosAccountInfo);
|
||||
}
|
||||
|
||||
void FfiOHOSDistributedAccountUnitSetOsAccountDistributedInfo(RetDistributedInfo retInfo, int32_t *errCode)
|
||||
{
|
||||
AccountSA::OhosAccountInfo ohosAccountInfo = getOhosInfoFromRet(retInfo);
|
||||
if (errCode == nullptr) {
|
||||
return;
|
||||
}
|
||||
*errCode = OhosAccountKits::GetInstance().SetOhosAccountInfo(ohosAccountInfo, retInfo.event);
|
||||
}
|
||||
}
|
||||
} // namespace AccountSA
|
||||
} // namespace OHOS
|
Loading…
Reference in New Issue
Block a user