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/domain_account:domain_account_innerkits",
|
||||||
"//base/account/os_account/frameworks/ohosaccount/native:libaccountkits",
|
"//base/account/os_account/frameworks/ohosaccount/native:libaccountkits",
|
||||||
"//base/account/os_account/frameworks/osaccount/native:os_account_innerkits",
|
"//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": [
|
"service_group": [
|
||||||
"//base/account/os_account/services:services_target",
|
"//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