日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Protocol Buffer技术详解(C++实例)

發布時間:2023/12/18 c/c++ 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Protocol Buffer技术详解(C++实例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?原文:http://www.cnblogs.com/stephen-liu74/archive/2013/01/04/2842533.html

?? 這篇Blog仍然是以Google的官方文檔為主線,代碼實例則完全取自于我們正在開發的一個Demo項目,通過前一段時間的嘗試,感覺這種結合的方式比較有利于培訓和內部的技術交流。還是那句話,沒有最好的,只有最適合的。我想寫Blog也是這一道理吧,不同的技術主題可能需要采用不同的風格。好了,還是讓我們盡早切入主題吧。
?? ?
?? ?? 一、生成目標語言代碼。
?? ?? 下面的命令幫助我們將MyMessage.proto文件中定義的一組Protocol Buffer格式的消息編譯成目標語言(C++)的代碼。至于消息的內容,我們會在后面以分段的形式逐一列出,同時也會在附件中給出所有源代碼。
?? ?? protoc -I=./message --cpp_out=./src ./MyMessage.proto
?? ?? 從上面的命令行參數中可以看出,待編譯的文件為MyMessage.proto,他存放在當前目錄的message子目錄下。--cpp_out參數則指示編譯工具我們需要生成目標語言是C++,輸出目錄是當前目錄的src子目錄。在本例中,生成的目標代碼文件名是MyMessage.pb.h和MyMessage.pb.cc。
?? ?
?? ?? 二、簡單message生成的C++代碼。
?? ?? 這里先定義一個最簡單的message,其中只是包含原始類型的字段。
?? ?? option optimize_for = LITE_RUNTIME;
?? ?? message LogonReqMessage {
?? ? ?? ? required int64 acctID = 1;
?? ?? ? ? required string passwd = 2;
? ? ? }
?? ?? 由于我們在MyMessage文件中定義選項optimize_for的值為LITE_RUNTIME,因此由該.proto文件生成的所有C++類的父類均為::google::protobuf::MessageLite,而非::google::protobuf::Message。在上一篇博客中已經給出了一些簡要的說明,MessageLite類是Message的父類,在MessageLite中將缺少Protocol Buffer對反射的支持,而此類功能均在Message類中提供了具體的實現。對于我們的項目而言,整個系統相對比較封閉,不會和更多的外部程序進行交互,與此同時,我們的客戶端部分又是運行在Android平臺,有鑒于此,我們考慮使用LITE版本的Protocol Buffer。這樣不僅可以得到更高編碼效率,而且生成代碼編譯后所占用的資源也會更少,至于反射所能帶來的靈活性和極易擴展性,對于該項目而言完全可以忽略。下面我們來看一下由message LogonReqMessage生成的C++類的部分聲明,以及常用方法的說明性注釋。

1 class LogonReqMessage : public ::google::protobuf::MessageLite { 2 public: 3 LogonReqMessage(); 4 virtual ~LogonReqMessage(); 5 6 // implements Message ---------------------------------------------- 7 //下面的成員函數均實現自MessageLite中的虛函數。 8 //創建一個新的LogonReqMessage對象,等同于clone。 9 LogonReqMessage* New() const; 10 //用另外一個LogonReqMessage對象初始化當前對象,等同于賦值操作符重載(operator=) 11 void CopyFrom(const LogonReqMessage& from); 12 //清空當前對象中的所有數據,既將所有成員變量置為未初始化狀態。 13 void Clear(); 14 //判斷當前狀態是否已經初始化。 15 bool IsInitialized() const; 16 //在給當前對象的所有變量賦值之后,獲取該對象序列化后所需要的字節數。 17 int ByteSize() const; 18 //獲取當前對象的類型名稱。 19 ::std::string GetTypeName() const; 20 21 // required int64 acctID = 1; 22 //下面的成員函數都是因message中定義的acctID字段而生成。 23 //這個靜態成員表示AcctID的標簽值。命名規則是k + FieldName(駝峰規則) + FieldNumber。 24 static const int kAcctIDFieldNumber = 1; 25 //如果acctID字段已經被設置返回true,否則false。 26 inline bool has_acctid() const; 27 //執行該函數后has_acctid函數將返回false,而下面的acctid函數則返回acctID的缺省值。 28 inline void clear_acctid(); 29 //返回acctid字段的當前值,如果沒有設置則返回int64類型的缺省值。 30 inline ::google::protobuf::int64 acctid() const; 31 //為acctid字段設置新值,調用該函數后has_acctid函數將返回true。 32 inline void set_acctid(::google::protobuf::int64 value); 33 34 // required string passwd = 2; 35 //下面的成員函數都是因message中定義的passwd字段而生成。這里生成的函數和上面acctid 36 //生成的那組函數基本相似。因此這里只是列出差異部分。 37 static const int kPasswdFieldNumber = 2; 38 inline bool has_passwd() const; 39 inline void clear_passwd(); 40 inline const ::std::string& passwd() const; 41 inline void set_passwd(const ::std::string& value); 42 //對于字符串類型字段設置const char*類型的變量值。 43 inline void set_passwd(const char* value); 44 inline void set_passwd(const char* value, size_t size); 45 //可以通過返回值直接給passwd對象賦值。在調用該函數之后has_passwd將返回true。 46 inline ::std::string* mutable_passwd(); 47 //釋放當前對象對passwd字段的所有權,同時返回passwd字段對象指針。調用此函數之后,passwd字段對象 48 //的所有權將移交給調用者。此后再調用has_passwd函數時將返回false。 49 inline ::std::string* release_passwd(); 50 private: 51 ... ... 52 };

????? 下面是讀寫LogonReqMessage對象的C++測試代碼和說明性注釋。

1 void testSimpleMessage() 2 { 3 printf("==================This is simple message.================\n"); 4 //序列化LogonReqMessage對象到指定的內存區域。 5 LogonReqMessage logonReq; 6 logonReq.set_acctid(20); 7 logonReq.set_passwd("Hello World"); 8 //提前獲取對象序列化所占用的空間并進行一次性分配,從而避免多次分配 9 //而造成的性能開銷。通過該種方式,還可以將序列化后的數據進行加密。 10 //之后再進行持久化,或是發送到遠端。 11 int length = logonReq.ByteSize(); 12 char* buf = new char[length]; 13 logonReq.SerializeToArray(buf,length); 14 //從內存中讀取并反序列化LogonReqMessage對象,同時將結果打印出來。 15 LogonReqMessage logonReq2; 16 logonReq2.ParseFromArray(buf,length); 17 printf("acctID = %I64d, password = %s\n",logonReq2.acctid(),logonReq2.passwd().c_str()); 18 delete [] buf; 19 }

????? 三、嵌套message生成的C++代碼。
?? ?? enum UserStatus {
?? ? ? ?? OFFLINE = 0;
?? ? ? ?? ONLINE = 1;
?? ?? }
? ? ? enum LoginResult {
?? ?? ? ? LOGON_RESULT_SUCCESS = 0;
?? ?? ??? LOGON_RESULT_NOTEXIST = 1;
?? ??? ?? LOGON_RESULT_ERROR_PASSWD = 2;
?? ?? ? ? LOGON_RESULT_ALREADY_LOGON = 3;
?? ?? ? ? LOGON_RESULT_SERVER_ERROR = 4;
?? ?? }
? ? ? message UserInfo {
?? ? ?? ? required int64 acctID = 1;
?? ?? ? ? required string name = 2;
?? ? ?? ? required UserStatus status = 3;
?? ?? }
?? ?? message LogonRespMessage {
?? ?? ??? required LoginResult logonResult = 1;
?? ?? ??? required UserInfo userInfo = 2; //這里嵌套了UserInfo消息。
? ? ? }
?? ?? 對于上述消息生成的C++代碼,UserInfo因為只是包含了原始類型字段,因此和上例中的LogonReqMessage沒有太多的差別,這里也就不在重復列出了。由于LogonRespMessage消息中嵌套了UserInfo類型的字段,在這里我們將僅僅給出該消息生成的C++代碼和關鍵性注釋。

1 class LogonRespMessage : public ::google::protobuf::MessageLite { 2 public: 3 LogonRespMessage(); 4 virtual ~LogonRespMessage(); 5 6 // implements Message ---------------------------------------------- 7 ... ... //這部分函數和之前的例子一樣。 8 9 // required .LoginResult logonResult = 1; 10 //下面的成員函數都是因message中定義的logonResult字段而生成。 11 //這一點和前面的例子基本相同,只是類型換做了枚舉類型LoginResult。 12 static const int kLogonResultFieldNumber = 1; 13 inline bool has_logonresult() const; 14 inline void clear_logonresult(); 15 inline LoginResult logonresult() const; 16 inline void set_logonresult(LoginResult value); 17 18 // required .UserInfo userInfo = 2; 19 //下面的成員函數都是因message中定義的UserInfo字段而生成。 20 //這里只是列出和非消息類型字段差異的部分。 21 static const int kUserInfoFieldNumber = 2; 22 inline bool has_userinfo() const; 23 inline void clear_userinfo(); 24 inline const ::UserInfo& userinfo() const; 25 //可以看到該類并沒有生成用于設置和修改userInfo字段set_userinfo函數,而是將該工作 26 //交給了下面的mutable_userinfo函數。因此每當調用函數之后,Protocol Buffer都會認為 27 //該字段的值已經被設置了,同時has_userinfo函數亦將返回true。在實際編碼中,我們可以 28 //通過該函數返回userInfo字段的內部指針,并基于該指針完成userInfo成員變量的初始化工作。 29 inline ::UserInfo* mutable_userinfo(); 30 inline ::UserInfo* release_userinfo(); 31 private: 32 ... ... 33 };

? ? ? 下面是讀寫LogonRespMessage對象的C++測試代碼和說明性注釋。

1 void testNestedMessage() 2 { 3 printf("==================This is nested message.================\n"); 4 LogonRespMessage logonResp; 5 logonResp.set_logonresult(LOGON_RESULT_SUCCESS); 6 //如上所述,通過mutable_userinfo函數返回userInfo字段的指針,之后再初始化該對象指針。 7 UserInfo* userInfo = logonResp.mutable_userinfo(); 8 userInfo->set_acctid(200); 9 userInfo->set_name("Tester"); 10 userInfo->set_status(OFFLINE); 11 int length = logonResp.ByteSize(); 12 char* buf = new char[length]; 13 logonResp.SerializeToArray(buf,length); 14 15 LogonRespMessage logonResp2; 16 logonResp2.ParseFromArray(buf,length); 17 printf("LogonResult = %d, UserInfo->acctID = %I64d, UserInfo->name = %s, UserInfo->status = %d\n" 18 ,logonResp2.logonresult(),logonResp2.userinfo().acctid(),logonResp2.userinfo().name().c_str(),logonResp2.userinfo().status()); 19 delete [] buf; 20 }

?? ?? 四、repeated嵌套message生成的C++代碼。
?? ?? message BuddyInfo {
?? ? ? ?? required UserInfo userInfo = 1;
?? ? ?? ? required int32 groupID = 2;
?? ?? }
?? ?? message RetrieveBuddiesResp {
?? ? ?? ? required int32 buddiesCnt = 1;
?? ? ?? ? repeated BuddyInfo buddiesInfo = 2;
?? ?? }
? ? ? 對于上述消息生成的代碼,我們將只是針對RetrieveBuddiesResp消息所對應的C++代碼進行詳細說明,其余部分和前面小節的例子基本相同,可直接參照。而對于RetrieveBuddiesResp類中的代碼,我們也僅僅是對buddiesInfo字段生成的代碼進行更為詳細的解釋。

1 class RetrieveBuddiesResp : public ::google::protobuf::MessageLite { 2 public: 3 RetrieveBuddiesResp(); 4 virtual ~RetrieveBuddiesResp(); 5 6 ... ... //其余代碼的功能性注釋均可參照前面的例子。 7 8 // repeated .BuddyInfo buddiesInfo = 2; 9 static const int kBuddiesInfoFieldNumber = 2; 10 //返回數組中成員的數量。 11 inline int buddiesinfo_size() const; 12 //清空數組中的所有已初始化成員,調用該函數后,buddiesinfo_size函數將返回0。 13 inline void clear_buddiesinfo(); 14 //返回數組中指定下標所包含元素的引用。 15 inline const ::BuddyInfo& buddiesinfo(int index) const; 16 //返回數組中指定下標所包含元素的指針,通過該方式可直接修改元素的值信息。 17 inline ::BuddyInfo* mutable_buddiesinfo(int index); 18 //像數組中添加一個新元素。返回值即為新增的元素,可直接對其進行初始化。 19 inline ::BuddyInfo* add_buddiesinfo(); 20 //獲取buddiesInfo字段所表示的容器,該函數返回的容器僅用于遍歷并讀取,不能直接修改。 21 inline const ::google::protobuf::RepeatedPtrField< ::BuddyInfo >& 22 buddiesinfo() const; 23 //獲取buddiesInfo字段所表示的容器指針,該函數返回的容器指針可用于遍歷和直接修改。 24 inline ::google::protobuf::RepeatedPtrField< ::BuddyInfo >* 25 mutable_buddiesinfo(); 26 private: 27 ... ... 28 };

? ? ? 下面是讀寫RetrieveBuddiesResp對象的C++測試代碼和說明性注釋。

1 void testRepeatedMessage() 2 { 3 printf("==================This is repeated message.================\n"); 4 RetrieveBuddiesResp retrieveResp; 5 retrieveResp.set_buddiescnt(2); 6 BuddyInfo* buddyInfo = retrieveResp.add_buddiesinfo(); 7 buddyInfo->set_groupid(20); 8 UserInfo* userInfo = buddyInfo->mutable_userinfo(); 9 userInfo->set_acctid(200); 10 userInfo->set_name("user1"); 11 userInfo->set_status(OFFLINE); 12 13 buddyInfo = retrieveResp.add_buddiesinfo(); 14 buddyInfo->set_groupid(21); 15 userInfo = buddyInfo->mutable_userinfo(); 16 userInfo->set_acctid(201); 17 userInfo->set_name("user2"); 18 userInfo->set_status(ONLINE); 19 20 int length = retrieveResp.ByteSize(); 21 char* buf = new char[length]; 22 retrieveResp.SerializeToArray(buf,length); 23 24 RetrieveBuddiesResp retrieveResp2; 25 retrieveResp2.ParseFromArray(buf,length); 26 printf("BuddiesCount = %d\n",retrieveResp2.buddiescnt()); 27 printf("Repeated Size = %d\n",retrieveResp2.buddiesinfo_size()); 28 //這里僅提供了通過容器迭代器的方式遍歷數組元素的測試代碼。 29 //事實上,通過buddiesinfo_size和buddiesinfo函數亦可循環遍歷。 30 RepeatedPtrField<BuddyInfo>* buddiesInfo = retrieveResp2.mutable_buddiesinfo(); 31 RepeatedPtrField<BuddyInfo>::iterator it = buddiesInfo->begin(); 32 for (; it != buddiesInfo->end(); ++it) { 33 printf("BuddyInfo->groupID = %d\n", it->groupid()); 34 printf("UserInfo->acctID = %I64d, UserInfo->name = %s, UserInfo->status = %d\n" 35 , it->userinfo().acctid(), it->userinfo().name().c_str(),it->userinfo().status()); 36 } 37 delete [] buf; 38 }

????? 最后需要說明的是,Protocol Buffer仍然提供了很多其它非常有用的功能,特別是針對序列化的目的地,比如文件流和網絡流等。與此同時,也提供了完整的官方文檔和規范的命名規則,在很多情況下,可以直接通過函數的名字便可獲悉函數所完成的工作。

轉載于:https://www.cnblogs.com/wnnily/p/5979817.html

總結

以上是生活随笔為你收集整理的Protocol Buffer技术详解(C++实例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

成人久久久精品国产乱码一区二区 | 国产高清在线观看 | 瑞典xxxx性hd极品 | 欧美在线观看视频免费 | 国产精品久久久久久久久久久免费看 | 国产免费观看高清完整版 | 日本电影黄色 | 最新日韩中文字幕 | 人人爽人人看 | 中文字幕你懂的 | 免费精品视频在线观看 | 婷婷伊人综合亚洲综合网 | 在线观看视频国产一区 | 开心丁香婷婷深爱五月 | 亚洲精品观看 | 成人黄色在线电影 | 日韩最新av| 亚洲一片黄 | 麻豆精品在线 | 免费日韩一区二区三区 | 波多野结衣视频一区二区三区 | 国产精品99久久久 | 久久免费一 | 激情网第四色 | 国产免费xvideos视频入口 | 久久综合色综合88 | 日韩欧美综合精品 | 在线国产视频观看 | 精品国产区 | 五月天久久狠狠 | a在线播放 | 久久久久精 | 日韩在线播放av | 看v片| 超碰97中文 | 97成人资源站 | a极黄色片 | 日韩理论片 | 黄色一级大片在线免费看产 | 欧美精品在线观看免费 | 美女国内精品自产拍在线播放 | 二区三区在线观看 | 亚洲午夜精品在线观看 | 国产小视频91 | 在线观看国产高清视频 | 精品欧美小视频在线观看 | 99久久99久久精品国产片果冰 | 极品美女被弄高潮视频网站 | 九九热精品在线 | 丝袜精品视频 | 日韩大陆欧美高清视频区 | 国产不卡片 | 日韩电影精品 | 中文字幕不卡在线88 | 久久免费毛片视频 | 国产日产精品久久久久快鸭 | 国产伦理久久精品久久久久_ | 日韩欧美在线视频一区二区三区 | 在线国产不卡 | 婷婷在线免费 | 天天曰天天射 | 欧美精品一区二区蜜臀亚洲 | 91精品国产一区二区三区 | 国产精品免费久久久久影院仙踪林 | 国产在线播放一区 | 91在线精品视频 | 五月婷婷影院 | 久久午夜剧场 | 91视频免费看 | 国产精品第一 | 干干操操| 精品特级毛片 | 1024在线看片 | 婷婷中文字幕在线观看 | 日韩av一区二区在线影视 | 久久免费在线 | 69av免费视频| 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 亚洲国产日韩一区 | 日韩精品视频免费专区在线播放 | 狠狠伊人 | 看av免费网站 | 免费在线观看av网址 | 久久91久久久久麻豆精品 | 久久亚洲精品国产亚洲老地址 | 91免费高清 | 亚洲精品毛片一级91精品 | 免费在线播放黄色 | 91九色视频在线观看 | 亚洲第一中文字幕 | 96精品视频 | 91激情视频在线 | 欧美在线观看小视频 | 亚洲网站在线 | 免费在线观看污 | 五月花激情 | 91精品1区2区 | 亚洲最大在线视频 | 五月婷香蕉久色在线看 | 日韩欧美在线不卡 | 肉色欧美久久久久久久免费看 | 黄色毛片观看 | 二区视频在线 | 在线观看日本高清mv视频 | 天天干天天干 | 日本精品视频一区二区 | 中文字幕在线观看第三页 | 在线观看亚洲精品视频 | 国产福利在线不卡 | 中中文字幕av在线 | 久久久久久久久黄色 | 成人免费观看视频网站 | 国产色拍拍拍拍在线精品 | 国产精品美女久久久久久网站 | 成人在线免费观看网站 | 九九在线高清精品视频 | 五月开心网 | 99免费精品视频 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲小视频在线观看 | 天天躁天天躁天天躁婷 | 国产在线一区二区 | 成年人在线视频观看 | av成人在线电影 | 精品美女在线观看 | 免费网站在线 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产短视频在线播放 | 亚洲精区二区三区四区麻豆 | 欧美精品乱码久久久久 | 黄色国产在线 | 免费看一级特黄a大片 | 成人毛片a | 国产精品va最新国产精品视频 | 亚洲美女在线国产 | 91大神免费视频 | bayu135国产精品视频 | 色天天综合久久久久综合片 | 在线精品国产 | 日韩三级视频 | 婷婷六月丁 | 国产精品二区三区 | 91精品视频在线播放 | 日韩欧美在线观看一区二区 | 国产一级一级国产 | 亚洲精品福利视频 | 亚洲精品免费视频 | 午夜精品一区二区三区在线 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 精品福利视频在线 | 日韩视频欧美视频 | www.av小说 | 国内视频在线 | 99国产一区 | 国产精品久久久久久久久久久免费看 | 免费观看一区二区三区视频 | 国产在线a| 日本最新一区二区三区 | 久久精品一级片 | 天天操天天色天天 | 天天射一射| 久久特级毛片 | 粉嫩一区二区三区粉嫩91 | 99在线免费观看视频 | 中文字幕成人av | 久久亚洲私人国产精品va | 中文字幕 国产专区 | 少妇高潮冒白浆 | 日韩激情视频在线观看 | 免费涩涩网站 | 一级黄色片毛片 | 天天操天天摸天天爽 | 国产精品久久久久久久久久久久 | av黄色免费在线观看 | 成人av资源站 | 天天草天天干 | 久久国产精品色婷婷 | 欧美色图p | 国产精品久久久久亚洲影视 | 日韩一区二区在线免费观看 | 久久色在线观看 | 久久久久久久久久久免费视频 | 999一区二区三区 | 国产一级黄色电影 | 久久久久久久久久久久av | 9幺看片 | 国产91学生粉嫩喷水 | av网站地址 | 亚洲黄色片 | 国产精品99久久久久人中文网介绍 | 免费一级特黄毛大片 | 手机看片国产日韩 | 91视频 - x99av| 激情综合网天天干 | 三级黄色大片在线观看 | 国产尤物视频在线 | 国产伦理一区二区三区 | 91精品欧美 | 欧美日韩在线第一页 | 8x成人免费视频 | 久久久麻豆视频 | 欧美影院久久 | 欧美激情另类文学 | 99精品偷拍视频一区二区三区 | 中文字幕永久在线 | 国产91免费在线 | 中文字幕在线观 | 日韩高清免费无专码区 | 日韩1级片 | 黄色三级在线 | 免费看v片 | 国产96在线 | 欧美网址在线观看 | 国产精品欧美久久久久无广告 | 国产精品免费麻豆入口 | 免费观看www视频 | 99 精品 在线| 九九欧美视频 | 在线午夜电影神马影院 | 亚洲涩涩网站 | 日韩欧美国产视频 | 久久视频精品在线观看 | 综合久久综合久久 | 亚洲伦理一区 | 99成人精品| 久久黄色网| 激情综合色播五月 | 国产香蕉97碰碰久久人人 | 一级α片免费看 | 国产视频一区在线播放 | av电影在线不卡 | 亚洲精品456在线播放乱码 | 一区二区三区韩国免费中文网站 | 97天堂网 | 日韩com| 国产成人一区三区 | 亚洲精品网站在线 | 国产日韩欧美网站 | 久久久久久久久久久高潮一区二区 | 黄色日本片| 天天干天天操天天爱 | 国产伦精品一区二区三区免费 | 96久久欧美麻豆网站 | 手机av片 | 久久伊99综合婷婷久久伊 | 91日韩在线专区 | 亚洲午夜电影网 | 不卡国产在线 | 免费福利在线观看 | 丝袜制服综合网 | 中文字幕亚洲不卡 | 成人影视免费看 | 国内揄拍国产精品 | 久久国产影院 | 成年人视频免费在线播放 | 成人在线播放av | 日韩高清成人 | 国产精品精品国产婷婷这里av | 国产视频18 | 欧美日韩免费视频 | 国产精品久久久久久久久蜜臀 | av观看网站 | 日韩精品欧美专区 | 91av手机在线| 国产精品爽爽久久久久久蜜臀 | 最新日韩在线观看 | 国产视| 成人av电影免费观看 | 99re国产视频 | 国产精品久久久久久久久久久免费 | 在线看片中文字幕 | 日批视频在线播放 | 亚洲成人麻豆 | 欧美日韩一区二区三区在线免费观看 | 国产 成人 久久 | 日韩一区二区久久 | 97超碰站 | 欧美天堂视频在线 | 欧美性高跟鞋xxxxhd | 五月天久久狠狠 | 久精品视频 | 久久福利影视 | 国产专区一 | 午夜av免费在线观看 | 色激情在线 | 国产精品久久在线 | 91精品中文字幕 | 91在线国内视频 | 最新av网站在线观看 | www.夜夜爽| 一区二区精品在线 | 色综合中文字幕 | 欧美韩日视频 | 日本中文乱码卡一卡二新区 | 992tv人人网tv亚洲精品 | 五月天色站 | 国产不卡视频在线 | 日本中出在线观看 | 色网站在线看 | 超碰97成人 | 1区2区3区在线观看 三级动图 | 丝袜美女在线观看 | 精品久久网 | 日韩精品无码一区二区三区 | 91丨九色丨丝袜 | 久久国产成人午夜av影院潦草 | 婷婷伊人五月天 | 视频在线日韩 | 天天干天天想 | 日本黄色一级电影 | 国产在线91在线电影 | 88av色| 成人h动漫在线看 | 欧美日韩在线观看不卡 | 日韩一二三区不卡 | 欧美日韩精品免费观看视频 | 中文字幕一区二区三区四区久久 | 正在播放亚洲精品 | 国产精品美女免费视频 | 91精品久久久久久综合乱菊 | 日韩免费播放 | 亚洲国产中文字幕在线观看 | 狠狠色丁香婷婷综合最新地址 | 中文字幕第一页在线 | 天天色天天操天天爽 | 91精品国产欧美一区二区成人 | 日本久久精品 | 天天操天天干天天摸 | 少妇bbw揉bbb欧美 | 亚洲小视频在线观看 | 成人黄色大片网站 | 亚洲九九九在线观看 | 黄色三级免费观看 | 亚洲成人资源在线 | 日本黄色大片免费看 | 日本久久精品 | 国产精品va在线观看入 | 六月婷婷网 | 国产精品wwwwww | 激情视频亚洲 | 久久人人爽人人爽人人片av软件 | 2018好看的中文在线观看 | 尤物一区二区三区 | 久久夜色精品国产欧美乱 | 国际精品久久久 | 亚洲国产午夜精品 | 亚洲特级片 | 大胆欧美gogo免费视频一二区 | 人人爽爽人人 | 成人国产网址 | 久久99精品久久久久蜜臀 | 中文字幕亚洲欧美日韩2019 | 国产亚洲欧洲 | 免费在线观看午夜视频 | 国产一区二区视频在线 | 中文字幕丝袜一区二区 | 九九视频精品免费 | 国产成人1区 | 国产精品自在线 | 色综合天天射 | 天堂网中文在线 | 国语麻豆 | 综合激情伊人 | 成人国产精品久久久 | 黄色软件网站在线观看 | 日韩高清精品免费观看 | 三级av在线播放 | 激情综合中文娱乐网 | 日韩在线播放av | 五月婷婷激情六月 | 亚洲精品国产精品国自产观看 | 欧美国产在线看 | 97干com | 久久久久在线 | 日韩福利在线观看 | 狠狠色丁香婷婷综合久久片 | 中文字幕精 | 欧美日韩高清在线 | 精品国产欧美一区二区 | 亚洲天堂网视频 | 999久久久久久久久 69av视频在线观看 | 国产999在线观看 | 亚洲理论片 | 天天干,天天射,天天操,天天摸 | 国产在线v | www.天天操 | caobi视频| 日日爽夜夜操 | 久久综合精品国产一区二区三区 | 五月天中文字幕mv在线 | 欧美日韩国产在线精品 | 91视频传媒 | 一级黄色片毛片 | 久久久成人精品 | 国产又黄又硬又爽 | 成人av中文字幕在线观看 | 日韩av成人在线观看 | 欧美黄色成人 | 在线日韩| 久久久久久久久久久精 | 国产不卡在线观看视频 | 日韩av网址在线 | 久久99国产精品久久99 | 在线观看免费观看在线91 | 精品无人国产偷自产在线 | 91资源在线观看 | 久久精品一区二区国产 | 国产美女在线免费观看 | 啪啪动态视频 | 国产精品午夜在线 | 美女国产在线 | 一级成人免费 | 精品综合久久久 | 99色资源| 91人人干| 国产成人精品av | 四虎影视国产精品免费久久 | 国产精品正在播放 | 亚洲天天综合 | 伊人春色电影网 | 97视频免费在线观看 | 亚洲少妇激情 | 黄色av网站在线观看免费 | 在线免费观看视频 | 激情久久五月天 | 超碰97中文 | 色射爱| 亚洲黄色成人 | 97视频一区| 国内精品久久久久久久久久 | 91自拍视频在线观看 | 亚洲做受高潮欧美裸体 | 麻豆免费在线视频 | 激情丁香 | 西西www4444大胆视频 | 天天干天天怕 | 久久精品观看 | 狠狠色综合欧美激情 | 国产色网站 | 欧美二区在线播放 | 日韩电影久久久 | 日韩性xxx| 欧美久久电影 | 午夜视频在线观看欧美 | 亚洲 欧洲 国产 精品 | 激情网第四色 | av性在线| 久久免费视屏 | 国产一级片视频 | www.久艹| 国产一级在线观看视频 | av蜜桃在线 | 狠狠色狠狠色综合系列 | 久久综合偷偷噜噜噜色 | 亚洲一级在线观看 | 成人av在线影院 | 日韩av中文字幕在线免费观看 | 91精品久久久久 | 亚州av网站| 日韩免费久久 | 超碰九九 | 久久精品屋 | 国产精品自产拍在线观看 | 亚洲欧美日韩在线一区二区 | 韩国av电影在线观看 | 亚洲手机av | 欧美午夜性生活 | 天天天天天干 | 国产黄色精品 | 蜜臀久久99静品久久久久久 | 免费影视大全推荐 | 五月婷婷爱 | 久久99国产精品免费网站 | 国产精品18久久久久白浆 | 日韩毛片在线一区二区毛片 | 精品视频不卡 | 麻豆久久久久久久 | 中文字幕文字幕一区二区 | 欧美精品在线观看免费 | 国产成人久久精品 | 精品福利国产 | 91精品久久久久久 | 日韩美在线 | 亚洲人天堂 | 丁香五月网久久综合 | 国产一区二区不卡在线 | 国产一区二区影院 | av电影亚洲| 国产精品久久久久永久免费观看 | 成人午夜免费剧场 | 毛片基地黄久久久久久天堂 | 亚洲一级电影 | 亚洲精品视频在线播放 | 久久免费看毛片 | 日韩中文字幕视频在线 | 久久精品网站免费观看 | 成人午夜剧场在线观看 | 日韩免费观看av | 国产精彩在线视频 | 天天操天天草 | 五月天久久久久久 | 91精品久久久久久综合乱菊 | 深爱激情婷婷网 | 久久久久在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲国产精品影院 | 色网站黄 | 高清日韩一区二区 | 免费亚洲片 | 一级片视频在线 | 日韩精品你懂的 | 中文字幕精品一区久久久久 | 91精品一区二区三区蜜桃 | 免费看av在线 | 国产一区国产二区在线观看 | 日韩在线色视频 | 成人av高清在线 | 九九精品久久久 | 91自拍视频在线 | 91综合视频在线观看 | 一区二区三区高清在线观看 | 日本免费久久高清视频 | 色综合久久精品 | 黄色的视频网站 | 97人人模人人爽人人喊中文字 | 中文字幕色婷婷在线视频 | 久久综合欧美精品亚洲一区 | 天天爱天天操天天干 | 97碰在线视频 | 在线视频a | 午夜精品久久久久久久99无限制 | 9在线观看免费高清完整版在线观看明 | 亚洲综合情 | 国产破处视频在线播放 | wwwwww国产 | 精品视频在线观看 | 免费日韩电影 | 亚洲电影图片小说 | 久久xx视频 | 中文字幕在线不卡国产视频 | 久久国产精品第一页 | 日韩欧美视频免费在线观看 | 国产日韩欧美在线看 | 手机看片99 | 国产区精品在线 | 98涩涩国产露脸精品国产网 | 久久婷婷久久 | 国产九九精品视频 | 亚洲影院一区 | 亚洲 综合 精品 | 狠狠做深爱婷婷综合一区 | 久久综合九色综合97婷婷女人 | 欧美精品国产综合久久 | 五月婷婷综合激情 | 国产高清不卡 | 最新日韩精品 | 国产一区二区久久久 | 日韩在线观看视频免费 | 狠狠躁日日躁狂躁夜夜躁av | 国产精品毛片一区视频播不卡 | 五月天伊人网 | 天天爱天天草 | 天天干天天操av | 国产色影院 | 欧美精品亚洲精品 | 国产在线1区| 91大神dom调教在线观看 | 夜色资源站wwwcom | 中文字幕在线影院 | 在线看片91| 免费色网站 | 伊人久久精品久久亚洲一区 | 国产精品成人久久久 | 国产对白av| 国产精品久久久久久久久久三级 | 成人影片在线免费观看 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 人人草在线视频 | 欧美一区中文字幕 | 久久精品视频在线 | 国产麻豆剧传媒免费观看 | 在线 高清 中文字幕 | 一区二区三区免费在线观看视频 | 最近更新好看的中文字幕 | 日本中文字幕在线免费观看 | 国产专区日韩专区 | 成人在线免费观看网站 | 国产视频亚洲视频 | 国产精品video爽爽爽爽 | 国产 在线观看 | 精品一区二区三区在线播放 | 免费成人在线观看视频 | 久久久精品福利视频 | 国产日产欧美在线观看 | 999久久a精品合区久久久 | 亚洲精品中文字幕在线观看 | av免费在线网 | 午夜久草| 天堂av观看| 欧美韩国日本在线观看 | 18久久久久 | 91在线精品播放 | 国产成人三级一区二区在线观看一 | 国产精品欧美 | 久草热久草视频 | 黄色软件网站在线观看 | 欧美日韩亚洲在线观看 | 久久爱资源网 | 精品免费久久久久 | 999视频网站 | 久久精彩 | av超碰免费在线 | 欧美精品乱码久久久久久 | 欧美日韩免费观看一区二区三区 | 一区二区三区在线免费播放 | 精品亚洲免a | 国产一二区免费视频 | 天天色天天综合 | 亚洲综合成人在线 | 欧美性色综合网站 | 2022中文字幕在线观看 | 久久97视频| 在线天堂视频 | av解说在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产成人99久久亚洲综合精品 | 91网页版在线观看 | 五月婷香| 日韩性色| 正在播放国产一区二区 | 亚洲精品久久久久久中文传媒 | 久久99热精品 | 亚洲aaa毛片| 日韩专区视频 | 麻豆91网站 | 免费观看成年人视频 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 欧美一区二区伦理片 | 国产麻豆电影在线观看 | 中文字幕成人网 | 精品av在线播放 | 天天舔夜夜操 | 五月天中文字幕 | 五月天色站 | 九九综合九九 | 又污又黄网站 | 日韩网站一区二区 | 91高清完整版在线观看 | 91日韩免费 | 日韩在线免费看 | 午夜精品久久一牛影视 | 国产在线欧美日韩 | 911亚洲精品第一 | 日韩一区视频在线 | 免费日韩 精品中文字幕视频在线 | 亚洲精品一区二区三区新线路 | 亚洲最新av网址 | 韩日av一区二区 | 激情网第四色 | 午夜av日韩 | 久久99精品久久久久久秒播蜜臀 | 日日爽天天 | 国色天香av | 久久九九网站 | 久久精品视频免费观看 | 国产伦精品一区二区三区无广告 | 天天射天天舔天天干 | 玖玖玖影院 | 欧美精品999 | 美女在线观看网站 | 午夜精品久久久久久久99婷婷 | 亚洲,播放 | 日本成址在线观看 | 亚洲在线视频免费 | 久久久免费视频播放 | 黄色亚洲片 | 最近更新好看的中文字幕 | 日韩欧美在线视频一区二区 | 超碰97国产在线 | 免费看高清毛片 | 国产精品免费观看在线 | 丰满少妇在线观看网站 | 色综合久久中文综合久久牛 | 在线播放一区 | 国产午夜小视频 | 97操操操 | 国产精品久久久久久麻豆一区 | 色婷婷久久久 | 成人一区二区三区中文字幕 | 99久久er热在这里只有精品15 | 日本在线中文在线 | 激情视频免费观看 | 黄色官网在线观看 | 99精品视频免费在线观看 | 西西人体4444www高清视频 | 高清av在线免费观看 | 欧美日韩不卡一区 | 综合五月婷婷 | 美女搞黄国产视频网站 | 日日夜夜天天干 | 好看av在线 | 99热在线这里只有精品 | 久久久久久久网站 | 黄色三级免费看 | 在线免费高清一区二区三区 | 久久久久久高潮国产精品视 | 国产原创av片 | 亚洲精品观看 | 在线中文字幕视频 | 开心激情婷婷 | 黄色日视频 | 人人干免费 | 五月婷婷久久丁香 | 99九九99九九九视频精品 | 国产视频久久久 | 天天色天天干天天 | 久草在线官网 | 九热精品| 91黄色免费看 | 九九在线播放 | 中国黄色一级大片 | 国产亚洲日 | 国产日本在线观看 | 天天操天天操天天操天天 | 国产精品久久久久久影院 | 日本在线观看一区二区三区 | 国产精品亚洲综合久久 | 日韩激情一二三区 | 天天插天天爱 | 在线最新av | 国产亚洲精品成人av久久影院 | 日韩电影在线观看中文字幕 | 亚洲高清网站 | 9999国产精品 | 久久国产精品一区二区三区 | 免费午夜网站 | 国产日韩精品一区二区 | 日日夜夜av | 久久综合狠狠综合 | 亚洲播放一区 | 欧美在线视频第一页 | 一级黄网 | 久久综合久久久 | 亚洲激情在线观看 | 超碰人人国产 | a级片网站 | 国产原创在线 | 色欧美88888久久久久久影院 | 国产1区在线 | 欧美一级免费高清 | 91久久国产自产拍夜夜嗨 | 欧美精品一区二区在线观看 | 日本精品久久久一区二区三区 | 精品国产综合区久久久久久 | 日韩电影中文字幕在线 | 国产精品免费一区二区三区 | 精品一区二区三区在线播放 | 成人免费观看大片 | 91福利视频免费 | 99热这里只有精品免费 | 91精品视频在线免费观看 | 999久久国产精品免费观看网站 | 免费高清在线观看成人 | 亚洲欧洲精品一区 | 国产精品18久久久久久久久久久久 | 日韩在线不卡 | 国产精品mv在线观看 | 日韩精品中文字幕在线 | 黄色一级大片在线免费看产 | 亚洲日本va中文字幕 | 夜夜操狠狠干 | 亚洲免费在线看 | 91在线入口| 亚洲精品免费视频 | 日韩精品在线免费播放 | 久久久久免费 | 国产日韩欧美视频 | 黄色毛片一级片 | 久久国产精品视频观看 | av三区在线 | 国产无套精品久久久久久 | 黄在线 | 日日精品 | 日韩久久精品一区二区三区 | 国产精品成人自产拍在线观看 | 亚洲精品男人的天堂 | 在线免费视频 你懂得 | 91精品久久久久久综合乱菊 | 日本丰满少妇免费一区 | 亚洲综合视频在线播放 | 亚洲精品字幕在线 | 国产网站色| 免费在线a | 国产一级片免费观看 | 国产精品一区二区三区99 | 五月开心六月伊人色婷婷 | 国产午夜一级毛片 | 久草热视频 | 国产小视频在线免费观看 | 91.麻豆视频| 99国产在线 | 中文字幕色婷婷在线视频 | 欧美日本中文字幕 | 成人动漫一区二区 | 久久99热精品 | 四虎视频| 成年人毛片在线观看 | 日韩超碰在线 | 日韩精品一区二区在线视频 | 国产在线理论片 | 91爱看片| 亚洲成年片 | 91亚洲精品国产 | 在线免费视频 你懂得 | 日日操日日插 | 一区二区三区免费在线观看视频 | 欧美性生活小视频 | 精品久久久久久亚洲综合网站 | 国产高清成人 | 9在线观看免费高清完整 | 在线免费观看成人 | 精品国产视频在线观看 | 欧美乱码精品一区 | 欧美美女激情18p | 国产玖玖精品视频 | 91久久久久久久一区二区 | 亚洲理论片在线观看 | 99热这里只有精品国产首页 | 亚洲精品视频在线播放 | 色偷偷人人澡久久超碰69 | av福利网址导航 | 国产精品久久久久久久久久久久久久 | 久久er99热精品一区二区 | 成人午夜精品久久久久久久3d | 亚洲理论在线观看电影 | 91视频91色 | 91成人精品视频 | 在线亚洲免费视频 | 久久伦理电影网 | 三级动态视频在线观看 | se婷婷 | 亚洲国产欧洲综合997久久, | 免费特级黄色片 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产999精品久久久影片官网 | 91视视频在线直接观看在线看网页在线看 | 久久视了| 91av视频网 | 99在线精品观看 | 久免费视频 | 国产日韩精品欧美 | 亚洲一级电影 | 日本久久电影 | 4438全国亚洲精品观看视频 | 国产91全国探花系列在线播放 | 免费日韩av片 | 日韩欧美区 | 精品中文字幕在线 | 91在线成人| 色播99 | 国产一区二区手机在线观看 | 国产在线国偷精品产拍 | 成人av电影在线播放 | 99精品视频免费全部在线 | av一区二区在线观看中文字幕 | 日本夜夜草视频网站 | 国内综合精品午夜久久资源 | 国产在线视频导航 | 久草在线视频免费资源观看 | 国产原创av在线 | 国产精品一区二区久久久 | 亚洲人视频在线 | av 在线观看| 亚洲精品午夜久久久久久久久久久 | 久久9视频 | 中文字幕色在线视频 | 美女视频黄色免费 | 欧美成年黄网站色视频 | 欧美一级电影 | 97在线影视 | 激情综合站 | 亚洲夜夜网 | 国产精品theporn| 国产精品免费久久久久久久久久中文 | 午夜久久影院 | 尤物97国产精品久久精品国产 | 亚洲免费精品视频 | 美女免费视频一区 | 国产综合小视频 | 欧美伦理电影一区二区 | 美女久久网站 | 麻豆激情电影 | 久草在线最新免费 | 国产麻豆传媒 | 亚洲综合一区二区精品导航 | 三级av免费看 | 韩国av在线播放 | 五月开心六月婷婷 | 亚洲精品一区二区三区新线路 | 久久成年人| 色综合综合 | 国产一性一爱一乱一交 | 二区三区在线观看 | 国产视频网站在线观看 | 日韩视频 一区 | 成人午夜精品久久久久久久3d | 一区二区三区中文字幕在线 | 欧美最猛性xxx | 国产免费一区二区三区最新 | 92国产精品久久久久首页 | 国产一区二区三区免费在线观看 | 日韩r级在线 | 国产精品久久二区 | 久久综合五月婷婷 | 99精品视频免费观看视频 | 国产精品免费观看国产网曝瓜 | 99视频免费在线观看 | 日日综合网 | 日韩av免费一区 | 久久字幕精品一区 | 日韩av电影免费观看 | 久草在线99| 国产一区二区在线免费观看 | 美女视频久久黄 | 国产精品ⅴa有声小说 | 亚洲五月婷 | 亚洲九九九| 香蕉久久久久久av成人 | 91麻豆网| 亚洲高清免费在线 | 国产精品xxxx18a99 | 三级黄色免费 | 日韩伦理一区二区三区av在线 | 日韩一区二区三区免费视频 | 亚洲在线视频免费 | 欧美成人播放 | 婷婷久久网站 | 狠狠操精品 | 亚洲欧美一区二区三区孕妇写真 | 夜夜躁日日躁狠狠久久88av | 亚洲欧洲精品一区二区 | 超碰av在线免费观看 | 精品一区二区亚洲 | 超碰夜夜 | 国产精品久久久久久一区二区三区 | www.狠狠插.com| 亚洲天天看 | 日本中文在线观看 | 亚洲视频高清 | 99热 精品在线 | 色综合激情久久 | 亚洲日本va午夜在线电影 | 在线只有精品 | 色婷婷狠狠18 | 久久精品永久免费 | 欧美日韩三级 | 色噜噜日韩精品欧美一区二区 | 国产亚洲精品久久久久久移动网络 | 四虎在线影视 | 女人高潮特级毛片 | 国内小视频 | 久久久久亚洲天堂 | 欧美在线视频一区二区三区 | 综合色在线观看 | 亚洲精品国产精品99久久 | 天天爽天天爽夜夜爽 | 欧美一级视频免费看 | 草久视频在线观看 | 国产日韩视频在线 | 国产成人综合在线观看 | 999抗病毒口服液 | 亚州精品天堂中文字幕 | 天堂视频中文在线 | 亚洲免费国产 | 国产视频观看 | 国产一区二区三区黄 | 在线观看91av | 全黄色一级片 | 亚洲综合最新在线 | 99精品视频在线观看视频 | 日一日操一操 | 亚州精品在线视频 | 免费三级大片 | 欧美国产日韩一区二区三区 | 免费国产在线视频 | 天堂av色婷婷一区二区三区 | 日韩欧美网址 | 久久久影院官网 | av资源免费看 | 91亚洲狠狠婷婷综合久久久 | 欧美粗又大 | 五月婷婷综合激情 | 国产成人香蕉 | 日韩在线三级 | 久久精品区 | 久久精品国产一区二区三区 | www.福利| 国产日韩在线一区 |