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 #ifndef TAG_SESSION_STUB_H
16 #define TAG_SESSION_STUB_H
17 #include "access_token.h"
18 #include "foreground_callback_proxy.h"
19 #include "iforeground_callback.h"
20 #include "ireader_mode_callback.h"
21 #include "iremote_stub.h"
22 #include "itag_session.h"
23 #include "message_parcel.h"
24 #include "reader_mode_callback_proxy.h"
25 
26 namespace OHOS {
27 namespace NFC {
28 namespace TAG {
29 class TagSessionStub : public OHOS::IRemoteStub<OHOS::NFC::TAG::ITagSession> {
30 public:
31     int OnRemoteRequest(uint32_t code,                         /* [in] */
32                         OHOS::MessageParcel& data,             /* [in] */
33                         OHOS::MessageParcel& reply,            /* [out] */
34                         OHOS::MessageOption& option) override; /* [in] */
TagSessionStub()35     TagSessionStub() {}
~TagSessionStub()36     virtual ~TagSessionStub() {}
37     void RemoveForegroundDeathRcpt(const wptr<IRemoteObject> &remote);
38     void RemoveReaderModeDeathRcpt(const wptr<IRemoteObject> &remote);
39 
40 private:
41     int HandleConnect(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
42     int HandleIsConnected(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
43     int HandleReconnect(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
44     int HandleDisconnect(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
45     int HandleSetTimeout(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
46     int HandleGetTimeout(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
47     int HandleResetTimeout(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
48     int HandleGetTechList(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
49     int HandleIsTagFieldOn(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
50     int HandleIsNdef(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
51     int HandleSendRawFrame(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
52     int HandleNdefRead(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
53     int HandleNdefWrite(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
54     int HandleNdefMakeReadOnly(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
55     int HandleFormatNdef(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
56     int HandleCanMakeReadOnly(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
57     int HandleGetMaxTransceiveLength(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
58     int HandleIsSupportedApdusExtended(OHOS::MessageParcel& data, OHOS::MessageParcel& reply);
59     int HandleRegForegroundDispatch(MessageParcel& data, MessageParcel& reply);
60     int HandleUnregForegroundDispatch(MessageParcel& data, MessageParcel& reply);
61     int HandleRegReaderMode(MessageParcel& data, MessageParcel& reply);
62     int HandleUnregReaderMode(MessageParcel& data, MessageParcel& reply);
63 
64 private:
65     std::mutex mutex_ {};
66     sptr<KITS::IForegroundCallback> foregroundCallback_;
67     sptr<KITS::IReaderModeCallback> readerModeCallback_;
68     sptr<IRemoteObject::DeathRecipient> foregroundDeathRecipient_ {nullptr};
69     sptr<IRemoteObject::DeathRecipient> readerModeDeathRecipient_ {nullptr};
70 };
71 }  // namespace TAG
72 }  // namespace NFC
73 }  // namespace OHOS
74 #endif  // TAG_SESSION_STUB_H
75