1 /*
2 * Copyright (c) 2023-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 #include "deferred_photo_processing_session_stub.h"
17 #include "deferred_processing_service_ipc_interface_code.h"
18 #include "metadata_utils.h"
19 #include "dp_log.h"
20
21 namespace OHOS {
22 namespace CameraStandard {
23 namespace DeferredProcessing {
DeferredPhotoProcessingSessionStub()24 DeferredPhotoProcessingSessionStub::DeferredPhotoProcessingSessionStub()
25 {
26 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub Instances create");
27 }
28
~DeferredPhotoProcessingSessionStub()29 DeferredPhotoProcessingSessionStub::~DeferredPhotoProcessingSessionStub()
30 {
31 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub Instances destroy");
32 }
33
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)34 int DeferredPhotoProcessingSessionStub::OnRemoteRequest(uint32_t code, MessageParcel& data,
35 MessageParcel& reply, MessageOption& option)
36 {
37 int errCode = -1;
38 DP_CHECK_RETURN_RET(data.ReadInterfaceToken() != GetDescriptor(), errCode);
39
40 switch (code) {
41 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_BEGIN_SYNCHRONIZE): {
42 errCode = DeferredPhotoProcessingSessionStub::HandleBeginSynchronize(data);
43 break;
44 }
45 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_END_SYNCHRONIZE):
46 errCode = DeferredPhotoProcessingSessionStub::HandleEndSynchronize(data);
47 break;
48 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_ADD_IMAGE): {
49 errCode = DeferredPhotoProcessingSessionStub::HandleAddImage(data);
50 break;
51 }
52 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_REMOVE_IMAGE):
53 errCode = DeferredPhotoProcessingSessionStub::HandleRemoveImage(data);
54 break;
55 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_RESTORE_IMAGE): {
56 errCode = DeferredPhotoProcessingSessionStub::HandleRestoreImage(data);
57 break;
58 }
59 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_PROCESS_IMAGE): {
60 errCode = DeferredPhotoProcessingSessionStub::HandleProcessImage(data);
61 break;
62 }
63 case static_cast<uint32_t>(DeferredProcessingServiceInterfaceCode::DPS_CANCEL_PROCESS_IMAGE): {
64 errCode = DeferredPhotoProcessingSessionStub::HandleCancelProcessImage(data);
65 break;
66 }
67 default:
68 DP_ERR_LOG("DeferredPhotoProcessingSessionStub request code %{public}d not handled", code);
69 errCode = IPCObjectStub::OnRemoteRequest(code, data, reply, option);
70 break;
71 }
72 return errCode;
73 }
74
HandleBeginSynchronize(MessageParcel & data)75 int DeferredPhotoProcessingSessionStub::HandleBeginSynchronize(MessageParcel& data)
76 {
77 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleBeginSynchronize enter");
78 int32_t ret = BeginSynchronize();
79 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleBeginSynchronize result: %{public}d", ret);
80 return ret;
81 }
82
HandleEndSynchronize(MessageParcel & data)83 int DeferredPhotoProcessingSessionStub::HandleEndSynchronize(MessageParcel& data)
84 {
85 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleEndSynchronize enter");
86 int32_t ret = EndSynchronize();
87 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleEndSynchronize result: %{public}d", ret);
88 return ret;
89 }
90
HandleAddImage(MessageParcel & data)91 int DeferredPhotoProcessingSessionStub::HandleAddImage(MessageParcel& data)
92 {
93 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleAddImage enter");
94 std::string imageId = data.ReadString();
95 DpsMetadata metadata;
96 metadata.ReadFromParcel(data);
97 bool discardable = data.ReadBool();
98
99 int32_t ret = AddImage(imageId, metadata, discardable);
100 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleAddImage result: %{public}d", ret);
101 return ret;
102 }
103
HandleRemoveImage(MessageParcel & data)104 int DeferredPhotoProcessingSessionStub::HandleRemoveImage(MessageParcel& data)
105 {
106 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleRemoveImage enter");
107 std::string imageId = data.ReadString();
108 bool restorable = data.ReadBool();
109
110 int32_t ret = RemoveImage(imageId, restorable);
111 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleRemoveImage result: %{public}d", ret);
112 return ret;
113 }
114
HandleRestoreImage(MessageParcel & data)115 int DeferredPhotoProcessingSessionStub::HandleRestoreImage(MessageParcel& data)
116 {
117 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleRestoreImage enter");
118 std::string imageId = data.ReadString();
119
120 int32_t ret = RestoreImage(imageId);
121 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleRestoreImage result: %{public}d", ret);
122 return ret;
123 }
124
HandleProcessImage(MessageParcel & data)125 int DeferredPhotoProcessingSessionStub::HandleProcessImage(MessageParcel& data)
126 {
127 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleProcessImage enter");
128 std::string appName = data.ReadString();
129 std::string imageId = data.ReadString();
130
131 int32_t ret = ProcessImage(appName, imageId);
132 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleProcessImage result: %{public}d", ret);
133 return ret;
134 }
135
HandleCancelProcessImage(MessageParcel & data)136 int DeferredPhotoProcessingSessionStub::HandleCancelProcessImage(MessageParcel& data)
137 {
138 DP_DEBUG_LOG("DeferredPhotoProcessingSessionStub HandleCancelProcessImage enter");
139 std::string imageId = data.ReadString();
140 int32_t ret = CancelProcessImage(imageId);
141 DP_INFO_LOG("DeferredPhotoProcessingSessionStub HandleCancelProcessImage result: %{public}d", ret);
142 return ret;
143 }
144
145 } // namespace DeferredProcessing
146 } // namespace CameraStandard
147 } // namespace OHOS