config.cpp revision a24be4f06674b2707b57904deaa0dff5a95823bd
1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/****************************************************************************** 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (C) 2011-2012 Broadcom Corporation 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Licensed under the Apache License, Version 2.0 (the "License"); 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * you may not use this file except in compliance with the License. 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * You may obtain a copy of the License at: 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * http://www.apache.org/licenses/LICENSE-2.0 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Unless required by applicable law or agreed to in writing, software 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * distributed under the License is distributed on an "AS IS" BASIS, 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d4682361fd4d284657e4e33ca5f022cc8ea8f468andrew@webrtc.org * See the License for the specific language governing permissions and 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * limitations under the License. 16d4682361fd4d284657e4e33ca5f022cc8ea8f468andrew@webrtc.org * 17d4682361fd4d284657e4e33ca5f022cc8ea8f468andrew@webrtc.org ******************************************************************************/ 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include "OverrideLog.h" 19856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org#include "config.h" 20856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org#include <stdio.h> 21856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org#include <string> 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include <vector> 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include <list> 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LOG_TAG "NfcNciHal" 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgconst char transport_config_path[] = "/etc/"; 28856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org 29856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org#define config_name "libnfc-brcm.conf" 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define extra_config_base "libnfc-brcm-" 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define extra_config_ext ".conf" 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define IsStringValue 0x80000000 33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgusing namespace::std; 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass CNfcParam : public string 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgpublic: 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcParam(); 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcParam(const char* name, const string& value); 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcParam(const char* name, unsigned long value); 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org virtual ~CNfcParam(); 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned long numValue() const {return m_numValue;} 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const char* str_value() const {return m_str_value.c_str();} 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org size_t str_len() const {return m_str_value.length();} 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgprivate: 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string m_str_value; 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned long m_numValue; 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass CNfcConfig : public vector<const CNfcParam*> 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgpublic: 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org virtual ~CNfcConfig(); 55b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org static CNfcConfig& GetInstance(); 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org friend void readOptionalConfig(const char* optional); 57b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 58b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool getValue(const char* name, char* pValue, size_t& len) const; 59b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool getValue(const char* name, unsigned long& rValue) const; 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool getValue(const char* name, unsigned short & rValue) const; 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const CNfcParam* find(const char* p_name) const; 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void clean(); 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgprivate: 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcConfig(); 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool readConfig(const char* name, bool bResetContent); 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void moveFromList(); 67b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void moveToList(); 68b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void add(const CNfcParam* pParam); 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org list<const CNfcParam*> m_list; 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool mValidFile; 71b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned long state; 73b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org inline bool Is(unsigned long f) {return (state & f) == f;} 75b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org inline void Set(unsigned long f) {state |= f;} 76b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org inline void Reset(unsigned long f) {state &= ~f;} 77b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 78b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 79b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 80b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 81b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: isPrintable() 82b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 83b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: detremine if a char is printable 84b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 85b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 86b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 87b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 88b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orginline bool isPrintable(char c) 89b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 90b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return (c >= 'A' && c <= 'Z') || 91b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org (c >= 'a' && c <= 'z') || 92b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org (c >= '0' && c <= '9') || 93b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org c == '/' || c == '_' || c == '-' || c == '.'; 94b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 95b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 96b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 97b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 98b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: isDigit() 99b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 100b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: detremine if a char is numeral digit 101b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 102b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 103b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 104b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 105b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orginline bool isDigit(char c, int base) 106b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 107b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if ('0' <= c && c <= '9') 108b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return true; 109b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (base == 16) 110b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 111b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (('A' <= c && c <= 'F') || 112b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ('a' <= c && c <= 'f') ) 113b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return true; 114b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 115b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 116b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 117b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 118b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 119b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 120b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: getDigitValue() 121b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 122b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: return numercal value of a char 123b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 124b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 125b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 126b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 127b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orginline int getDigitValue(char c, int base) 128b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 129b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if ('0' <= c && c <= '9') 130b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return c - '0'; 131b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (base == 16) 132b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 133b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if ('A' <= c && c <= 'F') 134b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return c - 'A' + 10; 135b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if ('a' <= c && c <= 'f') 136b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return c - 'a' + 10; 137b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 138b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 139b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 140b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 141b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 142b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 143b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::readConfig() 144b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 145b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: read Config settings and parse them into a linked list 146b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** move the element from linked list to a array at the end 147b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 148b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 149b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 150856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org*******************************************************************************/ 151b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgbool CNfcConfig::readConfig(const char* name, bool bResetContent) 152856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org{ 153b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org enum { 154856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org BEGIN_LINE = 1, 155b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TOKEN, 156b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org STR_VALUE, 157856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org NUM_VALUE, 158b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org BEGIN_HEX, 159b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org BEGIN_QUOTE, 160b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org END_LINE 161b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org }; 162b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 163b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org FILE* fd = NULL; 164b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string token; 165b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string strValue; 166b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned long numValue = 0; 167b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcParam* pParam = NULL; 168b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int i = 0; 169b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int base = 0; 170b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org char c = 0; 171856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org 172b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = BEGIN_LINE; 173b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* open config file, read it into a buffer */ 174856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org if ((fd = fopen(name, "rb")) == NULL) 175b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 176856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org ALOGD("%s Cannot open config file %s\n", __func__, name); 177b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (bResetContent) 178856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org { 179b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ALOGD("%s Using default value for all settings\n", __func__); 180856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org mValidFile = false; 181b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 182856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org return false; 183b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 184856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org ALOGD("%s Opened %s config %s\n", __func__, (bResetContent ? "base" : "optional"), name); 185b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 186856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org mValidFile = true; 187b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (size() > 0) 188856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org { 189b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (bResetContent) 190b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org clean(); 191b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 192856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org moveToList(); 193b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 194b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 195856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org while (!feof(fd) && fread(&c, 1, 1, fd) == 1) 196b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 197b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org switch (state & 0xff) 198856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org { 199b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case BEGIN_LINE: 200856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org if (c == '#') 201856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org state = END_LINE; 202b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (isPrintable(c)) 203856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org { 204b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org i = 0; 205856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org token.erase(); 206856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org strValue.erase(); 207b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = TOKEN; 208856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org token.push_back(c); 209b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 210856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org break; 211856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org case TOKEN: 212b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (c == '=') 213856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org { 214b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org token.push_back('\0'); 215856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org state = BEGIN_QUOTE; 216856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org } 217b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (isPrintable(c)) 218b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org token.push_back(c); 219b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 220856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org state = END_LINE; 221856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org break; 222b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case BEGIN_QUOTE: 223856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org if (c == '"') 224b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 225b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = STR_VALUE; 226b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org base = 0; 227b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 228b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (c == '0') 229b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = BEGIN_HEX; 230b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (isDigit(c, 10)) 231b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 232b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = NUM_VALUE; 233b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org base = 10; 234b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue = getDigitValue(c, base); 235b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org i = 0; 236b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 237b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (c == '{') 238b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 239b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = NUM_VALUE; 240b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org base = 16; 241b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org i = 0; 242b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org Set(IsStringValue); 243b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 244b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 245b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = END_LINE; 246b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 247b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case BEGIN_HEX: 248b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (c == 'x' || c == 'X') 249b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 250b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = NUM_VALUE; 251b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org base = 16; 252b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue = 0; 253b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org i = 0; 254b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 255b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 256b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (isDigit(c, 10)) 257b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 258b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = NUM_VALUE; 259b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org base = 10; 260b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue = getDigitValue(c, base); 261b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 262b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 263b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (c != '\n' && c != '\r') 264b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 265b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = END_LINE; 266b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 267b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 268b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // fal through to numValue to handle numValue 269b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 270b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case NUM_VALUE: 271b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (isDigit(c, base)) 272b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 273b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue *= base; 274b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue += getDigitValue(c, base); 275b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ++i; 276856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org } 277856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org else if (base == 16 && (c == ':' || c == '-' || c == ' ' || c == '}')) 278856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org { 279b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (i > 0) 280b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 281b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int n = (i+1) / 2; 282b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org while (n-- > 0) 283b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 284b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned char c = (numValue >> (n * 8)) & 0xFF; 285b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strValue.push_back(c); 286b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 287b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 288b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org Set(IsStringValue); 289b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue = 0; 290b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org i = 0; 291b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 292b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 293b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 294b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (c == '\n' || c == '\r') 295b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = BEGIN_LINE; 296b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 297b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = END_LINE; 298b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (Is(IsStringValue) && base == 16 && i > 0) 299b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 300b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int n = (i+1) / 2; 301b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org while (n-- > 0) 302b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strValue.push_back(((numValue >> (n * 8)) & 0xFF)); 303b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 304b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (strValue.length() > 0) 305b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org pParam = new CNfcParam(token.c_str(), strValue); 306b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 307b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org pParam = new CNfcParam(token.c_str(), numValue); 308b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org add(pParam); 309b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strValue.erase(); 310b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org numValue = 0; 311b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 312b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 313b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case STR_VALUE: 314b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (c == '"') 315b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 316b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strValue.push_back('\0'); 317b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org state = END_LINE; 318b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org pParam = new CNfcParam(token.c_str(), strValue); 319b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org add(pParam); 320b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 321b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (isPrintable(c)) 322b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strValue.push_back(c); 3232a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org break; 3242a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org case END_LINE: 3252a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org if (c == '\n' || c == '\r') 3262a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org state = BEGIN_LINE; 3272a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org break; 3282a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org default: 3292a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org break; 3302a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org } 3312a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org } 3322a5dbce193b4ee594f0bb66c4f1a2bb24f31e621stefan@webrtc.org 333b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org fclose(fd); 334b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 335b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org moveFromList(); 336b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return size() > 0; 337b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 338b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 339b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 340b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 341b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::CNfcConfig() 342b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 343b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: class constructor 344b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 345b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 346b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 347b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 348b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcConfig::CNfcConfig() : 349b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org mValidFile(true) 350b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 351b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 352b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 353b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 354b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 355b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::~CNfcConfig() 356b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 357b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: class destructor 358b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 359b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 360b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 361b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 362b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcConfig::~CNfcConfig() 363856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org{ 364b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 365b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 366b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 367b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 368b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::GetInstance() 369b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 370b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: get class singleton object 371b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 372b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 373b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 374b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 375b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcConfig& CNfcConfig::GetInstance() 376b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 377b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org static CNfcConfig theInstance; 378b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 379b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (theInstance.size() == 0 && theInstance.mValidFile) 380b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 381b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string strPath; 382b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strPath.assign(transport_config_path); 383b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strPath += config_name; 384b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org theInstance.readConfig(strPath.c_str(), true); 385b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 386b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 387b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return theInstance; 388b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 389b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 390b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 391b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 392b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::getValue() 393b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 394b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: get a string value of a setting 395b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 396b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: true if setting exists 397856edd527f7c49517d6d866b602defd743ca0bdbandrew@webrtc.org** false if setting does not exist 398b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 399b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 400b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgbool CNfcConfig::getValue(const char* name, char* pValue, size_t& len) const 401b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 402b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const CNfcParam* pParam = find(name); 403b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam == NULL) 404b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 405b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 406b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam->str_len() > 0) 407b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 408b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org memset(pValue, 0, len); 409b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (len > pParam->str_len()) 410b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org len = pParam->str_len(); 411b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org memcpy(pValue, pParam->str_value(), len); 412b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return true; 413b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 414b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 415b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 416b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 417b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 418b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 419b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::getValue() 420b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 421b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: get a long numerical value of a setting 422b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 423b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: true if setting exists 424b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** false if setting does not exist 425b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 426b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 427b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgbool CNfcConfig::getValue(const char* name, unsigned long& rValue) const 428b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 429b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const CNfcParam* pParam = find(name); 430b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam == NULL) 431b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 432b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 433b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam->str_len() == 0) 434b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 435b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org rValue = static_cast<unsigned long>(pParam->numValue()); 436b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return true; 437b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 438b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 439b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 440b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 441b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 442b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 443b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::getValue() 444b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 445b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: get a short numerical value of a setting 446b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 447b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: true if setting exists 448b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** false if setting does not exist 449b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 450b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 451b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgbool CNfcConfig::getValue(const char* name, unsigned short& rValue) const 452b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 453b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const CNfcParam* pParam = find(name); 454b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam == NULL) 455b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 456b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 457b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam->str_len() == 0) 458b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 459b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org rValue = static_cast<unsigned short>(pParam->numValue()); 460b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return true; 461b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 462b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 463b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 464b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 465b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 466b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 467b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::find() 468b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 469b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: search if a setting exist in the setting array 470b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 471b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: pointer to the setting object 472b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 473b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 474b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgconst CNfcParam* CNfcConfig::find(const char* p_name) const 475b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 476b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (size() == 0) 477b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return NULL; 478b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 479b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (const_iterator it = begin(), itEnd = end(); it != itEnd; ++it) 480b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 481b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (**it < p_name) 482b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org continue; 483b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else if (**it == p_name) 484b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 485b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if((*it)->str_len() > 0) 486b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ALOGD("%s found %s=%s\n", __func__, p_name, (*it)->str_value()); 487b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 488b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org ALOGD("%s found %s=(0x%lX)\n", __func__, p_name, (*it)->numValue()); 489b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return *it; 490b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 491b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 492b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 493b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 494b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return NULL; 495b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 496b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 497b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 498b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 499b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::clean() 500b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 501b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: reset the setting array 502b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 503b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 504b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 505b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 506b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid CNfcConfig::clean() 507b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 508b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (size() == 0) 509b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return; 510b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 511b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (iterator it = begin(), itEnd = end(); it != itEnd; ++it) 512b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org delete *it; 513b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org clear(); 514b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 515b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 516b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 517b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 518b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::Add() 519b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 520b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: add a setting object to the list 521b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 522b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 523b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 524b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 525b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid CNfcConfig::add(const CNfcParam* pParam) 526b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 527b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (m_list.size() == 0) 528b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 529b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_list.push_back(pParam); 530b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return; 531b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 532b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (list<const CNfcParam*>::iterator it = m_list.begin(), itEnd = m_list.end(); it != itEnd; ++it) 533b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 534b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (**it < pParam->c_str()) 535b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org continue; 536b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_list.insert(it, pParam); 537b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return; 538b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 539b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_list.push_back(pParam); 540b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 541b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 542b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 543b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 544b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::moveFromList() 545b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 546b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: move the setting object from list to array 547b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 548b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 549b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 550b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 551b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid CNfcConfig::moveFromList() 552b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 553b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (m_list.size() == 0) 554b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return; 555b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 556b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (list<const CNfcParam*>::iterator it = m_list.begin(), itEnd = m_list.end(); it != itEnd; ++it) 557b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org push_back(*it); 558b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_list.clear(); 559b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 560b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 561b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 562b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 563b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcConfig::moveToList() 564b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 565b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: move the setting object from array to list 566b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 567b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 568b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 569b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 570b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid CNfcConfig::moveToList() 571b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 572b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (m_list.size() != 0) 573b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_list.clear(); 574b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 575b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (iterator it = begin(), itEnd = end(); it != itEnd; ++it) 576b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_list.push_back(*it); 577b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org clear(); 578b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 579b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 580b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 581b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 582b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcParam::CNfcParam() 583b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 584b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: class constructor 585b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 586b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 587b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 588b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 589b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcParam::CNfcParam() : 590b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_numValue(0) 591b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 592b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 593b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 594b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 595b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 596b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcParam::~CNfcParam() 597b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 598b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: class destructor 599b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 600b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 601b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 602b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 603b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcParam::~CNfcParam() 604b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 605b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 606b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 607b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 608b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 609b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcParam::CNfcParam() 610b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 611b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: class copy constructor 612b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 613b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 614b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 615b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 616b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcParam::CNfcParam(const char* name, const string& value) : 617b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string(name), 618b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_str_value(value), 619b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_numValue(0) 620b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 621b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 622b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 623b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 624b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 625b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: CNfcParam::CNfcParam() 626b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 627b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: class copy constructor 628b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 629b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 630b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 631b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 632b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgCNfcParam::CNfcParam(const char* name, unsigned long value) : 633b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string(name), 634b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org m_numValue(value) 635b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 636b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 637b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 638b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 639b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 640b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: GetStrValue 641b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 642b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: API function for getting a string value of a setting 643b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 644b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 645b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 646b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 647b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgextern "C" int GetStrValue(const char* name, char* pValue, unsigned long l) 648b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 649b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org size_t len = l; 650b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcConfig& rConfig = CNfcConfig::GetInstance(); 651b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 652b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool b = rConfig.getValue(name, pValue, len); 653b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return b ? len : 0; 654b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 655b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 656b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 657b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 658b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: GetNumValue 659b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 660b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: API function for getting a numerical value of a setting 661b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 662b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 663b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 664b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 665b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgextern "C" int GetNumValue(const char* name, void* pValue, unsigned long len) 666b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 667b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (!pValue) 668b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 669b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 670b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcConfig& rConfig = CNfcConfig::GetInstance(); 671b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const CNfcParam* pParam = rConfig.find(name); 672b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 673b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (pParam == NULL) 674b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 675b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org unsigned long v = pParam->numValue(); 676b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (v == 0 && pParam->str_len() > 0 && pParam->str_len() < 4) 677b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 678b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const unsigned char* p = (const unsigned char*)pParam->str_value(); 679b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for (size_t i = 0 ; i < pParam->str_len(); ++i) 680b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 681b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org v *= 256; 682b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org v += *p++; 683b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 684b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 685b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org switch (len) 686b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 687b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case sizeof(unsigned long): 688b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *(static_cast<unsigned long*>(pValue)) = (unsigned long)v; 689b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 690b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case sizeof(unsigned short): 691b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *(static_cast<unsigned short*>(pValue)) = (unsigned short)v; 692b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 693b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org case sizeof(unsigned char): 694b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *(static_cast<unsigned char*> (pValue)) = (unsigned char)v; 695b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org break; 696b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org default: 697b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 698b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 699b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return true; 700b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 701b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 702b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 703b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 704b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: resetConfig 705b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 706b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: reset settings array 707b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 708b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 709b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 710b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 711b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgextern void resetConfig() 712b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 713b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcConfig& rConfig = CNfcConfig::GetInstance(); 714b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 715b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org rConfig.clean(); 716b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 717b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 718b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/******************************************************************************* 719b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 720b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Function: readOptionalConfig() 721b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 722b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Description: read Config settings from an optional conf file 723b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 724b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** Returns: none 725b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org** 726b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org*******************************************************************************/ 727b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgvoid readOptionalConfig(const char* extra) 728b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 729b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org string strPath; 730b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strPath.assign(transport_config_path); 731b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strPath += extra_config_base; 732b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strPath += extra; 733b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org strPath += extra_config_ext; 734b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CNfcConfig::GetInstance().readConfig(strPath.c_str(), false); 735b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 736b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 737b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org