summaryrefslogtreecommitdiffstats
path: root/nci/jni/HostAidRouter.h
diff options
context:
space:
mode:
Diffstat (limited to 'nci/jni/HostAidRouter.h')
-rw-r--r--nci/jni/HostAidRouter.h156
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);
+};