/nci/jni/RouteDataSet.h
https://gitlab.com/Codeaurora/platform_vendor_nxp_opensource_packages_apps_Nfc · C Header · 326 lines · 71 code · 48 blank · 207 comment · 0 complexity · 3c2fc0d5387ba8fbff0b4b334513be90 MD5 · raw file
- /*
- * 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.
- */
- /******************************************************************************
- *
- * The original Work has been changed by NXP Semiconductors.
- *
- * Copyright (C) 2015 NXP Semiconductors
- *
- * 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.
- *
- ******************************************************************************/
- /*
- * Import and export general routing data using a XML file.
- */
- #pragma once
- #include "NfcJniUtil.h"
- #include "nfa_api.h"
- //#include <libxml/parser.h>
- #include <vector>
- #include <string>
- /*****************************************************************************
- **
- ** Name: RouteData
- **
- ** Description: Base class for every kind of route data.
- **
- *****************************************************************************/
- class RouteData
- {
- public:
- enum RouteType {ProtocolRoute, TechnologyRoute};
- RouteType mRouteType;
- protected:
- RouteData (RouteType routeType) : mRouteType (routeType)
- {}
- };
- /*****************************************************************************
- **
- ** Name: RouteDataForProtocol
- **
- ** Description: Data for protocol routes.
- **
- *****************************************************************************/
- class RouteDataForProtocol : public RouteData
- {
- public:
- int mNfaEeHandle; //for example 0x4f3, 0x4f4
- bool mSwitchOn;
- bool mSwitchOff;
- bool mBatteryOff;
- tNFA_PROTOCOL_MASK mProtocol;
- RouteDataForProtocol () : RouteData (ProtocolRoute), mNfaEeHandle (NFA_HANDLE_INVALID),
- mSwitchOn (false), mSwitchOff (false), mBatteryOff (false),
- mProtocol (0)
- {}
- };
- /*****************************************************************************
- **
- ** Name: RouteDataForTechnology
- **
- ** Description: Data for technology routes.
- **
- *****************************************************************************/
- class RouteDataForTechnology : public RouteData
- {
- public:
- int mNfaEeHandle; //for example 0x4f3, 0x4f4
- bool mSwitchOn;
- bool mSwitchOff;
- bool mBatteryOff;
- tNFA_TECHNOLOGY_MASK mTechnology;
- RouteDataForTechnology () : RouteData (TechnologyRoute), mNfaEeHandle (NFA_HANDLE_INVALID),
- mSwitchOn (false), mSwitchOff (false), mBatteryOff (false),
- mTechnology (0)
- {}
- };
- /*****************************************************************************/
- /*****************************************************************************/
- /*****************************************************************************
- **
- ** Name: AidBuffer
- **
- ** Description: Buffer to store AID after converting a string of hex
- ** values to bytes.
- **
- *****************************************************************************/
- class AidBuffer
- {
- public:
- /*******************************************************************************
- **
- ** Function: AidBuffer
- **
- ** Description: Parse a string of hex numbers. Store result in an array of
- ** bytes.
- ** aid: string of hex numbers.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- AidBuffer (std::string& aid);
- /*******************************************************************************
- **
- ** Function: ~AidBuffer
- **
- ** Description: Release all resources.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- ~AidBuffer ();
- UINT8* buffer () {return mBuffer;};
- int length () {return mBufferLen;};
- private:
- UINT8* mBuffer;
- UINT32 mBufferLen;
- };
- /*****************************************************************************/
- /*****************************************************************************/
- /*****************************************************************************
- **
- ** Name: RouteDataSet
- **
- ** Description: Import and export general routing data using a XML file.
- ** See /data/bcm/param/route.xml
- **
- *****************************************************************************/
- class RouteDataSet
- {
- public:
- typedef std::vector<RouteData*> Database;
- enum DatabaseSelection {DefaultRouteDatabase, SecElemRouteDatabase};
- /*******************************************************************************
- **
- ** Function: ~RouteDataSet
- **
- ** Description: Release all resources.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- ~RouteDataSet ();
- /*******************************************************************************
- **
- ** Function: initialize
- **
- ** Description: Initialize resources.
- **
- ** Returns: True if ok.
- **
- *******************************************************************************/
- bool initialize ();
- /*******************************************************************************
- **
- ** Function: import
- **
- ** Description: Import data from an XML file. Fill the database.
- **
- ** Returns: True if ok.
- **
- *******************************************************************************/
- bool import ();
- /*******************************************************************************
- **
- ** Function: getDatabase
- **
- ** Description: Obtain a database of routing data.
- ** selection: which database.
- **
- ** Returns: Pointer to database.
- **
- *******************************************************************************/
- Database* getDatabase (DatabaseSelection selection);
- /*******************************************************************************
- **
- ** Function: saveToFile
- **
- ** Description: Save XML data from a string into a file.
- ** routesXml: XML that represents routes.
- **
- ** Returns: True if ok.
- **
- *******************************************************************************/
- static bool saveToFile (const char* routesXml);
- /*******************************************************************************
- **
- ** Function: loadFromFile
- **
- ** Description: Load XML data from file into a string.
- ** routesXml: string to receive XML data.
- **
- ** Returns: True if ok.
- **
- *******************************************************************************/
- static bool loadFromFile (std::string& routesXml);
- /*******************************************************************************
- **
- ** Function: deleteFile
- **
- ** Description: Delete route data XML file.
- **
- ** Returns: True if ok.
- **
- *******************************************************************************/
- static bool deleteFile ();
- /*******************************************************************************
- **
- ** Function: printDiagnostic
- **
- ** Description: Print some diagnostic output.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- void printDiagnostic ();
- private:
- Database mSecElemRouteDatabase; //routes when NFC service selects sec elem
- Database mDefaultRouteDatabase; //routes when NFC service deselects sec elem
- static const char* sConfigFile;
- static const bool sDebug = false;
- /*******************************************************************************
- **
- ** Function: deleteDatabase
- **
- ** Description: Delete all routes stored in all databases.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- void deleteDatabase ();
- /*******************************************************************************
- **
- ** Function: importProtocolRoute
- **
- ** Description: Parse data for protocol routes.
- ** element: XML node for one protocol route.
- ** database: store data in this database.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- //void importProtocolRoute (xmlNodePtr& element, Database& database);
- /*******************************************************************************
- **
- ** Function: importTechnologyRoute
- **
- ** Description: Parse data for technology routes.
- ** element: XML node for one technology route.
- ** database: store data in this database.
- **
- ** Returns: None.
- **
- *******************************************************************************/
- // void importTechnologyRoute (xmlNodePtr& element, Database& database);
- };