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

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

?? gsm_sorted_phonebook.h

?? Gsm手機(短信息,電話簿)開發庫C++源代碼
?? H
字號:
// *************************************************************************
// * GSM TA/ME library
// *
// * File:    gsm_sorted_phonebook.h
// *
// * Purpose: Alphabetically sorted phonebook
// *          (residing in files or in the ME)
// *
// * Author:  Peter Hofmann (software@pxh.de)
// *
// * Created: 25.6.1999
// *************************************************************************

#ifndef GSM_SORTED_PHONEBOOK_H
#define GSM_SORTED_PHONEBOOK_H

#include <gsmlib/gsm_sorted_phonebook_base.h>
#include <gsmlib/gsm_phonebook.h>
#include <gsmlib/gsm_util.h>
#include <gsmlib/gsm_map_key.h>
#include <string>
#include <map>
#include <fstream>

using namespace std;

namespace gsmlib
{

  // The class SortedPhonebook makes the phonebook more manageable:
  // - empty slots in the ME phonebook are hidden by the API
  // - the class transparently handles phonebooks that reside in files

  class SortedPhonebook : public SortedPhonebookBase
  {
  private:
    bool _changed;              // true if file has changed after last save
    bool _fromFile;             // true if phonebook read from file
    bool _madeBackupFile;       // true if backup file was created
    SortOrder _sortOrder;       // sort order for the phonebook
    bool _useIndices;           // if phonebook from file: input file had
                                // indices; will write indices, too
    bool _readonly;             // =true if read from stdin
    string _filename;           // name of the file if phonebook from file
    PhonebookMap _sortedPhonebook; // phonebook from file
    PhonebookRef _mePhonebook;  // phonebook if from ME

    // convert CR and LF in string to "\r" and "\n" respectively
    string escapeString(string s);

    // convert "\r" and "\n" to CR and LF respectively
    // start parsing with pos, stop when CR, LF, 0, or '|' is encountered
    string unescapeString(char *line, unsigned int &pos);

    // initial read of phonebook file
    void readPhonebookFile(istream &pbs, string filename) throw(GsmException);

    // synchronize SortedPhonebook with file (no action if in ME)
    void sync(bool fromDestructor) throw(GsmException);
    
    // throw an exception if _readonly is set
    void checkReadonly() throw(GsmException);

  public:
    // iterator defs
    typedef SortedPhonebookIterator iterator;
    typedef PhonebookMap::size_type size_type;

    // constructor for file-based phonebook
    // expect indices in file if useIndices == true
    // read from file
    SortedPhonebook(string filename, bool useIndices)
      throw(GsmException);
    // read from stdin or start empty and write to stdout
    SortedPhonebook(bool fromStdin, bool useIndices)
      throw(GsmException);

    // constructor for ME-based phonebook
    SortedPhonebook(PhonebookRef mePhonebook) throw(GsmException);

    // return maximum telephone number length
    unsigned int getMaxTelephoneLen() const;

    // return maximum entry description length
    unsigned int getMaxTextLen() const;

    // handle sorting
    void setSortOrder(SortOrder newOrder);
    SortOrder sortOrder() const {return _sortOrder;}
    
    // phonebook traversal commands
    // these are suitable to use stdc++ lib algorithms and iterators
    // ME have fixed storage space implemented as memory slots
    // that may either be empty or used
    
    // traversal commands
    iterator begin() {return _sortedPhonebook.begin();}
    iterator end() {return _sortedPhonebook.end();}

    // the size macros return the number of used entries
    int size() const {return _sortedPhonebook.size();}
    int max_size() const;
    int capacity() const;
    bool empty() const throw(GsmException) {return size() == 0;}

    // existing iterators remain valid after an insert or erase operation
    // note: inserting many entries in indexed mode is inefficient
    // if the sort order is not set to indexed before

    // return position
    // insert only writes to available positions
    // warning: insert fails silently if size() == max_size()
    iterator insert(const PhonebookEntryBase& x) throw(GsmException);
    iterator insert(iterator position, const PhonebookEntryBase& x)
      throw(GsmException);

    PhonebookMap::size_type count(string &key)
      {return _sortedPhonebook.count(PhoneMapKey(*this, lowercase(key)));}
    iterator find(string &key)
      {return _sortedPhonebook.find(PhoneMapKey(*this, lowercase(key)));}
    iterator lower_bound(string &key)
      {return _sortedPhonebook.lower_bound(PhoneMapKey(*this,
                                                       lowercase(key)));}
    iterator upper_bound(string &key)
      {return _sortedPhonebook.upper_bound(PhoneMapKey(*this,
                                                       lowercase(key)));}
    pair<iterator, iterator> equal_range(string &key)
      {return _sortedPhonebook.equal_range(PhoneMapKey(*this,
                                                       lowercase(key)));}

    PhonebookMap::size_type count(int key)
      {return _sortedPhonebook.count(PhoneMapKey(*this, key));}
    iterator find(int key)
      {return _sortedPhonebook.find(PhoneMapKey(*this, key));}
    iterator lower_bound(int key)
      {return _sortedPhonebook.lower_bound(PhoneMapKey(*this, key));}
    iterator upper_bound(int key)
      {return _sortedPhonebook.upper_bound(PhoneMapKey(*this, key));}
    pair<iterator, iterator> equal_range(int key)
      {return _sortedPhonebook.equal_range(PhoneMapKey(*this, key));}

    size_type erase(string &key) throw(GsmException);
    size_type erase(int key) throw(GsmException);
    void erase(iterator position) throw(GsmException);
    void erase(iterator first, iterator last) throw(GsmException);
    void clear() throw(GsmException);

    // synchronize SortedPhonebook with file (no action if in ME)
    void sync() throw(GsmException) {sync(false);}
    
    // destructor
    // writes back change to file if phonebook is in file
    virtual ~SortedPhonebook();
  };

  //  typedef Ref<SortedPhonebook> SortedPhonebookRef;
};

#endif // GSM_SORTED_PHONEBOOK_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩免费视频| 精品一区二区在线免费观看| 国产精品久久久久四虎| 成人欧美一区二区三区1314| 欧美一区二区不卡视频| 欧美mv日韩mv国产网站| 精品人在线二区三区| 中文字幕不卡一区| 欧美一级一区二区| 成人永久aaa| 一本大道久久a久久综合| 欧美高清hd18日本| 国产亚洲精品资源在线26u| 国产精品毛片大码女人| 亚洲午夜一二三区视频| 久久国产生活片100| 欧美色网站导航| 中文字幕二三区不卡| 麻豆91免费看| 欧美日韩三级在线| 亚洲欧洲美洲综合色网| 麻豆成人91精品二区三区| 日本韩国视频一区二区| 国产色产综合色产在线视频| 亚洲一区在线播放| av一二三不卡影片| 国产精品水嫩水嫩| 久久网站最新地址| 一区二区三区日韩欧美精品| 高清成人在线观看| 国产日产欧产精品推荐色| 免费成人在线网站| 欧美日韩一区高清| 日日夜夜免费精品| 91精品国产一区二区三区| 尤物av一区二区| 欧美日韩不卡视频| 亚洲一区二区三区国产| 欧美三日本三级三级在线播放| 夜夜爽夜夜爽精品视频| 91国产福利在线| 日韩精品成人一区二区三区| 欧美一区中文字幕| 国产一区二区三区美女| 久久精品免视看| av欧美精品.com| 亚洲一区影音先锋| 欧美变态凌虐bdsm| 91丨九色丨国产丨porny| 亚洲宅男天堂在线观看无病毒| 91精品在线一区二区| 黑人巨大精品欧美黑白配亚洲| 18涩涩午夜精品.www| 欧美午夜视频网站| 经典一区二区三区| 自拍偷拍国产亚洲| 欧美α欧美αv大片| 北岛玲一区二区三区四区| 亚洲一二三区在线观看| 国产三级精品视频| 色天天综合色天天久久| 国产一区二区三区精品欧美日韩一区二区三区| 久久久久88色偷偷免费| 欧美三级中文字幕在线观看| 国产福利电影一区二区三区| 亚洲午夜久久久久久久久电影网| 337p粉嫩大胆色噜噜噜噜亚洲| 在线观看日韩av先锋影音电影院| 久久99精品久久久| 日韩中文字幕区一区有砖一区 | 成人久久18免费网站麻豆| 欧美电影影音先锋| 在线一区二区三区| 成人免费高清视频| 粉嫩aⅴ一区二区三区四区五区| 男女激情视频一区| 蜜桃在线一区二区三区| 性欧美疯狂xxxxbbbb| 亚洲综合色丁香婷婷六月图片| 国产精品视频一二三区| 国产调教视频一区| 中文文精品字幕一区二区| 欧美一卡二卡三卡| 26uuuu精品一区二区| 2020国产精品自拍| 国产嫩草影院久久久久| 国产精品亲子乱子伦xxxx裸| 国产情人综合久久777777| 日本一区二区三区在线不卡| 国产日韩欧美a| 亚洲欧洲精品成人久久奇米网| 国产精品久久福利| 亚洲第一成年网| 蜜臀av性久久久久蜜臀aⅴ| 国产老女人精品毛片久久| 91久久精品网| 久久综合99re88久久爱| 亚洲人亚洲人成电影网站色| 亚洲风情在线资源站| 在线亚洲一区观看| 欧日韩精品视频| 日韩一区二区在线观看| 中文字幕乱码一区二区免费| 亚洲一线二线三线视频| 久久电影网站中文字幕| 色呦呦日韩精品| 精品福利一二区| 一区二区三区在线观看视频 | www.日韩大片| 91精品国产日韩91久久久久久| 国产精品视频在线看| 美女被吸乳得到大胸91| 欧美主播一区二区三区| 欧美一级欧美三级在线观看| 精品美女一区二区| 日韩经典中文字幕一区| 99国产精品久| ...xxx性欧美| 99久久99久久久精品齐齐 | 欧美aaaaa成人免费观看视频| av中文字幕在线不卡| 国产女人18毛片水真多成人如厕| 免费视频一区二区| 欧美v日韩v国产v| 精品一区二区三区久久| 久久综合av免费| 国产成人亚洲综合a∨婷婷 | 丰满白嫩尤物一区二区| 欧美性大战久久| 亚洲国产综合人成综合网站| 色八戒一区二区三区| 亚洲柠檬福利资源导航| 欧美综合一区二区| 免费欧美高清视频| 国产欧美视频一区二区| av亚洲精华国产精华| 亚洲国产精品一区二区www在线| 欧美三级三级三级爽爽爽| 日本伊人精品一区二区三区观看方式| 欧美性受xxxx| 国产一区二区在线观看视频| 国产精品久久久99| 日韩视频免费观看高清完整版在线观看| 美腿丝袜一区二区三区| 一本大道久久a久久精二百| 欧美老女人在线| 国产mv日韩mv欧美| 亚洲成人精品一区| 久久精品人人做人人爽97| 91色综合久久久久婷婷| 久草热8精品视频在线观看| 国产欧美日韩激情| 精品日韩在线观看| 欧美日韩久久久一区| 国产成人高清视频| 精品一区二区三区不卡| 亚洲一级二级在线| 亚洲男人的天堂在线aⅴ视频| 久久亚洲精品小早川怜子| 欧美日免费三级在线| 成人av手机在线观看| 国产成人av电影在线播放| 蜜臀av亚洲一区中文字幕| 亚洲成人一二三| 日韩av一级片| 日韩三级免费观看| 欧美日韩国产一级片| 91视频在线看| 在线观看成人小视频| 色婷婷精品大在线视频| 一本到不卡精品视频在线观看| 成人黄色av网站在线| 97久久精品人人爽人人爽蜜臀| 激情亚洲综合在线| 国产一区999| 韩国欧美国产一区| 成人免费av资源| 99精品视频在线播放观看| 99精品1区2区| 欧美年轻男男videosbes| 日韩一级黄色大片| 久久久久久久久久久久电影| 精品成人一区二区三区| 国产精品国产三级国产aⅴ原创| 欧美国产欧美亚州国产日韩mv天天看完整 | 91在线你懂得| 欧美日韩国产一区| 久久久久久久久久看片| 亚洲欧洲制服丝袜| 久色婷婷小香蕉久久| 成人黄色小视频在线观看| 在线一区二区视频| 久久人人97超碰com| 亚洲线精品一区二区三区 | 久久精子c满五个校花| 亚洲一区二区在线视频| 国产精品亚洲一区二区三区妖精| 91在线码无精品| 国产亚洲午夜高清国产拍精品| 一区二区三区免费|