欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

第二人生的源碼分析(六十二)類Easy實現(xiàn)多協(xié)議文

系統(tǒng) 1860 0
從上一節(jié)里可以看到,在類 LLCurl聲明里主要聲明嵌套類Easy,最后通過嵌套類Easy來實現(xiàn)libcurl功能,下面就來仔細地分析它。它的類聲明如下:
#001?class LLCurl::Easy
#002?{
#003? ?? LOG_CLASS(Easy);
#004?
#005?private:
#006? ?? Easy();
#007? ??
#008?public:
?
用工廠模式來創(chuàng)建類實例。
#009? ?? static Easy* getEasy();
#010? ?? ~Easy();
#011?
?
返回當前 libcurl庫的句柄。
#012? ?? CURL* getCurlHandle() const { return mCurlEasyHandle; }
#013?
?
設(shè)置錯誤緩沖區(qū)。
#014? ?? void setErrorBuffer();
?
設(shè)置授權(quán)認證。
#015? ?? void setCA();
#016? ??
?
調(diào)用庫的函數(shù) curl_easy_setopt。
#017? ?? void setopt(CURLoption option, S32 value);
#018? ?? // These assume the setter does not free value!
#019? ?? void setopt(CURLoption option, void* value);
#020? ?? void setopt(CURLoption option, char* value);
#021? ?? // Copies the string so that it is gauranteed to stick around
#022? ?? void setoptString(CURLoption option, const std::string& value);
#023? ??
?
調(diào)用庫函數(shù) curl_slist_append來添加到列表頭里面。
#024? ?? void slist_append(const char* str);
?
設(shè)置 HTTP協(xié)議頭數(shù)據(jù)。
#025? ?? void setHeaders();
#026? ??
?
報告錯誤信息。
#027? ?? U32 report(CURLcode);
?
獲取傳送信息。
#028? ?? void getTransferInfo(LLCurl::TransferInfo* info);
#029?
?
在使用庫下載數(shù)據(jù)前的設(shè)置。
#030? ?? void prepRequest(const std::string& url, ResponderPtr, bool post = false);
#031? ??
#032? ?? const char* getErrorBuffer();
#033?
?
獲取輸入流對象。
#034? ?? std::stringstream& getInput() { return mInput; }
?
獲取輸出協(xié)議頭流對象。
#035? ?? std::stringstream& getHeaderOutput() { return mHeaderOutput; }
?
獲取輸出流對象。
#036? ?? LLIOPipe::buffer_ptr_t& getOutput() { return mOutput; }
#037? ?? const LLChannelDescriptors& getChannels() { return mChannels; }
#038? ??
?
清空所有流對象和一些狀態(tài)。
#039? ?? void resetState();
#040?
#041?private: ??
#042? ?? CURL*?????????????? mCurlEasyHandle;
#043? ?? struct curl_slist*?mHeaders;
#044? ??
#045? ?? std::stringstream?? mRequest;
#046? ?? LLChannelDescriptors mChannels;
#047? ?? LLIOPipe::buffer_ptr_t mOutput;
#048? ?? std::stringstream?? mInput;
#049? ?? std::stringstream?? mHeaderOutput;
#050? ?? char??????????????? mErrorBuffer[CURL_ERROR_SIZE];
#051?
#052? ?? // Note: char*'s not strings since we pass pointers to curl
#053? ?? std::vector<char*>?mStrings;
#054? ??
#055? ?? ResponderPtr??????? mResponder;
#056?};
?
上面的類Easy封裝了函數(shù)curl_easy_init來初始化一個協(xié)議實例,函數(shù)curl_easy_cleanup來刪除相應的實例,函數(shù)curl_easy_reset來復位相關(guān)狀態(tài),通過函數(shù)curl_easy_getinfo來獲取信息。最后通過函數(shù)curl_easy_setopt來設(shè)置不同的參數(shù),這樣才實現(xiàn)libcurl庫的功能調(diào)用。

第二人生的源碼分析(六十二)類Easy實現(xiàn)多協(xié)議文件傳送


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品中文在线 | 亚洲精品久久久久久久久久吃药 | 福利在线播放 | 国产日韩一区二区三区 | 日美女网站 | 国产一三区A片在线播放 | 羞羞的视频在线免费观看 | 日本无码少妇波多野结衣 | 日韩精品一区二区在线观看 | 国产精品女A片爽爽波多洁衣 | 91丝瓜视频 | 日韩一区二区三区在线播放 | 毛片基地免费视频a | 国产精品久久久久久亚洲调教 | 久久国产精品久久久久久久久久 | 男女啪啦猛视频免费 | 久久精品国产99国产精品澳门 | 精品久久久久久久久久久久久久久 | 一色屋任你操 | 亚洲激情一区二区 | 久草手机视频在线观看 | 波多野结衣一区二区 | 伊人网站 | 99热官网 | 高清午夜线观看免费 | 久久伊人在 | 欧美日韩一区二区三区在线观看 | 丰满年轻岳中文字幕一区二区 | 国产综合婷婷 | 久久不色| 日韩精品在线视频 | 日韩精品亚洲专区在线电影不卡 | 国产一起色一起爱 | 久久久日韩精品一区二区 | 黄色视屏免费观看 | 久草在线电影网 | 九热 | 欧美精品免费看 | 激情五月综合婷婷 | 国产精品久久久久久无码人妻 | 久草在线综合 |