1 /* 2 * Copyright (c) 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 OHOS_HDI_USB_DDK_V1_0_USBDDKSTUB_H 17 #define OHOS_HDI_USB_DDK_V1_0_USBDDKSTUB_H 18 19 #include <ipc_object_stub.h> 20 #include <message_option.h> 21 #include <message_parcel.h> 22 #include <object_collector.h> 23 #include <refbase.h> 24 #include "v1_0/iusb_ddk.h" 25 26 namespace OHOS { 27 namespace HDI { 28 namespace Usb { 29 namespace Ddk { 30 namespace V1_0 { 31 32 using namespace OHOS; 33 class UsbDdkStub : public IPCObjectStub { 34 public: 35 explicit UsbDdkStub(const sptr<IUsbDdk> &impl); 36 virtual ~UsbDdkStub(); 37 38 int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; 39 40 static int32_t UsbDdkStubInit_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 41 42 static int32_t UsbDdkStubRelease_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 43 44 static int32_t UsbDdkStubGetDeviceDescriptor_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 45 46 static int32_t UsbDdkStubGetConfigDescriptor_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 47 48 static int32_t UsbDdkStubClaimInterface_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 49 50 static int32_t UsbDdkStubReleaseInterface_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 51 52 static int32_t UsbDdkStubSelectInterfaceSetting_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 53 54 static int32_t UsbDdkStubGetCurrentInterfaceSetting_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 55 56 static int32_t UsbDdkStubSendControlReadRequest_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 57 58 static int32_t UsbDdkStubSendControlWriteRequest_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 59 60 static int32_t UsbDdkStubSendPipeRequest_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 61 62 static int32_t UsbDdkStubGetDeviceMemMapFd_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 63 64 static int32_t UsbDdkStubGetVersion_(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption, sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl); 65 66 private: 67 int32_t UsbDdkStubInit(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 68 69 int32_t UsbDdkStubRelease(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 70 71 int32_t UsbDdkStubGetDeviceDescriptor(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 72 73 int32_t UsbDdkStubGetConfigDescriptor(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 74 75 int32_t UsbDdkStubClaimInterface(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 76 77 int32_t UsbDdkStubReleaseInterface(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 78 79 int32_t UsbDdkStubSelectInterfaceSetting(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 80 81 int32_t UsbDdkStubGetCurrentInterfaceSetting(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 82 83 int32_t UsbDdkStubSendControlReadRequest(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 84 85 int32_t UsbDdkStubSendControlWriteRequest(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 86 87 int32_t UsbDdkStubSendPipeRequest(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 88 89 int32_t UsbDdkStubGetDeviceMemMapFd(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 90 91 int32_t UsbDdkStubGetVersion(MessageParcel& usbDdkData, MessageParcel& usbDdkReply, MessageOption& usbDdkOption); 92 93 94 static inline ObjectDelegator<OHOS::HDI::Usb::Ddk::V1_0::UsbDdkStub, OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> objDelegator_; 95 sptr<OHOS::HDI::Usb::Ddk::V1_0::IUsbDdk> impl_; 96 }; 97 } // V1_0 98 } // Ddk 99 } // Usb 100 } // HDI 101 } // OHOS 102 103 #endif // OHOS_HDI_USB_DDK_V1_0_USBDDKSTUB_H 104 105