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

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

?? gsm_phonebook.h

?? Gsm手機(短信息,電話簿)開發庫C++源代碼
?? H
字號:
// *************************************************************************
// * GSM TA/ME library
// *
// * File:    gsm_phonebook.h
// *
// * Purpose: Phonebook management functions
// *
// * Author:  Peter Hofmann (software@pxh.de)
// *
// * Created: 4.5.1999
// *************************************************************************

#ifndef GSM_PHONEBOOK_H
#define GSM_PHONEBOOK_H

#include <gsmlib/gsm_sorted_phonebook_base.h>
#include <gsmlib/gsm_at.h>
#include <gsmlib/gsm_util.h>
#include <string>
#include <iterator>
#include <vector>

using namespace std;

namespace gsmlib
{
  // forward declarations
  class Phonebook;

  // a single entry in the phonebook that corresponds to an ME entry

  class PhonebookEntry : public PhonebookEntryBase
  {
  private:
    // this constructor is only used by Phonebook
    PhonebookEntry() {}
    bool _cached;               // true, if this entry corresponds to info
                                // in the ME
    Phonebook *_myPhonebook;

  public:
    PhonebookEntry(string telephone, string text) :
      PhonebookEntryBase(telephone, text),
      _cached(true), _myPhonebook(NULL) {}
    PhonebookEntry(const PhonebookEntryBase &e) throw(GsmException);

    // accessor functions, inherited from PhonebookEntryBase
    // set() does not use the index argument
    void set(string telephone, string text, int index = -1,
             bool useIndex = false)
      throw(GsmException);
    string text() const throw(GsmException);
    string telephone() const throw(GsmException);

    // return true if entry is cached (and caching is enabled)
    bool cached() const;

    PhonebookEntry(const PhonebookEntry &e) throw(GsmException);
    PhonebookEntry &operator=(const PhonebookEntry &e) throw(GsmException);

    virtual ~PhonebookEntry() {}

    friend class Phonebook;
  };

  // this class corresponds to a phonebook in the ME
  // all functions directly update storage in the ME
  // if the ME is exchanged, the storage may become corrupted because
  // of internal buffering in the Phonebook class

  class Phonebook : public RefBase, public NoCopy
  {
  public:
    // iterator defs
    typedef PhonebookEntry *iterator;
    typedef const PhonebookEntry *const_iterator;
    typedef PhonebookEntry &reference;
    typedef const PhonebookEntry &const_reference;

  private:
    PhonebookEntry *_phonebook; // array of size _maxSize of entries
    int _maxSize;               // maximum size of pb (-1 == not known yet)
    int _size;                  // current size of pb (-1 == not known yet)
    string _phonebookName;      // name of the phonebook, 2-byte like "ME"
    unsigned int _maxNumberLength; // maximum length of telephone number
    unsigned int _maxTextLength; // maximum length of descriptive text
    Ref<GsmAt> _at;             // my GsmAt class
    vector<int> _positionMap;   // maps in-memory index to ME index
    MeTa &_myMeTa;              // the MeTa object that created this Phonebook
    bool _useCache;             // true if entries should be cached

    // helper function, parse phonebook response returned by ME/TA
    // returns index of entry
    int parsePhonebookEntry(string response, string &telephone, string &text);

    // internal access functions
    // read/write entry from/to ME
    void readEntry(int index, string &telephone, string &text)
      throw(GsmException);
    void writeEntry(int index, string telephone, string text)
      throw(GsmException);

    // adjust size only if it was set once
    void adjustSize(int sizeAdjust)
      {
        if (_size != -1) _size += sizeAdjust;
      }

    // insert into first empty position and return position where inserted
    iterator insertFirstEmpty(const string telephone, const string text)
      throw(GsmException);

    // insert into specified index position
    iterator insert(const string telephone, const string text,
                    const int index);

    // used my class MeTa
    // load phonebook name phonebookName, use AT handler at
    // preload entire phonebook if preload == true
    Phonebook(string phonebookName, Ref<GsmAt> at,
              MeTa &myMeTa, bool preload = false) throw(GsmException);

  public:
    // set cache mode on or off
    void setCaching(bool useCache) {_useCache = useCache;}

    // return name of this phonebook (2-character string)
    string name() const {return _phonebookName;}

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

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

    // 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();
    const_iterator begin() const;
    iterator end();
    const_iterator end() const;
    reference front();
    const_reference front() const;
    reference back();
    const_reference back() const;
    reference operator[](int n);
    const_reference operator[](int n) const;

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

    // insert iterators insert into the first empty cell regardless of position
    // - existing iterators are not invalidated after an insert operation
    // - return position where it was actually inserted (may be != position)
    // - insert only writes to available positions
    // - throw an exception if size() == max_size() (ie. not empty slots)
    iterator insert(iterator position, const PhonebookEntry& x)
      throw(GsmException);

    // insert n times, same procedure as above
    void insert(iterator pos, int n, const PhonebookEntry& x)
      throw(GsmException);
    void insert(iterator pos, long n, const PhonebookEntry& x)
      throw(GsmException);

    // erase operators set used slots to "empty"
    iterator erase(iterator position) throw(GsmException);
    iterator erase(iterator first, iterator last) throw(GsmException);
    void clear() throw(GsmException);

    // destructor
    ~Phonebook();

    friend class PhonebookEntry;
    friend class MeTa;
  };

  // useful phonebook types
  typedef Ref<Phonebook> PhonebookRef;
  typedef vector<PhonebookRef> PhonebookVector;
};

#endif // GSM_PHONEBOOK_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色综合日日| 色婷婷狠狠综合| 538在线一区二区精品国产| 中文字幕免费观看一区| 经典三级视频一区| 日韩精品一区二区三区三区免费 | 91精彩视频在线| 国产无人区一区二区三区| 蜜臀av国产精品久久久久| 成人18视频在线播放| 日韩精品一区二区三区在线观看| 免费欧美高清视频| 日韩欧美激情四射| 免费高清在线视频一区·| 一道本成人在线| 一区二区不卡在线播放| 欧美日韩二区三区| 免费在线看成人av| 久久精品一区二区三区不卡 | 亚洲伊人伊色伊影伊综合网 | 亚洲精品视频在线观看免费| 成人动漫一区二区| 午夜影视日本亚洲欧洲精品| 91精品国产91久久综合桃花| 国产不卡在线一区| 久久久久久久久久久黄色| 国产精品综合视频| 亚洲综合丝袜美腿| 国产欧美日韩在线视频| 欧洲精品中文字幕| 国产精品羞羞答答xxdd| 亚洲一区二区欧美| 国产亚洲精品资源在线26u| 91久久精品一区二区| 国产精品99久久久久久久女警| 欧美极品少妇xxxxⅹ高跟鞋| 在线视频一区二区三区| 粉嫩欧美一区二区三区高清影视| 亚洲国产乱码最新视频| 国产精品成人免费精品自在线观看| 欧美日韩一级二级| 日本丶国产丶欧美色综合| 国产一区二区在线观看免费| 亚洲成在人线在线播放| 国产精品国产精品国产专区不片 | 欧美日韩高清一区二区三区| 亚洲男人天堂一区| 欧美一级艳片视频免费观看| 成人精品一区二区三区四区| 一色屋精品亚洲香蕉网站| 波多野结衣视频一区| 亚洲综合激情另类小说区| 日韩欧美一级特黄在线播放| 成人黄色软件下载| 精品一区二区av| 亚洲精品亚洲人成人网| 欧美成人女星排行榜| 91香蕉视频mp4| 亚洲精品成人少妇| 亚洲1区2区3区4区| 秋霞影院一区二区| 亚洲欧美日韩小说| 国产成人精品免费| 国产福利精品导航| 94-欧美-setu| 欧美日韩aaaaaa| 91精品国产免费| 久久久久99精品一区| 国产欧美日韩一区二区三区在线观看| 亚洲色图欧洲色图| 日产精品久久久久久久性色| 国产精品中文字幕日韩精品| 欧洲激情一区二区| 国产午夜精品一区二区三区嫩草| 亚洲国产另类精品专区| 久久99精品国产麻豆不卡| 色婷婷av一区二区三区软件| 精品国产乱码久久| 亚洲综合在线电影| 成人精品视频.| 欧美色爱综合网| 久久精品亚洲精品国产欧美| 欧美国产日韩一二三区| 中文字幕在线观看一区二区| 日本aⅴ亚洲精品中文乱码| 99在线视频精品| 精品三级av在线| 欧美国产禁国产网站cc| 91色综合久久久久婷婷| 51午夜精品国产| 久久免费午夜影院| 自拍av一区二区三区| 香蕉久久一区二区不卡无毒影院 | 99精品视频在线免费观看| 91国内精品野花午夜精品| 555夜色666亚洲国产免| 精品少妇一区二区| 亚洲色图欧洲色图| 91在线porny国产在线看| 久久日韩精品一区二区五区| 日韩在线观看一区二区| 欧美美女视频在线观看| 午夜日韩在线电影| 色综合久久综合| 久久久久久久久99精品| 偷窥少妇高潮呻吟av久久免费| 大胆欧美人体老妇| 欧美在线不卡视频| 欧美色区777第一页| 日韩美女视频一区二区| 国产成人午夜片在线观看高清观看| 欧美性猛片xxxx免费看久爱| 亚洲精品一区二区三区99| 五月综合激情婷婷六月色窝| 91免费视频观看| 中文字幕欧美三区| 成人在线综合网| 国产精品美女久久久久av爽李琼| 国产精品亚洲第一| 亚洲成人综合网站| 在线不卡一区二区| 国产乱人伦精品一区二区在线观看 | 日韩一区二区三区精品视频| 国产欧美一区二区精品性色| 成人免费黄色在线| 亚洲久草在线视频| 精品播放一区二区| 日本久久一区二区| 九色|91porny| 精品福利在线导航| 成人午夜视频福利| 夜夜嗨av一区二区三区四季av| 欧美三级中文字幕在线观看| 久久精品99久久久| 欧美电影免费观看完整版| 成人性生交大片免费看中文网站| 国产精品免费人成网站| 欧美羞羞免费网站| 蜜桃视频一区二区| 亚洲视频一区二区在线| 欧美日韩不卡一区二区| 国产成人自拍高清视频在线免费播放| 午夜激情久久久| 亚洲精选视频在线| 中文字幕亚洲欧美在线不卡| 久久久久久久久久看片| 欧美成人艳星乳罩| 欧美一区二区在线免费播放 | 午夜电影久久久| 亚洲国产激情av| 国产精品国产成人国产三级| 欧美激情一区二区三区全黄| 91亚洲精华国产精华精华液| 国产福利一区在线| 久久69国产一区二区蜜臀| 免费高清在线视频一区·| 日韩精品亚洲专区| 婷婷国产v国产偷v亚洲高清| 1024成人网| 亚洲男帅同性gay1069| 亚洲精品国产精品乱码不99| 亚洲欧洲av在线| 亚洲不卡在线观看| 精品无码三级在线观看视频| 免费观看一级欧美片| 蜜桃视频一区二区三区在线观看| 久久99精品久久只有精品| 成人小视频在线| 欧美在线影院一区二区| 日韩一区二区麻豆国产| 精品免费一区二区三区| 《视频一区视频二区| 亚洲国产精品人人做人人爽| 免费黄网站欧美| 岛国一区二区在线观看| 欧美日韩电影在线| 中文字幕精品三区| 奇米影视一区二区三区| 国产成人av一区二区三区在线观看| 91免费国产在线| jizz一区二区| 国产精品福利一区| 国产精品一区二区视频| 91精品国产aⅴ一区二区| 亚洲欧美在线高清| 成人国产在线观看| 日韩理论在线观看| 91啪亚洲精品| 国产精品成人一区二区三区夜夜夜| 亚洲精品视频观看| 在线播放一区二区三区| 精品久久久久久久人人人人传媒| 久久久久久影视| 日本aⅴ亚洲精品中文乱码| 91免费看视频| 亚洲精品一二三区| 99久久久精品| 1024成人网色www| aaa欧美色吧激情视频| 国产精品免费av|