1  /*
2   * Copyright (c) 2021 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 POWERMGR_POWER_MANAGER_SYNC_SLEEP_CALLBACK_PROXY_H
17  #define POWERMGR_POWER_MANAGER_SYNC_SLEEP_CALLBACK_PROXY_H
18  
19  #include <iremote_proxy.h>
20  #include <nocopyable.h>
21  #include <functional>
22  #include "refbase.h"
23  #include "iremote_broker.h"
24  #include "iremote_object.h"
25  
26  #include "suspend/isync_sleep_callback.h"
27  
28  namespace OHOS {
29  namespace PowerMgr {
30  class SyncSleepCallbackProxy : public IRemoteProxy<ISyncSleepCallback> {
31  public:
SyncSleepCallbackProxy(const sptr<IRemoteObject> & impl)32      explicit SyncSleepCallbackProxy(const sptr<IRemoteObject>& impl)
33          : IRemoteProxy<ISyncSleepCallback>(impl) {}
34      ~SyncSleepCallbackProxy() = default;
35      virtual void OnSyncSleep(bool onForceSleep) override;
36      virtual void OnSyncWakeup(bool onForceSleep) override;
37  
38  private:
39      static inline BrokerDelegator<SyncSleepCallbackProxy> delegator_;
40  };
41  } // namespace PowerMgr
42  } // namespace OHOS
43  #endif // POWERMGR_POWER_MANAGER_SYNC_SLEEP_CALLBACK_PROXY_H
44