1bc03f14fSopenharmony_ci/*
2bc03f14fSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3bc03f14fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4bc03f14fSopenharmony_ci * you may not use this file except in compliance with the License.
5bc03f14fSopenharmony_ci * You may obtain a copy of the License at
6bc03f14fSopenharmony_ci *
7bc03f14fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8bc03f14fSopenharmony_ci *
9bc03f14fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10bc03f14fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11bc03f14fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12bc03f14fSopenharmony_ci * See the License for the specific language governing permissions and
13bc03f14fSopenharmony_ci * limitations under the License.
14bc03f14fSopenharmony_ci */
15bc03f14fSopenharmony_ci#ifndef PASTE_BOARD_OBERVER_PROXY_H
16bc03f14fSopenharmony_ci#define PASTE_BOARD_OBERVER_PROXY_H
17bc03f14fSopenharmony_ci
18bc03f14fSopenharmony_ci#include <functional>
19bc03f14fSopenharmony_ci
20bc03f14fSopenharmony_ci#include "i_pasteboard_observer.h"
21bc03f14fSopenharmony_ci#include "iremote_broker.h"
22bc03f14fSopenharmony_ci#include "iremote_object.h"
23bc03f14fSopenharmony_ci#include "iremote_proxy.h"
24bc03f14fSopenharmony_ci#include "nocopyable.h"
25bc03f14fSopenharmony_ci#include "refbase.h"
26bc03f14fSopenharmony_ci
27bc03f14fSopenharmony_cinamespace OHOS {
28bc03f14fSopenharmony_cinamespace MiscServices {
29bc03f14fSopenharmony_ciclass PasteboardObserverProxy : public IRemoteProxy<IPasteboardChangedObserver> {
30bc03f14fSopenharmony_cipublic:
31bc03f14fSopenharmony_ci    explicit PasteboardObserverProxy(const sptr<IRemoteObject> &object);
32bc03f14fSopenharmony_ci    ~PasteboardObserverProxy() = default;
33bc03f14fSopenharmony_ci    DISALLOW_COPY_AND_MOVE(PasteboardObserverProxy);
34bc03f14fSopenharmony_ci    void OnPasteboardChanged() override;
35bc03f14fSopenharmony_ci    void OnPasteboardEvent(std::string bundleName, int32_t status) override;
36bc03f14fSopenharmony_ciprivate:
37bc03f14fSopenharmony_ci    static inline BrokerDelegator<PasteboardObserverProxy> delegator_;
38bc03f14fSopenharmony_ci};
39bc03f14fSopenharmony_ci} // namespace MiscServices
40bc03f14fSopenharmony_ci} // namespace OHOS
41bc03f14fSopenharmony_ci#endif // PASTE_BOARD_OBERVER_PROXY_H
42