diff options
Diffstat (limited to 'nci/jni/HostAidRouter.h')
-rw-r--r-- | nci/jni/HostAidRouter.h | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/nci/jni/HostAidRouter.h b/nci/jni/HostAidRouter.h new file mode 100644 index 0000000..f653aa9 --- /dev/null +++ b/nci/jni/HostAidRouter.h @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Manage listen-mode AID routing to the host. + */ +#pragma once +#include "SyncEvent.h" +#include "NfcJniUtil.h" +#include "RouteDataSet.h" +#include <vector> +extern "C" +{ + #include "nfa_api.h" +} + + +class HostAidRouter +{ +public: + /******************************************************************************* + ** + ** Function: getInstance + ** + ** Description: Obtain a reference to the singleton object of HostAidRouter + ** + ** Returns: Reference to HostAidRouter object. + ** + *******************************************************************************/ + static HostAidRouter& getInstance (); + + + /******************************************************************************* + ** + ** Function: initialize + ** + ** Description: Initialize all resources. + ** + ** Returns: True if ok. + ** + *******************************************************************************/ + bool initialize (); + + + /******************************************************************************* + ** + ** Function: addPpseRoute + ** + ** Description: Route Proximity Payment System Environment request + ** to the host. This function is called when there is no + ** route data. + ** + ** Returns: True if ok. + ** + *******************************************************************************/ + bool addPpseRoute (); + + + /******************************************************************************* + ** + ** Function: deleteAllRoutes + ** + ** Description: Delete all AID routes to the host. + ** + ** Returns: True if ok. + ** + *******************************************************************************/ + bool deleteAllRoutes (); + + + /******************************************************************************* + ** + ** Function: isFeatureEnabled + ** + ** Description: Is AID-routing-to-host feature enabled? + ** + ** Returns: True if enabled. + ** + *******************************************************************************/ + bool isFeatureEnabled () {return mIsFeatureEnabled;}; + + + /******************************************************************************* + ** + ** Function: startRoute + ** + ** Description: Begin to route AID request to the host. + ** aid: Buffer that contains Application ID + ** aidLen: Actual length of the buffer. + ** + ** Returns: True if ok. + ** + *******************************************************************************/ + bool startRoute (const UINT8* aid, UINT8 aidLen); + + +private: + typedef std::vector<tNFA_HANDLE> AidHandleDatabase; + + tNFA_HANDLE mTempHandle; + bool mIsFeatureEnabled; + static HostAidRouter sHostAidRouter; //singleton object + RouteDataSet mRouteDataSet; //route data from xml file + SyncEvent mRegisterEvent; + SyncEvent mDeregisterEvent; + AidHandleDatabase mHandleDatabase; //store all AID handles that are registered with the stack + + + /******************************************************************************* + ** + ** Function: HostAidRouter + ** + ** Description: Private constructor to prevent public call. + ** + ** Returns: None. + ** + *******************************************************************************/ + HostAidRouter (); + + + /******************************************************************************* + ** + ** Function: ~HostAidRouter + ** + ** Description: Private destructor to prevent public call. + ** + ** Returns: None. + ** + *******************************************************************************/ + ~HostAidRouter (); + + + /******************************************************************************* + ** + ** Function: stackCallback + ** + ** Description: Receive events from the NFC stack. + ** + ** Returns: None. + ** + *******************************************************************************/ + static void stackCallback (UINT8 event, tNFA_CONN_EVT_DATA* eventdata); +}; |