1 /*
2  * Copyright (c) 2022-2023 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 DEVICESTATUS_SRV_STUB_H
17 #define DEVICESTATUS_SRV_STUB_H
18 
19 #include <functional>
20 #include <map>
21 
22 #include <iremote_stub.h>
23 #include <nocopyable.h>
24 
25 #include "i_devicestatus.h"
26 #include "message_option.h"
27 #include "message_parcel.h"
28 
29 namespace OHOS {
30 namespace Msdp {
31 namespace DeviceStatus {
32 class DeviceStatusSrvStub : public IRemoteStub<Idevicestatus> {
33 public:
34     DeviceStatusSrvStub();
35     DISALLOW_COPY_AND_MOVE(DeviceStatusSrvStub);
36     virtual ~DeviceStatusSrvStub() = default;
37 
38     int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
39 
40 private:
41     int32_t SubscribeStub(MessageParcel &data, MessageParcel &reply);
42     int32_t UnsubscribeStub(MessageParcel &data, MessageParcel &reply);
43     int32_t GetLatestDeviceStatusDataStub(MessageParcel &data, MessageParcel &reply);
44     int32_t HandleAllocSocketFdStub(MessageParcel &data, MessageParcel &reply);
45     int32_t RegisterCoordinationMonitorStub(MessageParcel &data, MessageParcel &reply);
46     int32_t UnregisterCoordinationMonitorStub(MessageParcel &data, MessageParcel &reply);
47     int32_t PrepareCoordinationStub(MessageParcel &data, MessageParcel &reply);
48     int32_t UnPrepareCoordinationStub(MessageParcel &data, MessageParcel &reply);
49     int32_t ActivateCoordinationStub(MessageParcel &data, MessageParcel &reply);
50     int32_t DeactivateCoordinationStub(MessageParcel &data, MessageParcel &reply);
51     int32_t GetCoordinationStateStub(MessageParcel &data, MessageParcel &reply);
52     int32_t GetCoordinationStateSyncStub(MessageParcel &data, MessageParcel &reply);
53     int32_t RegisterCooperateMonitorStub(MessageParcel &data, MessageParcel &reply);
54     int32_t UnregisterCooperateMonitorStub(MessageParcel &data, MessageParcel &reply);
55     int32_t PrepareCooperateStub(MessageParcel &data, MessageParcel &reply);
56     int32_t UnPrepareCooperateStub(MessageParcel &data, MessageParcel &reply);
57     int32_t ActivateCooperateStub(MessageParcel &data, MessageParcel &reply);
58     int32_t DeactivateCooperateStub(MessageParcel &data, MessageParcel &reply);
59     int32_t GetCooperateStateStub(MessageParcel &data, MessageParcel &reply);
60     int32_t StartDragStub(MessageParcel &data, MessageParcel &reply);
61     int32_t StopDragStub(MessageParcel &data, MessageParcel &reply);
62     int32_t UpdateDragStyleStub(MessageParcel &data, MessageParcel &reply);
63     int32_t GetDragTargetPidStub(MessageParcel &data, MessageParcel &reply);
64     int32_t GetUdKeyStub(MessageParcel &data, MessageParcel &reply);
65     int32_t AddDraglistenerStub(MessageParcel &data, MessageParcel &reply);
66     int32_t RemoveDraglistenerStub(MessageParcel &data, MessageParcel &reply);
67     int32_t AddSubscriptListenerStub(MessageParcel &data, MessageParcel &reply);
68     int32_t RemoveSubscriptListenerStub(MessageParcel &data, MessageParcel &reply);
69     int32_t SetDragWindowVisibleStub(MessageParcel &data, MessageParcel &reply);
70     int32_t GetShadowOffsetStub(MessageParcel &data, MessageParcel &reply);
71     int32_t UpdateShadowPicStub(MessageParcel &data, MessageParcel &reply);
72     int32_t GetDragDataStub(MessageParcel &data, MessageParcel &reply);
73     int32_t GetDragStateStub(MessageParcel &data, MessageParcel &reply);
74     int32_t GetDragActionStub(MessageParcel &data, MessageParcel &reply);
75     int32_t GetExtraInfoStub(MessageParcel &data, MessageParcel &reply);
76     int32_t AddHotAreaListenerStub(MessageParcel &data, MessageParcel &reply);
77     int32_t RemoveHotAreaListenerStub(MessageParcel &data, MessageParcel &reply);
78     int32_t UpdatePreviewStyleStub(MessageParcel &data, MessageParcel &reply);
79     int32_t UpdatePreviewStyleWithAnimationStub(MessageParcel &data, MessageParcel &reply);
80     int32_t GetDragSummaryStub(MessageParcel &data, MessageParcel &reply);
81     bool CheckCooperatePermission();
82     bool IsSystemServiceCalling();
83     bool IsSystemCalling();
84     void InitCoordination();
85     void InitDrag();
86     int32_t EnterTextEditorAreaStub(MessageParcel &data, MessageParcel &reply);
87     int32_t AddPrivilegeStub(MessageParcel &data, MessageParcel &reply);
88     int32_t EraseMouseIconStub(MessageParcel &data, MessageParcel &reply);
89 
90 private:
91     std::map<uint32_t, std::function<int32_t(MessageParcel &data, MessageParcel &reply)>> connFuncs_;
92 };
93 } // namespace DeviceStatus
94 } // namespace Msdp
95 } // namespace OHOS
96 #endif // DEVICESTATUS_SRV_STUB_H
97