1 /* 2 * Copyright (c) 2025 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_DISTRIBUTED_EXTENSION_H 17 #define OHOS_DISTRIBUTED_EXTENSION_H 18 19 #include "distributed_extension_context_js.h" 20 #include "extension_base.h" 21 #include "runtime.h" 22 #include "want.h" 23 24 namespace OHOS { 25 namespace DistributedSchedule { 26 class DistributedExtensionService; 27 28 class DistributedExtension : public AbilityRuntime::ExtensionBase<DistributedExtensionContext> { 29 public: 30 void Init(const std::shared_ptr<AbilityRuntime::AbilityLocalRecord> &record, 31 const std::shared_ptr<AbilityRuntime::OHOSApplication> &application, 32 std::shared_ptr<AbilityRuntime::AbilityHandler> &handler, 33 const sptr<IRemoteObject> &token) override; 34 35 void OnStart(const AAFwk::Want &want) override; 36 37 void OnCommand(const AAFwk::Want &want, bool restart, int startId) override; 38 39 sptr<IRemoteObject> OnConnect(const AAFwk::Want &want) override; 40 41 void OnDisconnect(const AAFwk::Want &want) override; 42 43 public: 44 static DistributedExtension *Create(const std::unique_ptr<AbilityRuntime::Runtime> &runtime); 45 46 public: 47 void SetDistributedExtensionService(const wptr<DistributedExtensionService> &distributedExtensionService); 48 49 public: 50 virtual int32_t TriggerOnCreate(AAFwk::Want& want); 51 virtual int32_t TriggerOnDestroy(); 52 virtual int32_t TriggerOnCollaborate(AAFwk::WantParams &wantParam); 53 54 private: 55 wptr<DistributedExtensionService> distributedExtensionService_; 56 }; 57 } 58 } 59 60 #endif // OHOS_DISTRIBUTED_EXTENSION_H 61