1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_ABILITY_RUNTIME_CJ_ABILITY_CONTEXT_BROKER_H 17 #define OHOS_ABILITY_RUNTIME_CJ_ABILITY_CONTEXT_BROKER_H 18 19 #include "ability_context_impl.h" 20 #include "cj_common_ffi.h" 21 #include "cj_want_ffi.h" 22 23 extern "C" { 24 struct CJStartOptions { 25 int32_t windowMode; 26 int32_t displayId; 27 }; 28 29 using VectorStringHandle = void*; 30 31 struct AbilityContextBroker { 32 bool (*isAbilityContextExisted)(int64_t id); 33 int64_t (*getSizeOfStartOptions)(); 34 35 int64_t (*getAbilityInfo)(int64_t id); 36 int64_t (*getHapModuleInfo)(int64_t id); 37 int64_t (*getConfiguration)(int64_t id); 38 39 int32_t (*startAbility)(int64_t id, WantHandle wantHandle); 40 int32_t (*startAbilityWithOption)(int64_t id, WantHandle wantHandle, CJStartOptions* startOption); 41 int32_t (*startAbilityWithAccount)(int64_t id, WantHandle wantHandle, int32_t accountId); 42 int32_t (*startAbilityWithAccountAndOption)( 43 int64_t id, WantHandle wantHandle, int32_t accountId, CJStartOptions* startOption); 44 int32_t (*startServiceExtensionAbility)(int64_t id, WantHandle want); 45 int32_t (*startServiceExtensionAbilityWithAccount)(int64_t id, WantHandle want, int32_t accountId); 46 int32_t (*stopServiceExtensionAbility)(int64_t id, WantHandle want); 47 int32_t (*stopServiceExtensionAbilityWithAccount)(int64_t id, WantHandle want, int32_t accountId); 48 49 int32_t (*terminateSelf)(int64_t id); 50 int32_t (*terminateSelfWithResult)(int64_t id, WantHandle want, int32_t resultCode); 51 RetDataBool (*isTerminating)(int64_t id); 52 53 int32_t (*connectAbility)(int64_t id, WantHandle want, int64_t connection); 54 int32_t (*connectAbilityWithAccount)(int64_t id, WantHandle want, int32_t accountId, int64_t connection); 55 int32_t (*disconnectAbility)(int64_t id, WantHandle want, int64_t connection); 56 int32_t (*startAbilityForResult)(int64_t id, WantHandle want, int32_t requestCode, int64_t lambdaId); 57 int32_t (*startAbilityForResultWithOption)( 58 int64_t id, WantHandle want, CJStartOptions* startOption, int32_t requestCode, int64_t lambdaId); 59 int32_t (*startAbilityForResultWithAccount)( 60 int64_t id, WantHandle want, int32_t accountId, int32_t requestCode, int64_t lambdaId); 61 int32_t (*startAbilityForResultWithAccountAndOption)(int64_t id, WantHandle want, int32_t accountId, 62 CJStartOptions* startOption, int32_t requestCode, int64_t lambdaId); 63 int32_t (*requestPermissionsFromUser)( 64 int64_t id, VectorStringHandle permissions, int32_t requestCode, int64_t lambdaId); 65 66 int32_t (*setMissionLabel)(int64_t id, const char* label); 67 int32_t (*setMissionIcon)(int64_t id, int64_t pixelMapId); 68 }; 69 } 70 71 #endif // OHOS_ABILITY_RUNTIME_CJ_ABILITY_CONTEXT_BROKER_H