jrtplib3.11.1之 源碼分析(一):輔助類

概述

  1. 編譯和安裝jrtlib之前需要編譯和安裝jthread庫
  2. jrtplib需要用到j(luò)thread中的文件 jmutex和jthread。

jthread庫

jthread主要是封裝了跨平臺的thread類和mutex類,包括:

  • jmutex: 互斥類 。
  • JMutexAutoLock:構(gòu)造函數(shù)實現(xiàn)加鎖 虛構(gòu)函數(shù)實現(xiàn)解鎖 參數(shù)為 jmutex對象。
  • jthread:線程類 抽象類 繼承者需實現(xiàn)對 virtual void *Thread() = 0; 的實現(xiàn) 用以實現(xiàn)自己想要的功能。

jrtplib類:

  • rtpdebug:重載了new
struct MemoryInfo  //內(nèi)存申請信息
{
    void *ptr;            //內(nèi)存指針
    size_t size;       //內(nèi)存大小
    int lineno;        //申請時行號
    char *filename;    //文件名稱

    MemoryInfo *next;
};

void *operator new(size_t s,char filename[],int line)   // 用來保存申請內(nèi)存的信息

void dodelete(void *p)                                                       //刪除內(nèi)存
  • rtprandom: 生成隨機數(shù)

  • rtperrors :錯誤類型定義

  • rtpdefines :常量定義

  • rtpconfig : 根據(jù)操作系統(tǒng)類型判斷包含那個頭文件 rtpconfig_win rtpconfig_unix.h 定義的常量值

  • rtptypes :定義int8_t , int16_t , int32_t, int64_t 類型

  • rtpmemorymanager:內(nèi)存管理 申請 釋放

  • rtpmemoryobject:設(shè)置和得到 RTPMemoryManager *memmgr 對象

  • rtpaddress :網(wǎng)絡(luò)地址基類 抽象類

  • rtpipv4address : 繼承自 rtpaddress

  • rtpipv6address: 繼承自 rtpaddress

  • rtpkeyhashtable:哈希表 模板類

    class HashElement
    {
    public:
        HashElement(const Element &e,int index):element(e) { hashprev = 0; hashnext = 0; listnext = 0; listprev = 0; hashindex = index; }
        int GetHashIndex()                      { return hashindex; }
        Element &GetElement()                       { return element; }
#ifdef RTPDEBUG
        void Dump()                         { std::cout << "\tHash index " << hashindex << " | Element " << element << std::endl; }
#endif // RTPDEBUG
    private:
        int hashindex;
        Element element;
    public:
        HashElement *hashprev,*hashnext;
        HashElement *listprev,*listnext;
    };
    //數(shù)組指針 二維數(shù)組   根據(jù)key的索引值 包含HashElement的鏈表 指針
    HashElement *table[hashsize];
    //數(shù)據(jù)的鏈表開始和結(jié)束
    HashElement *firsthashelem,*lasthashelem;
    //當前項 查找 刪除時使用
    HashElement *curhashelem;
  • GetIndex::GetIndex(class key &k) : 得到索引值 k%8371

  • rtptimeutilities:ntp時間類 秒 + 微妙 (1/1000000)

  • rtpcollisionlist: 接收地址檢測 地址是否存在 超時檢測

  • rtplibraryversion :庫版本號

參考

jrtplib 源碼分析 (一) 輔助類

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,204評論 3 119
  • 【情景再現(xiàn)—愛發(fā)脾氣、好斗】有一位媽媽說:“我女兒似乎總是很憤怒,并且在生氣的時候會變得攻擊性很強。她會打妹妹、跟...
    sunny_珊閱讀 339評論 0 1
  • 看日落 在三月的尾巴里 余光繾綣在夢里 笑便成了癡 可否 賜我一株爛熟的玫瑰 讓我把她葬在沙揚娜拉的夜里 平靜地...
    Jasmine與麋鹿閱讀 187評論 0 0
  • 破曉催坊起,夫忙家婦忡。 孤身負鬧市,獨做快活翁。
    無憂鵬閱讀 180評論 0 0
  • 網(wǎng)絡(luò)三期 焦作翟沖【讀書】分享第455天 2018.03.30 那么現(xiàn)在,請你回想一下:你今天都吃了些什么? ...
    春暖花開zc閱讀 256評論 0 0

友情鏈接更多精彩內(nèi)容