亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gsm_phonebook.cc

?? 對各種手機進行編程的工具包源碼gsmlib 1.9版本。
?? CC
?? 第 1 頁 / 共 2 頁
字號:
// *************************************************************************// * GSM TA/ME library// *// * File:    gsm_phonebook.cc// *// * Purpose: Phonebook management functions// *// * Author:  Peter Hofmann (software@pxh.de)// *// * Created: 6.5.1999// *************************************************************************#ifdef HAVE_CONFIG_H#include <gsm_config.h>#endif#include <gsmlib/gsm_nls.h>#include <gsmlib/gsm_sysdep.h>#include <gsmlib/gsm_phonebook.h>#include <gsmlib/gsm_parser.h>#include <gsmlib/gsm_me_ta.h>#include <strstream>#include <iostream>#include <assert.h>#include <ctype.h>using namespace std;using namespace gsmlib;// PhonebookEntry membersPhonebookEntry::PhonebookEntry(const PhonebookEntryBase &e)  throw(GsmException) : _cached(true), _myPhonebook(NULL){  set(e.telephone(), e.text(), e.index(), e.useIndex());}void PhonebookEntry::set(string telephone, string text, int index,                         bool useIndex)  throw(GsmException){  checkTextAndTelephone(text, telephone);  if (_myPhonebook != NULL)  {    if (text.length() > _myPhonebook->getMaxTextLen())      throw GsmException(        stringPrintf(_("length of text '%s' exceeds maximum text "                       "length (%d characters) of phonebook '%s'"),                     text.c_str(), _myPhonebook->getMaxTextLen(),                     _myPhonebook->name().c_str()),        ParameterError);        if (telephone.length() > _myPhonebook->getMaxTelephoneLen())      throw GsmException(        stringPrintf(_("length of telephone number '%s' "                        "exceeds maximum telephone number "                       "length (%d characters) of phonebook '%s'"),                     telephone.c_str(), _myPhonebook->getMaxTelephoneLen(),                     _myPhonebook->name().c_str()),        ParameterError);    _myPhonebook->writeEntry(_index, telephone, text);  }  else    _index = index;  _useIndex = useIndex;  _cached = true;  _telephone = telephone;  _text = text;  _changed = true;}string PhonebookEntry::text() const throw(GsmException){  if (! cached())  {    assert(_myPhonebook != NULL);    // these operations are at least "logically const"    PhonebookEntry *thisEntry = const_cast<PhonebookEntry*>(this);    _myPhonebook->readEntry(_index, thisEntry->_telephone, thisEntry->_text);    thisEntry->_cached = true;  }  return _text;}string PhonebookEntry::telephone() const throw(GsmException){  if (! cached())  {    assert(_myPhonebook != NULL);    // these operations are at least "logically const"    PhonebookEntry *thisEntry = const_cast<PhonebookEntry*>(this);    _myPhonebook->readEntry(_index, thisEntry->_telephone, thisEntry->_text);    thisEntry->_cached = true;  }  return _telephone;}bool PhonebookEntry::cached() const{  if (_myPhonebook == NULL)    return _cached;  else    return _cached && _myPhonebook->_useCache;}PhonebookEntry::PhonebookEntry(const PhonebookEntry &e) throw(GsmException){  set(e._telephone, e._text, e._index, e._useIndex);}PhonebookEntry &PhonebookEntry::operator=(const PhonebookEntry &e)  throw(GsmException){  set(e._telephone, e._text, e._index, e._useIndex);  return *this;}// Phonebook membersint Phonebook::parsePhonebookEntry(string response,                                   string &telephone, string &text){  // this is a workaround for a bug that occurs with my ME/TA combination  // some texts are truncated and don't have a trailing "  if (response.length() > 0 && response[response.length() - 1] != '"')    response += '"';  Parser p(response);  int index = p.parseInt();  p.parseComma();  // handle case of empty entry  if (p.getEol().substr(0, 5) == "EMPTY")  {    telephone = "";    text = "";    return index;  }  telephone = p.parseString();  p.parseComma();  unsigned int numberFormat = p.parseInt();  if (numberFormat != UnknownNumberFormat &&      numberFormat != InternationalNumberFormat)    cerr << "*** GSMLIB WARNING: Unexpected number format when reading from "         << "phonebook: " << numberFormat << " ***" << endl;  p.parseComma();  text = p.parseString(false, true);  if (lowercase(_myMeTa.getCurrentCharSet()) == "gsm")    text = gsmToLatin1(text);  if (numberFormat == InternationalNumberFormat)  {    // skip leading "+" signs that may already exist    while (telephone.length() > 0 && telephone[0] == '+')      telephone = telephone.substr(1);    telephone = "+" + telephone;  }  return index;}void Phonebook::readEntry(int index, string &telephone, string &text)  throw(GsmException){  // select phonebook  _myMeTa.setPhonebook(_phonebookName);  // read entry  string response = _at->chat("+CPBR=" + intToStr(index), "+CPBR:",                              false, // dont't ignore errors                              true); // but accept empty responses  // (the latter is necessary for some mobile phones that return nothing  // if the entry is empty)  if (response.length() == 0)   // OK phone returned empty response  {    telephone = text = "";      // then the entry is empty as well  }  else    parsePhonebookEntry(response, telephone, text);#ifndef NDEBUG  if (debugLevel() >= 1)    cerr << "*** Reading PB entry " << index << " number " << telephone          << " text " << text << endl;#endif}void Phonebook::findEntry(string text, int &index, string &telephone)  throw(GsmException){  // select phonebook  _myMeTa.setPhonebook(_phonebookName);  // read entry  string response = _at->chat("+CPBF=\"" + text + "\"", "+CPBF:",                              false, // dont't ignore errors                              true); // but accept empty responses  // (the latter is necessary for some mobile phones that return nothing  // if the entry is empty)  if (response.length() == 0)   // OK phone returned empty response  {    telephone = "";      // then the entry is empty as well    index = 0;  }  else    index=parsePhonebookEntry(response, telephone, text);#ifndef NDEBUG  if (debugLevel() >= 1)    cerr << "*** Finding PB entry " << text << " number " << telephone          << " index " << index << endl;#endif}void Phonebook::writeEntry(int index, string telephone, string text)  throw(GsmException){#ifndef NDEBUG  if (debugLevel() >= 1)    cerr << "*** Writing PB entry #" << index << " number '" << telephone         << "' text '" << text << "'" << endl;#endif  // select phonebook  _myMeTa.setPhonebook(_phonebookName);  // write entry  string s;  if (telephone == "" && text == "")  {    ostrstream os;    os << "+CPBW=" << index;    os << ends;    char *ss = os.str();    s = string(ss);    delete[] ss;  }  else  {    int type;    if (telephone.find('+') == string::npos)      type = UnknownNumberFormat;    else      type = InternationalNumberFormat;    string gsmText = text;    if (lowercase(_myMeTa.getCurrentCharSet()) == "gsm")      gsmText = latin1ToGsm(gsmText);    ostrstream os;    os << "+CPBW=" << index << ",\"" << telephone << "\"," << type       << ",\"";    os << ends;    char *ss = os.str();    s = string(ss);    delete[] ss;    // this cannot be added with ostrstream because the gsmText can    // contain a zero (GSM default alphabet for '@')    s +=  gsmText + "\"";  }  _at->chat(s);}Phonebook::iterator Phonebook::insertFirstEmpty(string telephone, string text)  throw(GsmException){  for (int i = 0; i < _maxSize; i++)    if (_phonebook[i].empty())    {      _phonebook[i].set(telephone, text);      adjustSize(1);      return begin() + i;    }  throw GsmException(_("phonebook full"), OtherError);}Phonebook::iterator Phonebook::insert(const string telephone,                                      const string text,                                      const int index){  for (int i = 0; i < _maxSize; i++)    if (_phonebook[i].index() == index)      if (_phonebook[i].empty())      {        _phonebook[i].set(telephone, text);        adjustSize(1);        return begin() + i;      }      else        throw GsmException(_("attempt to overwrite phonebook entry"),                           OtherError);  return end();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va欧美va人人爽| 国产精品国产馆在线真实露脸| 成人精品国产福利| 精品一区二区久久| 久久超碰97人人做人人爱| 午夜精品免费在线观看| 五月激情综合网| 毛片基地黄久久久久久天堂| 精品系列免费在线观看| 国产自产2019最新不卡| 国产精品99久久久久久有的能看| 国产精品影视天天线| 成人毛片视频在线观看| 91麻豆免费看| 欧美精品丝袜久久久中文字幕| 欧美高清视频不卡网| 日韩精品最新网址| 国产视频一区在线播放| 亚洲日本va在线观看| 亚洲国产精品久久人人爱| 日本午夜精品一区二区三区电影| 麻豆免费看一区二区三区| 国产91精品入口| 日本精品视频一区二区三区| 欧美久久久久久蜜桃| 亚洲精品在线免费观看视频| 中文字幕在线一区免费| 午夜日韩在线观看| 国产精品白丝jk黑袜喷水| 色av一区二区| 日韩精品一区二| 自拍av一区二区三区| 日韩精品一二三区| 成人在线综合网| 欧美日韩一级视频| 国产婷婷色一区二区三区四区| 亚洲人成小说网站色在线| 欧美96一区二区免费视频| 床上的激情91.| 日韩一区二区在线免费观看| 国产精品热久久久久夜色精品三区| 亚洲在线一区二区三区| 国产一区二三区| 欧美色图免费看| 国产精品欧美综合在线| 日本欧美韩国一区三区| 91日韩在线专区| 久久精品一区蜜桃臀影院| 无吗不卡中文字幕| 91福利国产精品| 国产精品国产三级国产aⅴ原创| 免费看欧美女人艹b| 97久久精品人人做人人爽50路| 精品国产一区a| 午夜婷婷国产麻豆精品| 97久久精品人人做人人爽| 国产欧美一区二区精品婷婷| 免费看日韩精品| 555www色欧美视频| 亚洲图片有声小说| 91色porny蝌蚪| 最新热久久免费视频| 国产 欧美在线| 精品少妇一区二区三区日产乱码 | 日日摸夜夜添夜夜添精品视频| 成人午夜激情视频| 久久品道一品道久久精品| 美女视频黄 久久| 日韩视频一区二区| 午夜电影一区二区三区| 欧洲一区二区三区免费视频| 亚洲美女屁股眼交3| 99久久国产免费看| 国产精品美女www爽爽爽| 国产成人精品免费在线| 久久久精品综合| 国产98色在线|日韩| 久久午夜国产精品| 高清av一区二区| 国产精品第五页| 色综合久久久久综合99| 亚洲视频一区在线| 日本久久一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 欧美日韩一区不卡| 奇米色777欧美一区二区| 精品av久久707| 亚洲男人天堂一区| 久久精品亚洲国产奇米99| 精品一区二区在线视频| 日韩美女天天操| 国产精品综合一区二区| 日本一区二区三区四区在线视频| 国产精品69毛片高清亚洲| 国产精品美女www爽爽爽| 色婷婷久久99综合精品jk白丝| 夜夜操天天操亚洲| 欧美一区二区免费| 国产成a人亚洲| 亚洲欧美偷拍三级| 91精品国产91综合久久蜜臀| 国产在线麻豆精品观看| 日韩美女啊v在线免费观看| 欧美日韩国产一级二级| 久久99久久精品| 亚洲日本在线a| 欧美成人伊人久久综合网| 国产乱码字幕精品高清av | 亚洲精品国产品国语在线app| 欧美日韩国产中文| 国产酒店精品激情| 亚洲一区在线播放| 国产亚洲精品久| 日本韩国一区二区三区| 国产呦萝稀缺另类资源| 亚洲精品国产品国语在线app| 精品国产乱码久久久久久浪潮 | 色999日韩国产欧美一区二区| 日韩中文字幕一区二区三区| 中文字幕不卡的av| 日韩欧美黄色影院| 91久久线看在观草草青青| 国产在线播精品第三| 偷拍自拍另类欧美| 最新国产成人在线观看| 日韩精品一区二| 欧美精品在线观看一区二区| 99久久精品99国产精品| 黑人精品欧美一区二区蜜桃| 天天综合色天天综合| 亚洲欧洲精品一区二区三区 | 国产91在线看| 蜜臀国产一区二区三区在线播放| 亚洲另类色综合网站| 久久影院视频免费| 日韩欧美国产不卡| 欧美日韩国产成人在线免费| 色综合久久中文综合久久牛| 成人免费看黄yyy456| 国产在线播精品第三| 蜜臀久久99精品久久久久宅男| 亚洲午夜精品久久久久久久久| 中文字幕一区二区三区在线不卡| 精品国产一区二区国模嫣然| 91精品国产综合久久婷婷香蕉| 91久久一区二区| 在线视频一区二区三| 91小宝寻花一区二区三区| 成人av影院在线| 福利电影一区二区三区| 国产电影一区在线| 国产v综合v亚洲欧| 风间由美性色一区二区三区| 国产成人综合自拍| 国产成人小视频| 成人国产精品免费| www.亚洲精品| 色婷婷精品大在线视频 | 国产福利不卡视频| 国产精品12区| 成人国产一区二区三区精品| av一区二区三区黑人| 色悠悠久久综合| 欧美亚洲综合网| 制服.丝袜.亚洲.另类.中文| 日韩你懂的在线观看| 精品久久久久99| 国产精品不卡一区| 亚洲大片精品永久免费| 日本午夜精品视频在线观看| 国产伦精品一区二区三区在线观看| 国内精品伊人久久久久av影院| 国产精品888| 欧美亚洲综合另类| 日韩欧美高清在线| 中文字幕乱码亚洲精品一区 | 久久久精品日韩欧美| 18成人在线观看| 青椒成人免费视频| 丁香网亚洲国际| 欧美性生交片4| 亚洲精品在线免费观看视频| 中文字幕一区二区三区精华液| 亚洲一区在线观看免费| 久久99精品久久久久婷婷| 91天堂素人约啪| 欧美一二三在线| ...中文天堂在线一区| 免费黄网站欧美| 91麻豆蜜桃一区二区三区| 欧美大片在线观看一区二区| 亚洲欧美日韩人成在线播放| 免费高清成人在线| 91成人网在线| 久久久99精品免费观看不卡| 亚洲h动漫在线| 色综合网站在线| 国产亚洲一本大道中文在线| 天天色综合成人网| 91丝袜美腿高跟国产极品老师 |