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_PRELOAD_UIEXT_STATE_OBSERVER_H
17  #define OHOS_ABILITY_RUNTIME_PRELOAD_UIEXT_STATE_OBSERVER_H
18  
19  #include <memory>
20  
21  #include "application_state_observer_stub.h"
22  
23  namespace OHOS {
24  namespace AbilityRuntime {
25  class ExtensionRecord;
26  }
27  namespace AAFwk {
28  class PreLoadUIExtStateObserver final : public AppExecFwk::ApplicationStateObserverStub {
29  public:
30      PreLoadUIExtStateObserver(std::weak_ptr<AbilityRuntime::ExtensionRecord> extensionRecord);
31      void OnProcessDied(const AppExecFwk::ProcessData &processData) override;
32      void OnAppCacheStateChanged(const AppExecFwk::AppStateData &appStateData) override;
33  
34  private:
35      std::weak_ptr<AbilityRuntime::ExtensionRecord> extensionRecord_ = std::weak_ptr<AbilityRuntime::ExtensionRecord>();
36  };
37  } // namespace AAFwk
38  } // namespace OHOS
39  #endif // OHOS_ABILITY_RUNTIME_PRELOAD_UIEXT_STATE_OBSERVER_H