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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

从0开始搭建编程框架——主框架和源码

發布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从0开始搭建编程框架——主框架和源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 一個良好的結構是“對修改關閉,對擴展開放”的。(轉載請指明出于breaksoftware的csdn博客)

? ? ? ? 這個過程就像搭建積木。框架本身需要有足夠的向內擴展能力以使自身有進化能力,其次要有足夠的外向擴展能力以使其可以方便定制業務。一般來說,我們讓使用者繼承框架暴露的接口,或者填充一些配置項以達到“擴展”的目的。

? ? ? ? 對內部分,我們稱為模塊(module)。它主要提供initialize方法供各個模塊加載配置

template<class T>
class Module {
public:Module() {};virtual ~Module() {};
public:virtual bool initialize() final {config_callback fn = boost::bind(&T::on_init, dynamic_cast<T*>(this), _1);ConfigRegistry::get_mutable_instance().register_config_dir(dynamic_cast<T*>(this)->name(), fn);return true;};
private:virtual void on_init(const char*) = 0;virtual const char* name() = 0;
};

? ? ? ? module是個模板類,這是因為第8行我們需要知道子類的類型,以將其on_init方法綁定到一個函數對象fn上。fn最終會和模塊的名稱通過單例類ConfigRegistry的register_config_dir綁定在一起(9行)。

? ? ? ??ConfigRegistry是框架內模塊中唯一不繼承于Module的單例類。

typedef boost::function<void(const char*)> config_callback;class ConfigRegistry :public boost::serialization::singleton<ConfigRegistry>
{
public:ConfigRegistry(void);~ConfigRegistry(void);
public:bool initialize(const char* conf_path);bool register_config_dir(const char* name,config_callback& f_config_proc) const;
private:void init_from_file(const char* conf_path);
private:peleus::modules::configure::config_registry_conf _config;struct std::map<std::string, std::string> _config_name_path;
};

? ? ? ? 它在程序一開始時就啟動執行,以把框架的整體配置讀取進來(9行),然后各個模塊初始化時,讓它們加載自己對應的配置(38行)

using ::peleus::modules::configure::module_conf;ConfigRegistry::ConfigRegistry(void) {
}ConfigRegistry::~ConfigRegistry(void) {
}bool ConfigRegistry::initialize(const char* conf_path) {bool suc = peleus::utils::file2conf(conf_path, _config);LOG(DEBUG) << "ConfigRegistry::initialize from " << conf_path;if (!suc) {LOG(FATAL) << "ConfigRegistry::initialize Fatal";return suc;}int size = _config.modules_conf_size();for (int i = 0; i < size; i++) {const module_conf& conf = _config.modules_conf(i);_config_name_path[conf.name()] = conf.path();LOG(DEBUG) << "ConfigRegistry::initialize "<< conf.name().c_str() << " " << conf.path().c_str();}LOG(DEBUG) << "ConfigRegistry::initialize Success";return suc;
}bool ConfigRegistry::register_config_dir(const char* name,config_callback& f_config_proc) const
{auto it = _config_name_path.find(std::string(name));if (it == _config_name_path.end()) {LOG(WARNING) << "ConfigRegistry::register_config_dir search " << name << " failed";return false;}LOG(DEBUG) << "ConfigRegistry::register_config_dir search " << name << " path: " << it->second.c_str();f_config_proc(it->second.c_str());return true;
}

? ? ? ? 第10行執行配置讀取和轉換。之前做服務開發時,最煩的就是配置解析和請求協議解析。在此要特別感謝google的protobuf,真是個好東西,讓我把配置解析的代碼也給省了

#include <string>
#include <fstream>
#include <streambuf>
#include <butil/logging.h>
#include <boost/filesystem.hpp>
#include <google/protobuf/text_format.h>namespace peleus {
namespace utils {template <class T>
bool file2conf(const char* path, T& t) {if (!boost::filesystem::exists(path)) {LOG(ERROR) << path << " is not exist";return false;}std::ifstream infile(path);std::string content = std::string(std::istreambuf_iterator<char>(infile),std::istreambuf_iterator<char>());return  google::protobuf::TextFormat::ParseFromString(content, &t);
}}
}

? ? ? ? 對外的擴展,我們稱為插件(plugin)。插件是由若干組件(Component)組成的,其暴露的on_init方法供各個組件子類實現,以加載配置

class Component {
public:explicit Component(const char* name) : _name(std::string(name)) {};virtual ~Component() {};
public:const char* name() const {return _name.c_str();};
public:virtual void on_init(const char* conf_path) = 0;virtual void reset() = 0;
private:Component();
private:std::string _name;
};

? ? ? ? 組件具有承載業務邏輯的作用。在《從0開始搭建編程框架——思考》一文中,我們設定每個異步過程都是以一個服務形式提供的。于是有些組件將提供服務功能,即它是個入口,這樣就需要繼承Entrance類

class Entrance : public Component {
public:explicit Entrance(const char* name) : Component(name) {};virtual ~Entrance() {};
public:virtual void on_init(const char*) = 0;virtual void reset() = 0;
};typedef boost::shared_ptr<Entrance> smart_ptr;
typedef smart_ptr (*creator_t)(const char*);

? ? ? ? 組件需要向框架注冊,框架提供下面的方法以支持

//h
bool register_creator(const char*, creator_t);
creator_t lookup_creator(const char*);template<class type> smart_ptr creator(const char* name) {return boost::make_shared<type>(name);
};template<class type> bool register_class(const char* name) {return register_creator(name, creator<type>);
};//cpp
bool register_creator(const char* name, creator_t creator) {return peleus::modules::CreatorRepertory::get_mutable_instance().register_creator(name, creator);
}creator_t lookup_creator(const char* name) {return peleus::modules::CreatorRepertory::get_mutable_instance().lookup_creator(name);
}

? ? ? ??creator和register_class方法會在插件代碼中編譯,register_creator和lookup_creator會在框架中編譯,其中它們連接的函數register_creator將在鏈接時被確定。

? ? ? ??CreatorRepertory類繼承于Module,它主要用于注冊和查詢組件類構造指針,這些指針都是在插件注冊時向框架注冊綁定的

bool CreatorRepertory::register_creator(const char* name, creator_t creator)
{if (_creators.end() != _creators.find(name)) {LOG(TRACE) << name << " have registed";return true;}_creators[name] = creator;return true;
}creator_t CreatorRepertory::lookup_creator(const char* name) {auto it = _creators.find(name);if (_creators.end() == it) {LOG(FATAL) << "can't lookup " << name  << " creator";return NULL;}return it->second;
}

? ? ? ? 我們再看下插件管理加載PluginLoader。其核心就是load_plugin_and_run方法。插件可以以靜態鏈接庫或者動態鏈接庫供框架使用。

typedef bool (*module_init_func_t)(const char*);void PluginLoader::load_plugin_and_run(const char* so_path, int static_flag, const char* fun_name, const char* conf_path) {module_init_func_t init_func = NULL;if (!static_flag) {FALSE_THROW(boost::filesystem::exists(so_path),"%s can't find %s file", name(), so_path);void* handle = dlopen(so_path, RTLD_NOW | RTLD_GLOBAL);if (!handle) {const char* err_reason = dlerror();FALSE_THROW(!err_reason,"%s load %s error.reason : %s", name(), so_path, err_reason);FALSE_THROW(0, "%s load %s error", name(), so_path);}init_func = (module_init_func_t)dlsym(handle, fun_name);}else {init_func = (module_init_func_t)dlsym((void*)RTLD_LOCAL, fun_name);}FALSE_THROW(init_func, "%s get function %s error", name(), fun_name);FALSE_THROW(init_func(conf_path), "%s call plugin %s func %s error", name(), so_path, fun_name)
}

? ? ? ? 對外Server只提供一個端口,處理業務的組件對象在init_from_file方法中獲取,然后再start方法中運行

void Server::init_from_file(const char* conf_path) {try {entrance_conf config;bool suc = peleus::utils::file2conf(conf_path, config);if (!suc) {FALSE_THROW(0, "init_from_file Fatal: %s", conf_path);}smart_ptr ptr = _entrance_repertory.get_entrance(config.name().c_str());Service* service = dynamic_cast<google::protobuf::Service*>(ptr.get());if (!service) {FALSE_THROW(0, "%s get service error", config.name().c_str());}if (_server.AddService(service, brpc::SERVER_DOESNT_OWN_SERVICE) != 0) {FALSE_THROW(0, "%s Add %s server error", name(), config.name().c_str());}}catch (PeleusException& e) {throw;}catch (const std::exception& exp) {throw;}
}void Server::start() {brpc::ServerOptions options;options.idle_timeout_sec = _config.idle_timeout_sec();options.max_concurrency = _config.max_concurrency();options.num_threads = _config.num_threads();options.internal_port = _config.internal_port();try {if (_server.Start(_config.port(), &options) != 0) {FALSE_THROW(0, "%s start server error", name());}_server.RunUntilAskedToQuit();}catch (PeleusException& e) {throw;}catch (const std::exception& exp) {throw;}
}

? ? ? ? 提供內部服務的InterServer是類似的

void InterServer::add_inter_service() {TraversalCallback traversal_file = [this](const char* path) {this->init_from_file(path);};TraversalFloder traversal;traversal.set_callback(NULL, traversal_file, __FILE__);traversal.init(_config.inter_servers_conf_path().c_str());
}void InterServer::init_from_file(const char* conf_path) {entrance_conf config;bool suc = peleus::utils::file2conf(conf_path, config);if (!suc) {LOG(FATAL) << "init_from_file Fatal: " << conf_path;return;}add_service(config.name());
}void InterServer::add_service(const std::string& entrance_name) {smart_ptr ptr = _entrance_repertory.get_entrance(entrance_name.c_str());Service* service = dynamic_cast<google::protobuf::Service*>(ptr.get());if (!service) {LOG(WARNING) << name() << " get service error";}if (_server.AddService(service, brpc::SERVER_DOESNT_OWN_SERVICE) != 0) {FALSE_THROW(0, "%s Add %s server error", name(), entrance_name.c_str());}
}void InterServer::start() {brpc::ServerOptions options;options.idle_timeout_sec = _config.idle_timeout_sec();options.max_concurrency = _config.max_concurrency();try {if (_server.Start(_config.port(), &options) != 0) {FALSE_THROW(0, "%s start server error", name());}init_channel();//_server.RunUntilAskedToQuit();}catch (PeleusException& e) {throw;}catch (const std::exception& exp) {throw;}
}void InterServer::init_channel() {brpc::ChannelOptions options;const query_inter_server_conf& conf = _config.query_conf();options.connection_type = conf.connection_type();options.connect_timeout_ms = conf.connect_timeout_ms();options.timeout_ms = conf.timeout_ms();options.max_retry = conf.max_retry();std::string server_lower = conf.server();transform(server_lower.begin(), server_lower.end(), server_lower.begin(), ::toupper);std::stringstream ss;ss << _config.port();std::string port = ss.str();std::string server_port = conf.server();server_port += ":";server_port += port;if (_channel.Init(server_port.c_str(), &options) != 0) {FALSE_THROW(0, "%s fail to initialize channel %s", name(), server_port.c_str());}
}

? ? ? ? Server和InterServer所使用的組件是具有“入口”性質的,即應該繼承于Entrance。與之相關的類EntranceFactory通過create將各個對象構造出來

smart_ptr EntranceFactory::create(const std::string& entrance_name) {smart_ptr sp;try {auto it = _entrances_conf.find(entrance_name);FALSE_THROW(!(it == _entrances_conf.end()), "%s create get %s conf error", name(), entrance_name.c_str());creator_t create_fun = CreatorRepertory::get_mutable_instance().lookup_creator(entrance_name.c_str());FALSE_THROW(create_fun, "%s create lookup %s creator error", name(), entrance_name.c_str());sp = create_fun(entrance_name.c_str());FALSE_THROW(sp.get(), "%s create create %s error", name(), entrance_name.c_str());sp->on_init(it->second.c_str());}   catch (PeleusException& e) {throw;}   catch (const std::exception& exp) {throw;}   return sp;
} 

? ? ? ? 如此我們便將整個框架搭建出來了。最后看下類圖

?

總結

以上是生活随笔為你收集整理的从0开始搭建编程框架——主框架和源码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

久久国产精彩视频 | 色五月色开心色婷婷色丁香 | 99免费精品 | 午夜电影av | 国产成人精品午夜在线播放 | 精品久久久网 | 日韩av电影免费观看 | av资源免费观看 | 午夜电影中文字幕 | 亚洲国产精品第一区二区 | 中文字幕一区二区三区视频 | 欧美综合在线视频 | 天天色天天色 | 婷婷色中文字幕 | av中文天堂 | 久久99亚洲网美利坚合众国 | 久久精品免费电影 | 国产成人精品电影久久久 | 日本性视频 | 免费精品人在线二线三线 | 玖玖在线播放 | 天天躁天天狠天天透 | 91九色在线| 日韩av片无码一区二区不卡电影 | 久久精品www人人爽人人 | 亚洲精品午夜久久久久久久 | 久久ww| 热99久久精品| 国产精品99久久99久久久二8 | 国产一区二区日本 | 91最新国产 | 97在线影院 | 香蕉视频导航 | 中文字幕在线观看网站 | 亚洲精区二区三区四区麻豆 | 麻豆免费在线播放 | 亚洲最大av | 免费av观看 | 日韩中文在线字幕 | 久草视频中文在线 | 涩涩资源网| 中文字幕 二区 | 欧美做受69| 日韩综合在线观看 | 久久不射网站 | 一区二区三区精品在线视频 | 免费观看91视频大全 | 国产中的精品av小宝探花 | 亚洲精品午夜久久久久久久久久久 | 香蕉网在线观看 | 精品资源在线 | 久久久久久蜜桃一区二区 | 日韩大片在线播放 | 精品欧美一区二区在线观看 | 亚洲激情五月 | 久久久国际精品 | 久久午夜精品影院一区 | 日韩av免费观看网站 | 亚洲精品99久久久久中文字幕 | 欧美精品在线一区二区 | 深爱激情开心 | 欧美一区二视频在线免费观看 | 国内精品福利视频 | av免费在线观 | 在线成人一区 | 激情文学综合丁香 | 色多多在线观看 | 亚洲精品66 | 精品国产欧美一区二区三区不卡 | 久久久精品欧美一区二区免费 | 超碰在线公开免费 | 国产精品s色 | 97精品免费视频 | 美女免费视频网站 | 色姑娘综合 | 亚洲精品国产品国语在线 | 欧美激情精品一区 | 国产美女精品人人做人人爽 | 日本久久久亚洲精品 | 91成版人在线观看入口 | 日韩激情视频在线观看 | 日韩在线国产精品 | 久久国产网 | 少妇搡bbbb搡bbb搡忠贞 | 久草精品国产 | 最新国产精品拍自在线播放 | 永久免费在线 | 午夜性福利 | 色天天综合网 | 97超碰人人澡人人 | 三级av小说 | 99久久久精品 | 日本中文字幕视频 | av综合网址 | 中文字幕一区二区三区精华液 | 91综合视频在线观看 | 欧美性脚交 | 亚洲精品18日本一区app | 久久草在线精品 | 在线免费观看视频一区 | 在线观看精品国产 | 久久久久久久久久久免费 | 国产在线视频不卡 | 日韩在线播放av | 久久久私人影院 | 亚洲国产精品第一区二区 | 久久久高清 | 免费的国产精品 | h文在线观看免费 | 99热这里只有精品国产首页 | 国产探花视频在线播放 | 国内精品久久久久影院男同志 | 中文字幕免费高清av | 免费观看国产精品 | 97人人爽 | 久久精品123 | 国产精品久久久久久久久软件 | 成人在线免费视频 | 久久尤物电影视频在线观看 | 亚州av一区 | 夜夜爽88888免费视频4848 | 九九九九九国产 | 亚洲国产精品免费 | 日韩在线第一 | 日本特黄特色aaa大片免费 | 成人在线视频在线观看 | 91看片看淫黄大片 | 午夜影院三级 | 成人免费在线播放 | 久久高清视频免费 | 玖玖在线资源 | 国产精品理论片在线观看 | 国产精品网址在线观看 | 色综合亚洲精品激情狠狠 | 亚洲精品国精品久久99热一 | 久久久国产一区 | 黄色三级在线观看 | 久久人人爽人人爽人人片av免费 | 亚洲狠狠婷婷综合久久久 | 99婷婷狠狠成为人免费视频 | 手机在线看永久av片免费 | 久久免费高清视频 | 成人a在线观看 | 国产精品精品久久久久久 | 91最新网址| 色婷婷影视 | 色婷婷av一区 | 六月丁香激情网 | 91精品秘密在线观看 | 国产69久久 | 99久久国产免费,99久久国产免费大片 | 国产精品九九九九九九 | 99久久er热在这里只有精品15 | 久久久精品亚洲 | 欧美成人一二区 | 涩av在线 | 久久手机精品视频 | 国产黄大片 | a在线v | 亚洲日本中文字幕在线观看 | 在线免费观看黄色av | 在线欧美a | 最新午夜 | 免费中文字幕视频 | 正在播放国产一区 | 在线 日韩 av| 久久综合九色综合97_ 久久久 | 日韩啪啪小视频 | 亚洲三级性片 | 97精品超碰一区二区三区 | 激情五月综合 | 国产精品久久久久久久久搜平片 | 日韩av免费在线电影 | 永久免费的啪啪网站免费观看浪潮 | 在线观看亚洲专区 | 欧美日韩啪啪 | 91麻豆精品 | 一区二区三区电影大全 | 久久综合欧美精品亚洲一区 | 国产一级二级在线 | 中文字幕免费在线看 | 99欧美 | 欧美日韩国产一区二区三区 | 98精品国产自产在线观看 | 国产成人一区二区精品非洲 | avav99| 日日夜夜网 | 亚洲无人区小视频 | 国产精品99精品 | 97视频入口免费观看 | 精品国产乱码久久久久久久 | 黄色1级毛片 | 色网站国产精品 | 一区二区三区不卡在线 | 国产黄网在线 | 日韩资源在线观看 | 国产精品情侣视频 | 激情在线网址 | 国产精品亚洲片夜色在线 | 中文字幕欧美日韩va免费视频 | av超碰在线 | 91精品视频在线看 | 久久免费视频精品 | 久久亚洲私人国产精品 | 亚洲精品一区二区三区在线观看 | 久久国产一二区 | 天天草天天干天天 | 亚洲欧美日韩精品久久久 | 久久免费视频1 | 一区二区伦理电影 | 人人狠狠综合久久亚洲婷 | 黄色大片日本 | 2024国产精品视频 | 成人网中文字幕 | 日本精品中文字幕 | 中文字幕 在线看 | 人人爽人人爱 | 激情五月av| 国内精品美女在线观看 | 国产精品久久久久久久久久新婚 | 天天撸夜夜操 | 久久精品一区二区三区中文字幕 | 91看片淫黄大片91 | 亚洲五月激情 | 国产精品18久久久久白浆 | 久久夜夜夜| 久久99精品久久久久久秒播蜜臀 | 亚洲欧美日韩精品久久奇米一区 | 久久久久福利视频 | 亚洲精品在线免费 | 五月婷婷激情五月 | 日韩一区二区在线免费观看 | 国产成人99av超碰超爽 | 国产精品综合av一区二区国产馆 | 伊人国产视频 | 黄色电影小说 | 日本最新一区二区三区 | 午夜国产一区二区 | 亚洲一级片免费观看 | 免费福利在线播放 | 国产高清视频免费最新在线 | 精品国产91亚洲一区二区三区www | 亚洲成人中文在线 | 亚洲国产午夜视频 | 免费激情网| 欧美a免费 | 在线电影av | 九九爱免费视频在线观看 | 91人人揉日日捏人人看 | 成人h动漫精品一区二 | 五月婷婷视频在线 | 91免费观看国产 | 五月天六月婷 | 99久久精品久久久久久清纯 | 免费看三级 | 国产免费观看av | 激情婷婷六月 | 日批在线看 | 欧美日韩观看 | 九九视频精品在线 | 天天爱天天舔 | 久久呀| 国产1级毛片 | 成人高清在线 | 中文资源在线观看 | 91久久久久久久 | 日韩av一区二区在线播放 | 国产剧情一区二区在线观看 | 久久久久在线观看 | 九色视频网站 | 97久久精品午夜一区二区 | 国产免费人成xvideos视频 | 色婷婷六月天 | 国内精品视频一区二区三区八戒 | 久草在线这里只有精品 | 91亚洲精品国偷拍自产在线观看 | 黄色最新网址 | 中文字幕在线视频免费播放 | 99欧美精品 | 国产黄色大片免费看 | 西西44人体做爰大胆视频 | 免费看毛片网站 | 中文伊人 | 在线免费色视频 | 久久国产成人午夜av影院宅 | 国产成人av免费在线观看 | 美女网站黄在线观看 | 综合色婷婷 | 人人澡av | 国产在线a | 91一区二区三区久久久久国产乱 | 91系列在线观看 | 欧美a性| 日本电影久久 | 久草精品视频 | 手机av片| 99久久精品免费看国产麻豆 | 在线日韩精品视频 | 五月综合 | 狠狠狠干狠狠 | 欧美日韩视频一区二区三区 | 日韩精品专区在线影院重磅 | 少妇bbbb揉bbbb日本 | 成人黄视频 | 中文字幕亚洲精品在线观看 | 最新婷婷色| 国产精品私人影院 | 国产中的精品av小宝探花 | 99久久超碰中文字幕伊人 | 亚洲国产精彩中文乱码av | 丁香婷婷网 | 日韩在线视频播放 | 一级免费片 | 黄色app网站在线观看 | 日日干激情五月 | 国产在线中文字幕 | 天天操·夜夜操 | 91看片在线播放 | 五月天精品视频 | 九九久久国产精品 | 色婷婷 亚洲 | av手机在线播放 | 国产视频亚洲精品 | 黄色在线看网站 | 九九九热精品免费视频观看网站 | 在线av资源 | 黄色小网站在线 | 91九色在线视频观看 | 国产原创在线观看 | 久久99国产精品自在自在app | 色婷婷激情网 | av在线免费播放 | 亚洲精品国产精品国自 | 91精品在线观看入口 | 国产精品久久久久永久免费看 | www.av小说| 西西人体www444 | 色香蕉视频 | 日韩资源在线播放 | 在线免费色 | 久久欧美在线电影 | 成片视频在线观看 | 亚洲精品久久久久www | 福利一区二区在线 | 精品日韩视频 | 又黄又网站 | 久久精品2 | 超薄丝袜一二三区 | 91精品国产麻豆国产自产影视 | 香蕉成人在线视频 | 欧美成人性网 | 99精品区 | 国产网站av | 久久精品视频在线观看免费 | 91免费高清视频 | 欧美a级片网站 | 麻豆视频国产 | 99一级片 | 精品免费视频123区 午夜久久成人 | 在线有码中文字幕 | 国产 色 | 免费在线观看午夜视频 | 高潮久久久久久久久 | 久久96国产精品久久99软件 | 天堂av一区二区 | 激情五月开心 | 在线只有精品 | 国产成人精品免费在线观看 | 免费三级a | 国产精品一级在线 | 一级片免费在线 | 欧美亚洲国产精品久久高清浪潮 | 人人插人人搞 | 人人干狠狠干 | 免费高清男女打扑克视频 | 精品无人国产偷自产在线 | av天天色 | 国产精品国产三级国产aⅴ无密码 | 碰天天操天天 | 国产精品一区二区三区观看 | 色天天综合久久久久综合片 | 亚洲天堂首页 | 日韩精品专区在线影院重磅 | 在线免费观看一区二区三区 | 亚洲国产片色 | 国产精品黄色影片导航在线观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 国产黄色av影视 | 四虎国产精品免费观看视频优播 | 国产精品成人一区 | 成人在线一区二区三区 | 国产a级片免费观看 | 在线看免费 | 黄色av一区| 天天干天天摸天天操 | 亚洲欧美视频网站 | 国产视频99 | 毛片网站在线观看 | 亚洲精品国产精品国产 | 99精品在线免费在线观看 | 免费黄色一区 | 中文字幕在线播放第一页 | 日韩在线视频观看免费 | 国产成人一级电影 | 在线亚洲高清视频 | 日韩在线免费视频 | 亚洲成人网在线 | 91自拍91| 天天天天射 | 成年人国产在线观看 | 国产剧在线观看片 | 亚洲精品国产精品乱码在线观看 | 亚洲免费av在线 | 色视频网站在线观看一=区 a视频免费在线观看 | 麻豆91在线观看 | 午夜婷婷在线观看 | 伊人中文字幕在线 | 激情 一区二区 | 亚洲精品在线免费看 | 日韩欧美精品在线观看 | 最近日本韩国中文字幕 | 在线播放 日韩专区 | 欧美性春潮 | 最新日韩视频 | 美女视频黄免费 | 四虎成人免费观看 | 国产 中文 日韩 欧美 | 精品国产一区二区三区四区vr | 黄色av网站在线免费观看 | 日韩精品视频免费在线观看 | 亚洲精品女人久久久 | 国产精品视频999 | 久久久综合精品 | 久久精品理论 | 免费在线播放av电影 | 日韩免费不卡视频 | 人人射人人澡 | 国产aa免费视频 | av一区二区在线观看中文字幕 | 欧美精品在线观看免费 | 亚洲日本色 | 五月宗合网 | 日韩欧美国产免费播放 | 欧美日韩视频在线一区 | 99热手机在线观看 | 婷婷五月色综合 | 日韩免费电影网站 | 激情视频一区二区三区 | 国产成人三级在线观看 | 在线а√天堂中文官网 | 中文字幕二区 | 蜜臀久久99精品久久久无需会员 | 亚洲电影自拍 | 成人av免费电影 | 亚洲精品在线观 | 在线视频专区 | 国产区在线视频 | 国产一级片视频 | 免费欧美精品 | 美女网站久久 | 久久高视频 | 国产色秀视频 | 最近最新最好看中文视频 | 国产精品 亚洲精品 | 国产成人精品国内自产拍免费看 | 国产福利一区二区在线 | 国产品久精国精产拍 | 天躁狠狠躁 | 国产精品女同一区二区三区久久夜 | 亚洲涩涩网 | 三级av网| 在线 你懂 | 国产美女永久免费 | 亚洲码国产日韩欧美高潮在线播放 | 最新精品视频在线 | 亚洲午夜精品电影 | 国内精品视频在线 | 69xxxx欧美 | 操操日日 | 日产乱码一二三区别在线 | 日韩精品一区二区三区中文字幕 | 日韩电影黄色 | 中文字幕国内精品 | 亚洲精品在线视频播放 | 亚洲精品一区二区精华 | 六月激情丁香 | 国产精品久久久久久久久久久久午夜 | 天天操网址 | 精品国产亚洲日本 | 91激情视频在线观看 | 99精品黄色片免费大全 | 国产精品久久久久久久久搜平片 | 日韩有码第一页 | av网站免费线看精品 | 国产香蕉视频 | 久久国产精品一区二区三区四区 | 天天翘av| 丁香六月色 | 亚洲欧美精品一区二区 | 国产永久免费观看 | 九九精品视频在线观看 | 黄色免费视频在线观看 | 日日干美女| 久久精品免费 | 日韩理论电影在线观看 | 91人人爱 | 视频国产 | 综合网天天射 | 天天天综合| 久久免费99精品久久久久久 | 久久蜜臀av | 99在线精品观看 | 91av欧美| 91九色视频国产 | 亚洲天堂网视频在线观看 | 免费a v在线| 色婷婷激情综合 | 97人人看 | 亚洲在线a | 狠狠干成人 | 色综合天天色 | 日韩在线视频网 | 国内精品视频一区二区三区八戒 | 国产一区高清在线观看 | 国产99久久精品 | 欧美五月婷婷 | 97精品在线观看 | 精品一区二区三区在线播放 | 欧美一级电影免费观看 | 国产91对白在线播 | 国产精品久久久久久久久毛片 | 午夜性福利 | av国产网站| 美女视频一区二区 | 久久免费在线视频 | 欧美日韩综合在线观看 | 精品视频国产 | 激情欧美一区二区三区免费看 | 日精品| 欧美日在线观看 | 1000部国产精品成人观看 | 人人爱夜夜操 | 黄色的网站免费看 | 综合久久网 | 亚洲婷婷在线视频 | 麻豆果冻剧传媒在线播放 | 97人人艹 | 美女久久99 | 日韩高清毛片 | 五月婷婷综合激情网 | 国产亚洲精品中文字幕 | 亚洲天堂va | 亚洲一区二区高潮无套美女 | 亚洲天堂色婷婷 | 天天狠狠| 亚洲国产电影在线观看 | 色悠悠久久综合 | 91毛片在线观看 | 国产一级片一区二区三区 | 免费看黄20分钟 | 午夜久久成人 | 日韩视频在线不卡 | 狠狠色丁香婷综合久久 | 91网站免费观看 | 国产一级黄色免费看 | 深爱激情五月综合 | 欧美激情视频免费看 | 国产视频一区在线 | 久草视频2 | 久久成人国产 | 成人久久毛片 | 日韩a在线 | 国产一区二三区好的 | 国产香蕉97碰碰久久人人 | 狠狠狠狠狠色综合 | 欧美在线视频一区二区三区 | 国产99久久久国产精品免费看 | 蜜桃麻豆www久久囤产精品 | 久久66热这里只有精品 | 日韩精品一区二区三区三炮视频 | av三区在线 | 99在线精品视频观看 | 日韩激情视频在线观看 | 四虎www com | 日本黄色大片免费 | 国产精品成人免费一区久久羞羞 | 国产日韩欧美视频在线观看 | 久久午夜国产 | 国产999精品久久久久久绿帽 | 亚洲1区 在线| 国产精品欧美在线 | 日韩资源在线播放 | 久久伊人热 | 97精品久久| 中文字幕123区 | 欧美日韩有码 | 四月婷婷在线观看 | 国产精品久久久久久电影 | 午夜视频免费在线观看 | 国产成人av在线影院 | 公开超碰在线 | 手机在线视频福利 | 日女人免费视频 | 亚洲在线精品视频 | 久久这里有 | 日韩在线视频免费播放 | 中文字幕精品一区久久久久 | www.在线观看视频 | 国产精美视频 | 国模精品在线 | 青草视频在线免费 | 久久久高清视频 | 黄色一级大片在线观看 | 天天干天天操天天入 | 久久黄色影院 | 97碰碰视频 | 国产成人免费高清 | 狠狠干 狠狠操 | a视频免费看 | 天天做天天爱天天爽综合网 | 国产在线超碰 | 免费高清在线视频一区· | 二区三区在线视频 | 国产3p视频| 国产精品午夜久久久久久99热 | 正在播放五月婷婷狠狠干 | 日韩av资源站 | 天天舔天天搞 | 五月综合在线观看 | 免费观看福利视频 | 久久国产视频网站 | 日韩精品中文字幕久久臀 | 欧美色黄| 伊甸园永久入口www 99热 精品在线 | 成人毛片网 | 中文字幕人成一区 | 亚洲在线成人精品 | 色婷婷在线播放 | 又黄又爽又刺激的视频 | www.日韩免费| 永久av免费在线观看 | 日日夜夜免费精品视频 | 亚洲在线日韩 | 337p西西人体大胆瓣开下部 | 天天综合天天做天天综合 | 欧美精品一区二区蜜臀亚洲 | 亚洲精品xxx | 日本久久高清视频 | 波多野结衣一区二区 | 天天色综合天天 | 奇米网8888| 丁香婷婷色综合亚洲电影 | 国产亚洲日本 | 丰满少妇对白在线偷拍 | 日韩午夜视频在线观看 | 欧美黄污视频 | 国产精品久久影院 | 欧美激情第八页 | 色亚洲网 | 亚洲一区美女视频在线观看免费 | 91视频 - v11av | 国产在线视频一区二区三区 | 日日弄天天弄美女bbbb | 国产亚洲精品久久网站 | 91黄视频在线 | 麻豆视频成人 | 一区二区不卡视频在线观看 | 三级av在线 | 亚洲精品伦理在线 | 黄色www| 丝袜护士aⅴ在线白丝护士 天天综合精品 | 亚洲成熟女人毛片在线 | 久久久三级视频 | 综合婷婷| 国产精品福利av | 国产色婷婷精品综合在线手机播放 | 久久精品com | 亚洲一区二区精品在线 | 91自拍视频在线 | 久久九九国产视频 | 日韩欧美精品免费 | 国内精品中文字幕 | 色综合天天天天做夜夜夜夜做 | 久久精品一二三 | 在线播放国产一区二区三区 | 正在播放国产91 | 久草国产在线观看 | 不卡精品 | 日韩欧美视频在线播放 | 四虎永久免费在线观看 | 天天狠狠操 | 五月天最新网址 | 久久久免费观看视频 | 婷婷亚洲最大 | 98超碰在线| a黄色大片 | 亚洲精品成人网 | 青青看片 | 一区二区精品在线 | 丝袜美腿亚洲综合 | 91亚洲国产成人久久精品网站 | 91一区二区三区久久久久国产乱 | 国产福利一区二区三区在线观看 | 在线视频婷婷 | 69国产成人综合久久精品欧美 | 国产精品一区二区视频 | 91黄色小网站 | 久久久久久久久毛片精品 | 欧美色插 | 97高清免费视频 | 亚洲一区二区视频 | 精品自拍av| 亚洲一级理论片 | 亚洲综合视频在线 | 欧美日韩国产一区二区在线观看 | 一区国产精品 | 成人免费观看a | 狠狠躁日日躁狂躁夜夜躁 | 美女免费网视频 | 天天操天天射天天插 | 国产伦精品一区二区三区免费 | 国产99在线 | 干干夜夜| 91中文字幕网 | av网站地址| 91| 久草精品视频在线播放 | 国产一级黄色免费看 | 超碰日韩在线 | 91久久精品一区二区二区 | 99精品热视频只有精品10 | 久久综合免费 | 91久久偷偷做嫩草影院 | 国产91成人 | 狠狠色婷婷丁香六月 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日韩手机在线 | 欧美性生活免费 | 日日干天天操 | 久久调教视频 | 视频在线在亚洲 | 免费网站在线观看成人 | 福利av在线 | 99视频在线看 | 久久亚洲专区 | www.久久久| 四虎永久免费网站 | 69av视频在线 | 亚洲视屏 | 在线电影日韩 | 天天操天天摸天天爽 | 免费色视频网站 | 精品国产一区二区三区男人吃奶 | 国产黄色理论片 | 人人干干人人 | 成人黄色小说在线观看 | 国产免费叼嘿网站免费 | 在线网站黄 | 色婷婷成人网 | 毛片888 | 久久超碰在线 | 亚洲伊人天堂 | 国产96在线观看 | 九九九国产| 国产午夜三级一二三区 | 国产高清av免费在线观看 | 黄色三级网站 | 99亚洲精品在线 | 日韩极品在线 | 999成人国产| av视屏在线播放 | 欧美 高跟鞋交 xxxxhd | 不卡av电影在线 | 国产精品福利在线观看 | 久久久久久久久久久免费 | 极品久久久久久久 | 亚洲一区二区三区在线看 | 91精品婷婷国产综合久久蝌蚪 | 日日夜夜骑 | 国产成人av电影在线 | 狠狠躁日日躁狂躁夜夜躁av | 麻豆系列在线观看 | 亚洲综合视频在线观看 | 江苏妇搡bbbb搡bbbb | 成人黄色在线 | 99tvdz@gmail.com | 狠狠狠色丁香婷婷综合激情 | 日本在线视频一区二区三区 | 91精品在线看 | 亚洲精品综合欧美二区变态 | 91免费版成人 | 成人一级免费电影 | 91视频免费国产 | 超碰97av在线| 狠狠地操| 91精品国产麻豆 | 色婷婷婷| 97视频在线观看成人 | 中文字幕在线播放日韩 | 免费视频99 | 亚洲国产精品小视频 | 国产精品国产三级在线专区 | 玖操| 麻豆国产精品视频 | 99国产免费网址 | 日韩小视频网站 | 国产精品你懂的在线观看 | 狠狠干我| 在线亚洲精品 | 国产精品久久一区二区三区不卡 | 欧美国产日韩在线观看 | 国产精品成人品 | 日本中文字幕网 | 欧美黄色高清 | 日韩激情小视频 | av激情五月 | 天天操天天干天天操天天干 | 亚洲精品动漫成人3d无尽在线 | 天堂麻豆| 色99导航 | 一区二区三区在线免费观看 | 91在线中文 | 国产 视频 高清 免费 | 中文字幕在线看 | 深夜免费福利在线 | 亚洲 精品在线视频 | 九月婷婷人人澡人人添人人爽 | 中文字幕免费在线看 | 色噜噜狠狠狠狠色综合久不 | 国产第页 | 99热高清 | 国产精品精品国产 | 色在线国产 | 91九色在线观看视频 | 免费亚洲视频 | 黄色亚洲免费 | 天天亚洲综合 | 91mv.cool在线观看 | 精品久久久久久国产偷窥 | 一 级 黄 色 片免费看的 | 久久精品国产精品亚洲 | 欧美日韩亚洲在线观看 | 亚洲黄在线观看 | 少妇bbbb揉bbbb日本 | 日韩三级精品 | 亚洲一区二区高潮无套美女 | 97在线观看免费观看 | 精品国产一区二区三区噜噜噜 | 999精品在线| 日韩视频三区 | 91网址在线看 | 精品国产一区二区三区日日嗨 | 一区中文字幕在线观看 | 一区二区视频网站 | 国产你懂的在线 | 欧美一级日韩免费不卡 | 亚洲午夜久久久久久久久电影网 | 久青草视频在线观看 | 99精品一级欧美片免费播放 | 国产成人综合在线观看 | 精品在线观看免费 | 久久再线视频 | 日韩精品一区二区三区免费观看视频 | 在线草| 成人理论电影 | 免费黄色a级毛片 | 97电影手机 | 97免费中文视频在线观看 | 中文字幕在线观看2018 | 欧美日本中文字幕 | 国产黄色片一级三级 | 国产91精品在线观看 | 免费久久久久久 | 人人草天天草 | 国产精品美女久久久网av | 一区二区欧美日韩 | 国产麻豆视频免费观看 | 日韩中文字幕国产精品 | 色综合a| 国产精品久久久久久久久久久久午夜 | 久久成人视屏 | 亚洲一级免费观看 | 美女免费视频观看网站 | 久久精品99视频 | 玖玖精品在线 | 国产福利91精品一区二区三区 | 久久综合成人网 | 国产精品一区在线观看 | 毛片的网址| 超碰成人免费电影 | 国产xxxx做受性欧美88 | 一级一级一片免费 | 四虎影视精品成人 | 国产一卡二卡在线 | 欧美日韩国产色综合一二三四 | 天天操人人干 | 毛片永久新网址首页 | 日韩精品一区二区在线观看视频 | 日韩视频二区 | 99久久精品免费看国产麻豆 | 91精品国产九九九久久久亚洲 | 亚洲性xxxx| 亚洲久草在线 | 射射色 | 九月婷婷人人澡人人添人人爽 | 五月激情丁香 | 88av视频 | 中文在线8资源库 | 国产精品嫩草影院99网站 | 欧美a性| 91手机在线看片 | 精品一区欧美 | 天天av资源 | 国产精品一区二区在线观看 | 91香蕉嫩草 | 在线观看视频你懂的 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日韩在线视频国产 | 西西4444www大胆艺术 | 日本精品视频在线 | 色婷婷亚洲精品 | 国产手机在线视频 | 97天堂 | 午夜精品一区二区三区四区 | www.久久色| 日日躁夜夜躁xxxxaaaa | 成人免费在线电影 | 日本精品视频免费观看 | 91九色视频 | 国产精品久久久久久久久蜜臀 | 成人18视频 | 国产麻豆传媒 | 天天操天天是 | 六月色婷婷 | 91亚洲精品在线 | 久久99免费观看 | 在线播放av网址 | 成人禁用看黄a在线 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 中文字幕视频在线播放 | 91亚洲精品久久久久图片蜜桃 | 一级片视频在线 | 97超视频在线观看 | www.黄色网.com | 91精品国产福利 | 黄色精品国产 | 国产精品一区免费观看 | 黄网站免费看 | 色狠狠综合 | 欧美一级免费 | 制服丝袜成人在线 | 国产免费小视频 | 婷婷九九 | 国产精品综合av一区二区国产馆 | 国产91全国探花系列在线播放 | 六月丁香激情网 | 91精品国产乱码在线观看 | 三级在线视频观看 | 国产美女被啪进深处喷白浆视频 | 久久夜色精品国产欧美乱极品 | 久久精品国产久精国产 | 91香蕉嫩草| 国产精品中文 | 日韩中文字幕在线不卡 | 色婷婷一区 | 亚洲欧美日韩国产 | 在线免费观看不卡av | 亚洲 欧美 91 | 日韩免费观看一区二区 | 天天色图 | 伊人久久在线观看 | 狠狠ri| 久久国产视频网站 | 手机av观看| 亚洲黄色三级 | 黄色字幕网 | 国产一区视频在线播放 | 伊人va| 四虎成人精品永久免费av | 久久99久国产精品黄毛片入口 | 国产精品免费不卡 | 精品国产一区二区三区免费 | 日韩极品视频在线观看 | 天天操天天插 | 国产精品免费久久久久 | 97视频在线观看播放 | 婷婷色伊人 | 99麻豆久久久国产精品免费 | 国产午夜精品久久久久久久久久 | 国产精品一区二区无线 | 日本激情中文字幕 | 国产精品av免费 | 99精品视频在线观看免费 | 精品在线观看一区二区三区 | 久久九九精品 | 日批视频在线播放 | 在线观看色网站 | 狠狠色狠狠色 |