青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

#

boost的iostreams組件基本上詮釋了stream的概念,但是考慮東西似乎太多了,不管怎么樣都得好好學(xué)學(xué)他的思想。此番重新學(xué)習(xí)一下。

 

模板的世界比較累,先從OOP的視角看看:

image

咋看一下似乎也沒(méi)多少東西,是庫(kù)的作者拿了一堆基礎(chǔ)概念在那玩文字游戲好像。

抽象起來(lái)應(yīng)該是這樣幾個(gè)東東:IIOStream IIStream IOStream IInSeek IOutSeek  IIOSeek IStreamInFilter IStreamOutFilter  IStreamIOFilter

image

看起來(lái)確實(shí)有點(diǎn)惡心,理論和現(xiàn)實(shí)是有差距的,,,唉,,,

接下來(lái)讓他更惡心一點(diǎn),應(yīng)為還缺少一個(gè)Filterable的概念

image

很快出來(lái)一張蜘蛛網(wǎng),,,這也不能說(shuō)過(guò)度設(shè)計(jì)吧,也許有些系統(tǒng)需要這么細(xì)化呢?

不過(guò)看到這張蜘蛛網(wǎng)之后果斷決定我后面練手絕對(duì)不要這么負(fù)責(zé),可以考慮v神的做法,接口都是全的,但是功能不一定,使用的不支持的接口就弄個(gè)提示啥的。。。

image

這樣看上去是那么回事了,,,seek被提煉到stream里邊,filter添加sink的概念,或者直接用delegate更合適?

posted @ 2013-07-28 23:02 Enic 閱讀(382) | 評(píng)論 (0)編輯 收藏

        node.js從誕生之初就是充分考慮了在實(shí)時(shí)響應(yīng)、超大規(guī)模數(shù)據(jù)要求下的可擴(kuò)展性。這使得他擯棄了傳統(tǒng)平臺(tái)依靠多線程來(lái)實(shí)現(xiàn)高并發(fā)的設(shè)計(jì)思路,而是采用了單線程、異步式I/O,事件驅(qū)動(dòng)的程序設(shè)計(jì)模式。這些特性不僅帶來(lái)了巨大的性能提升,還減少了多線程程序設(shè)計(jì)的復(fù)雜性,進(jìn)而提高了開(kāi)發(fā)效率。

Q1:單線程怎么可能榨干多核系統(tǒng)性能?

 

        node.js最大的特點(diǎn)就是采用異步I/O與事件驅(qū)動(dòng)的架構(gòu)設(shè)計(jì)。對(duì)于高并發(fā)方案,傳統(tǒng)的架構(gòu)是多線程模型,也就是為每個(gè)業(yè)務(wù)邏輯提供一個(gè)系統(tǒng)線程,通過(guò)系統(tǒng)線程切換來(lái)彌補(bǔ)同步式I/O調(diào)度的時(shí)間開(kāi)銷。node.js是單線程模型,對(duì)于所有的I/O操作都采用異步請(qǐng)求方式,避免了頻繁的上下文切換。node.js在支持的過(guò)程中會(huì)維護(hù)一個(gè)時(shí)間隊(duì)列,程序在執(zhí)行時(shí)進(jìn)入時(shí)間循環(huán)等待下一個(gè)事件到來(lái),每個(gè)異步I/O請(qǐng)求完成之后會(huì)被推送到事件隊(duì)列,等待程序進(jìn)行處理。

C1:每業(yè)務(wù)邏輯每線程應(yīng)該是上個(gè)世紀(jì)的方案了。本世紀(jì)至少有任務(wù)池和線程池方案,牛逼的還有根據(jù)系統(tǒng)個(gè)邏輯任務(wù)的負(fù)載情況動(dòng)態(tài)調(diào)度。

 

image

想起來(lái)網(wǎng)狐的AttempterEnging已經(jīng)有這個(gè)味道了,只是沒(méi)有提升到理論高度。

 

 

        node.js最大的特點(diǎn)就是異步I/O與事件緊密結(jié)合的編程模式。這種模式與傳統(tǒng)的同步模式I/O線型編程的思路有很大不同,應(yīng)為控制流很大程序上要靠事件和回調(diào)來(lái)組織,一個(gè)邏輯要拆分成若干個(gè)單元。

異步I/O擴(kuò)展一下就是把能“并發(fā)的邏輯抽取出來(lái),讓有空余負(fù)載的‘cpu’去執(zhí)行,原負(fù)載‘cpu’可以去執(zhí)行其他需要實(shí)時(shí)響應(yīng)的邏輯”

 

node.js核心模塊

process: processs是一個(gè)全局變量,即global對(duì)象的屬性。他用于描述node.js進(jìn)程的狀態(tài),提供一個(gè)與操作系統(tǒng)的簡(jiǎn)單接口。

console: console用于提供控制臺(tái)標(biāo)準(zhǔn)輸出,用于向標(biāo)準(zhǔn)輸出流或標(biāo)準(zhǔn)輸入流輸出字符

 

事件發(fā)射器:

events模塊只提供一個(gè)對(duì)象:events.EventEmitter,他的核心就是時(shí)間發(fā)射與事件監(jiān)聽(tīng)功能的封裝。EventEmitter的每個(gè)事件由一個(gè)事件名和若干個(gè)時(shí)間參數(shù)組成,事件名是一個(gè)字符串,通常表達(dá)一定的語(yǔ)義。對(duì)于每個(gè)事件EventEmitter支持若干個(gè)事件監(jiān)聽(tīng)器。當(dāng)時(shí)間發(fā)射時(shí),注冊(cè)到這個(gè)事件的監(jiān)聽(tīng)器被依次調(diào)用,事件參數(shù)作為回調(diào)函數(shù)參數(shù)傳遞。

EventEmitter.on(event, listener)  為指定事件注冊(cè)一個(gè)監(jiān)聽(tīng)器,接收一個(gè)字符串event和一個(gè)回調(diào)函數(shù)listener

EventEmitter.emic(event, args)  發(fā)射event事件,傳遞若干個(gè)可選參數(shù)到事件監(jiān)聽(tīng)器參數(shù)列表

EventEmitter.once(event, listener)  為指定事件注冊(cè)一個(gè)單次監(jiān)聽(tīng)器,即觸發(fā)一次后自動(dòng)解除注冊(cè)

EventEmitter.removeListener(event, listener) 解除注冊(cè)

EventEmitter.removeAllListeners(event) 移出所有時(shí)間的所有監(jiān)聽(tīng)器

 

error事件:EventEmitter定義了一個(gè)特殊的事件Error,他包含了錯(cuò)誤的語(yǔ)義,在遇到異常的時(shí)候通常會(huì)發(fā)射error事件,當(dāng)error被發(fā)射時(shí),EventEmitter規(guī)定如果沒(méi)有相應(yīng)的監(jiān)聽(tīng)器,node.js會(huì)把它當(dāng)作一場(chǎng),退出程序并打印調(diào)用棧。

 

大多數(shù)時(shí)候不會(huì)直接用EventEmitter而是在對(duì)象中繼承他,只要是支持事件響應(yīng)的核心模塊都是EventEmitter的子類。

posted @ 2013-07-28 19:42 Enic 閱讀(261) | 評(píng)論 (0)編輯 收藏

Microsoft Windows [版本 6.1.7601]
版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利
C:\Users\Error>powercfg -h off
C:\Users\Error>hiberfil.sys
posted @ 2013-07-14 01:00 Enic 閱讀(156) | 評(píng)論 (0)編輯 收藏

     摘要: setTimeout((function(){ (function(sogouExplorer){ if (sogouExplorer == undefined) return; sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);}); //alert("content script stop js loade...  閱讀全文
posted @ 2013-05-28 23:42 Enic 閱讀(8317) | 評(píng)論 (1)編輯 收藏

tem
http://pan.baidu.com/share/link?shareid=631477&uk=3409399491&third=15
http://pan.baidu.com/share/link?shareid=631480&uk=3409399491&third=15
http://pan.baidu.com/share/link?shareid=631483&uk=3409399491&third=15
posted @ 2013-04-27 07:29 Enic 閱讀(179) | 評(píng)論 (0)編輯 收藏

// filename: import_gdiplus.h
// author: enic
// date: 2013-04-18
#pragma once
#include <GdiPlus.h>
#pragma comment(lib,"GdiPlus.lib")
namespace {
class CAutoInitGdiPlusEnvionment
{
public:
    CAutoInitGdiPlusEnvionment()
    {
        Gdiplus::GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);
    }
    
    ~CAutoInitGdiPlusEnvionment()
    {
        Gdiplus::GdiplusShutdown(m_gdiplusToken);
    }
    
private:
    Gdiplus::GdiplusStartupInput m_gdiplusStartupInput;
    ULONG_PTR m_gdiplusToken;
};
static CAutoInitGdiPlusEnvionment autoInitGdiPlus;
};
posted @ 2013-04-19 00:39 Enic 閱讀(249) | 評(píng)論 (0)編輯 收藏

老外真辛苦:

http://stackoverflow.com/questions/11580748/using-cmake-for-making-a-project-which-includes-mfc

http://www.cmake.org/Wiki/CMake_FAQ

You need to add _AFXDLL to the preprocessor definitions and set the CMake variable CMAKE_MFC_FLAG to 1 for the static MFC library, or 2 for the shared one.

add_definitions(-D_AFXDLL)
set(CMAKE_MFC_FLAG 1)

For further info run

cmake --help-variable CMAKE_MFC_FLAG
posted @ 2013-04-13 23:51 Enic 閱讀(447) | 評(píng)論 (0)編輯 收藏

找到這樣的代碼修改了以后還是不行

if (NOT TARGET Qt5::Core)
    add_library(Qt5::Core SHARED IMPORTED)

    _populate_imported_target_properties(DEBUG "Qt5Cored.dll" "Qt5Cored.lib" )

 

    _populate_imported_target_properties(RELEASE "Qt5Core.dll" "Qt5Core.lib" )

    # add by enic
    _populate_imported_target_properties(RELWITHDEBINFO "Qt5Core.dll" "Qt5Core.lib" )

endif()

 

 

看來(lái)和編譯器編譯出來(lái)的格式相關(guān)了

3>Build started 2013/4/13 22:21:33.
3>qtmaind.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in MainEntry.obj
3>qtmaind.lib(qtmain_win.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in MainEntry.obj
3>MSVCRT.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
3>F:\working_space\qt\cmake_qt_learn\cmake_result\RelWithDebInfo\qtUsingCMake.exe : fatal error LNK1319: 2 mismatches detected

 

仔細(xì)一看,不是,,,泥馬,原來(lái)是qtmain搞的鬼,,,

繼續(xù)找,,,

if (NOT TARGET Qt5::WinMain)
    add_library(Qt5::WinMain STATIC IMPORTED)

    set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
    set_target_properties(Qt5::WinMain PROPERTIES
        IMPORTED_LOCATION_DEBUG "${_qt5_corelib_install_prefix}/lib/qtmaind.lib"
    )

    set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
    set_target_properties(Qt5::WinMain PROPERTIES
        IMPORTED_LOCATION_RELEASE "${_qt5_corelib_install_prefix}/lib/qtmain.lib"
    )
   
    # add by enic
    set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELWITHDEBINFO)
    set_target_properties(Qt5::WinMain PROPERTIES
        IMPORTED_LOCATION_RELEASE "${_qt5_corelib_install_prefix}/lib/qtmain.lib"
    )
endif()

 

這里還藏著在,,,

繼續(xù)報(bào)錯(cuò):

3>Build started 2013/4/13 22:25:24.
3>qtmaind.lib(qtmain_win.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in MainEntry.obj
3>qtmaind.lib(qtmain_win.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in MainEntry.obj
3>MSVCRT.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
3>F:\working_space\qt\cmake_qt_learn\cmake_result\RelWithDebInfo\qtUsingCMake.exe : fatal error LNK1319: 2 mismatches detected

 

這下感覺(jué)在想找*.cmake找到就比較麻煩了,,,

繼續(xù)分析

set_target_properties(Qt5::WinMain PROPERTIES
IMPORTED_LOCATION_RELEASE "${_qt5_corelib_install_prefix}/lib/qtmain.lib"
)

 

這東西可疑,,,

改IMPORTED_LOCATION_RELWITHDEBINFO,rebuild,搞定,,,

posted @ 2013-04-13 22:33 Enic 閱讀(1128) | 評(píng)論 (0)編輯 收藏

傳說(shuō)中QT內(nèi)存管理很牛逼,只管new不管delete。

很理智的一點(diǎn)的分析是,如果把控件的層次關(guān)系看成一顆樹,那么父節(jié)點(diǎn)負(fù)責(zé)delete子節(jié)點(diǎn)。

再牛逼一點(diǎn)的分析是:

http://mobile.51cto.com/symbian-271956.htm

Qt 內(nèi)存管理是本文將要介紹的內(nèi)容,在QT的程序中經(jīng)常會(huì)看到只有new而不delete的情況,其實(shí)是因?yàn)?strong>QT有一套回收內(nèi)存的機(jī)制,主要的規(guī)則如下:

1、所有繼承自QOBJECT類的類,如果在new的時(shí)候指定了父親,那么它的清理時(shí)在父親被delete的時(shí)候delete的,所以如果一個(gè)程序中,所有的QOBJECT類都指定了父親,那么他們是會(huì)一級(jí)級(jí)的在最上面的父親清理時(shí)被清理,而不用自己清理;

2、程序通常最上層會(huì)有一個(gè)根的QOBJECT,就是放在setCentralWidget()中的那個(gè)QOBJECT,這個(gè)QOBJECT在 new的時(shí)候不必指定它的父親,因?yàn)檫@個(gè)語(yǔ)句將設(shè)定它的父親為總的QAPPLICATION,當(dāng)整個(gè)QAPPLICATION沒(méi)有時(shí)它就自動(dòng)清理,所以也無(wú)需清理。9這里QT4和QT3有不同,QT3中用的是setmainwidget函數(shù),但是這個(gè)函數(shù)不作為里面QOBJECT的父親,所以QT3中這個(gè)頂層的QOBJECT要自行銷毀)。

3、這是有人可能會(huì)問(wèn)那如果我自行delete掉這些QT接管負(fù)責(zé)銷毀的指針了會(huì)出現(xiàn)什么情況呢,如果時(shí)這樣的話,正常情況下QT的擁有這個(gè)對(duì)象的那個(gè)父親會(huì)知道這件事情,它會(huì)直到它的兒子被你直接DELETE了,這樣它會(huì)將這個(gè)兒子移出它的列表,并且重新構(gòu)建顯示內(nèi)容,但是直接這樣做時(shí)有風(fēng)險(xiǎn)的!也就是要說(shuō)的下一條

4、當(dāng)一個(gè)QOBJECT正在接受事件隊(duì)列時(shí)如果中途被你DELETE掉了,就是出現(xiàn)問(wèn)題了,所以QT中建議大家不要直接DELETE掉一個(gè) QOBJECT,如果一定要這樣做,要使用QOBJECT的deleteLater()函數(shù),它會(huì)讓所有事件都發(fā)送完一切處理好后馬上清除這片內(nèi)存,而且就算調(diào)用多次的deletelater也不會(huì)有問(wèn)題。

5、QT不建議在一個(gè)QOBJECT 的父親的范圍之外持有對(duì)這個(gè)QOBJECT的指針,因?yàn)槿绻@樣外面的指針很可能不會(huì)察覺(jué)這個(gè)QOBJECT被釋放,會(huì)出現(xiàn)錯(cuò)誤,如果一定要這樣,就要記住你在哪這樣做了,然后抓住那個(gè)被你違規(guī)使用的QOBJECT的destroyed()信號(hào),當(dāng)它沒(méi)有時(shí)趕快置零你的外部指針。當(dāng)然我認(rèn)為這樣做是及其麻煩也不符合高效率編程規(guī)范的,所以如果要這樣在外部持有QOBJECT的指針,建議使用引用或者用智能指針,如QT就提供了智能指針針對(duì)這些情況,見(jiàn)最后一條。

6、QT中的智能指針?lè)庋b為QPointer類,所有QOBJECT的子類都可以用這個(gè)智能指針來(lái)包裝,很多用法與普通指針一樣,可以詳見(jiàn)QT assistant

通過(guò)調(diào)查這個(gè)QT內(nèi)存管理功能,發(fā)現(xiàn)了很多東西,現(xiàn)在覺(jué)得雖然這個(gè)QT弄的有點(diǎn)小復(fù)雜,但是使用起來(lái)還是很方便的,最后要說(shuō)的是某些內(nèi)存泄露的檢測(cè)工具會(huì)認(rèn)為QT的程序因?yàn)檫@種方式存在內(nèi)存泄露,發(fā)現(xiàn)時(shí)大可不必理會(huì)。

 

 

 

 

/////////////////////

看完上面的分析,我寫了這樣幾行代碼:

// 給設(shè)置一個(gè)我理解的,離開(kāi)函數(shù)作用域會(huì)失效的layout
void AddLayoutForWidget(QWidget& w)
{
    QVBoxLayout mainLayout;// = new QVBoxLayout;
    w.setLayout(&mainLayout);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    
    QWidget w;
    AddLayoutForWidget(w);

    QPushButton pushButton;
    w.layout()->addWidget(&pushButton);

    w.show();
    return a.exec();
}

果然程序崩了,證明QT的內(nèi)存管理估計(jì)也逃不開(kāi)普通的智能指針的局限。就是必須要new出來(lái),,,

囧,我一直想寫一個(gè)智能指針(入侵)在使用棧上變量的時(shí)候,能識(shí)別出來(lái),然后析構(gòu)不調(diào)用delete this,,,

 

沒(méi)得抄啊,,,

posted @ 2013-04-13 21:57 Enic 閱讀(397) | 評(píng)論 (1)編輯 收藏

http://stackoverflow.com/questions/14115024/how-to-link-qtmain-in-cmake-with-qt5

老外真辛苦:

I upgraded my project code from Qt4 to Qt5. It uses CMake. The conversion got well except for one line of Cmake commands related to Qt. I can’t find in current documentation, like

How to link with QtMain from CMake (with Qt5)?

It is the only missing bit to convert my project. Can someone point me to a doc explaining this or explain how to do it with Qt5? My Qt4 code worked correctly but the macro I can't find the Cmake macro for Qt5.

EDIT> Here is the CMake file I have at the moment:https://bitbucket.org/klaim/aos_qt5/src/593c195c4c6889f6968d68fca018ef425783a063/tools/aosdesigner/CMakeLists.txt?at=wip_qt5

All qt5 necessary CMake macros have been set correctly I belive, the only thing that don't work is the linking to QtMain that do nothing, as expected since there should be a Qt5 specific way of doing it that I don't find in the Qt5 documentation.

You can browse the file history to see how it was working with Qt4.

 

EDIT : Thanks to Archi comment (see below), simply add

target_link_libraries(<your_app> Qt5::WinMain)

or

target_link_libraries(<your_app> ${Qt5Core_QTMAIN_LIBRARIES})

in your application's CMakeLists.txt. Both syntaxes worked for me.

 

 

//////////////////////

順便提下CMAKE 2.8.10上有的一個(gè)特性:

ADD_EXECUTABLE(**  WIN32 **)

posted @ 2013-04-13 21:25 Enic 閱讀(2874) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題
共22頁(yè): First 12 13 14 15 16 17 18 19 20 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲大片精品永久免费| 欧美精品一区二区三区一线天视频 | 欧美亚洲午夜视频在线观看| 怡红院av一区二区三区| 一区二区三区国产精华| 亚洲日本免费| 久久亚洲精品欧美| 久久国产一区二区三区| 国产精品女人久久久久久| 亚洲精品视频在线播放| 亚洲国产欧美另类丝袜| 久久美女艺术照精彩视频福利播放| 欧美一进一出视频| 国产精品久久久久aaaa| 亚洲久久成人| 一区二区三区高清在线 | 久久久久久久久岛国免费| 午夜久久tv| 国产精品普通话对白| 一本久久a久久精品亚洲| 99伊人成综合| 欧美精品在线视频| 亚洲精品永久免费| 一区二区国产日产| 欧美美女福利视频| 亚洲精品一区二区三区不| 亚洲美女福利视频网站| 欧美理论电影在线观看| 亚洲国产三级在线| 夜夜嗨av一区二区三区免费区| 欧美成人精品在线| 亚洲三级电影全部在线观看高清| 一本色道久久88综合亚洲精品ⅰ | 亚洲网站视频| 国产精品大片wwwwww| 亚洲无限av看| 久久久久久亚洲综合影院红桃| 激情丁香综合| 美女主播一区| 99国产精品久久久久久久久久| 亚洲一区二区三区视频播放| 国产老女人精品毛片久久| 欧美一二三区在线观看| 久久综合色综合88| 亚洲美女一区| 国产精品亚洲人在线观看| 欧美一级大片在线观看| 麻豆精品网站| 亚洲无吗在线| 国产一区观看| 欧美剧在线免费观看网站| 亚洲色诱最新| 免费欧美高清视频| 国产精品99久久久久久久女警 | 黑人巨大精品欧美一区二区小视频| 久久久久国产精品午夜一区| 亚洲老板91色精品久久| 欧美伊人精品成人久久综合97| 在线不卡中文字幕| 欧美日韩精品系列| 久久精品国产亚洲高清剧情介绍| 91久久综合亚洲鲁鲁五月天| 欧美一区二区视频在线| 亚洲精品综合精品自拍| 国产欧美亚洲精品| 欧美精品在线观看播放| 久久gogo国模啪啪人体图| 亚洲免费高清| 欧美**人妖| 欧美在线观看视频| 99视频有精品| 1000精品久久久久久久久| 欧美午夜电影在线| 免费成人高清视频| 欧美一区日韩一区| 一本色道久久综合狠狠躁篇的优点| 久久嫩草精品久久久精品| 亚洲视频在线观看三级| 亚洲三级免费电影| 国内揄拍国内精品久久| 国产精品久久久久aaaa九色| 久久亚洲精品一区二区| 欧美一区二区三区免费视频| 亚洲欧洲日本在线| 欧美高清视频在线播放| 久久久国产91| 欧美一区二视频在线免费观看| 亚洲美女免费精品视频在线观看| 极品尤物av久久免费看 | 亚洲精品综合| 尤物精品国产第一福利三区 | 另类激情亚洲| 久久精品亚洲精品| 欧美一区二区三区日韩视频| 中文高清一区| 亚洲少妇诱惑| 一本综合精品| 99热在这里有精品免费| 亚洲精品日韩久久| 91久久精品国产91性色tv| 在线精品国产成人综合| 国内精品久久久久久久影视麻豆| 国产日产精品一区二区三区四区的观看方式 | 亚洲一级一区| 亚洲素人在线| 亚洲综合丁香| 欧美一级黄色录像| 欧美一区网站| 久久精品国产综合精品| 久久久成人网| 裸体一区二区| 亚洲春色另类小说| 亚洲国产综合91精品麻豆| 亚洲国产精品va在看黑人| 91久久精品国产91性色| 亚洲精品久久久一区二区三区| 亚洲欧洲午夜| 一本色道久久综合亚洲二区三区| 亚洲视频免费| 欧美一级理论片| 久久久人成影片一区二区三区 | 久久国产精品久久久久久电车| 欧美自拍丝袜亚洲| 免费在线国产精品| 欧美区在线观看| 国产精品实拍| 在线播放豆国产99亚洲| 99国产精品99久久久久久| 亚洲一区二区三区四区视频| 欧美一区观看| 免费中文字幕日韩欧美| 亚洲精品欧美专区| 亚洲一区二区三区在线观看视频 | 亚洲成色www久久网站| 亚洲精品在线电影| 亚洲欧美日韩国产综合在线| 久久久91精品国产一区二区精品| 欧美成人精品不卡视频在线观看| 亚洲精品国精品久久99热一| 亚洲欧美国产视频| 久久亚洲综合色| 国产精品xxx在线观看www| 黄色精品一区| 亚洲手机在线| 男女激情久久| 亚洲一级片在线看| 老牛国产精品一区的观看方式| 欧美日韩一区二区在线观看| 国产在线视频欧美| 这里只有精品电影| 久久中文精品| 亚洲一区二区成人在线观看| 久久久综合精品| 国产精品乱码久久久久久| 亚洲人成人一区二区在线观看| 午夜激情亚洲| 亚洲日本乱码在线观看| 久久精品一区中文字幕| 国产精品国产三级国产专区53| 亚洲第一级黄色片| 欧美自拍丝袜亚洲| 日韩视频免费观看高清在线视频| 久久精品亚洲精品国产欧美kt∨| 欧美视频一区在线| 亚洲欧洲一区二区三区久久| 久久精品午夜| 亚洲一区二区综合| 欧美日韩精品免费观看视频| 亚洲国产91精品在线观看| 欧美中在线观看| 亚洲午夜激情| 欧美日韩免费观看一区| 亚洲欧洲一区二区三区久久| 久久亚洲二区| 久久国产精品黑丝| 国产日韩av高清| 午夜精品福利在线| 一区二区三区欧美在线观看| 欧美韩国在线| 亚洲精品欧美一区二区三区| 男人的天堂成人在线| 久久精品九九| 黄色日韩精品| 美女视频黄免费的久久| 久久久久国产精品麻豆ai换脸| 国产欧美日韩91| 久久成人免费网| 香蕉乱码成人久久天堂爱免费| 国产精品视频网站| 午夜在线视频一区二区区别| 亚洲线精品一区二区三区八戒| 欧美日韩综合在线免费观看| 亚洲午夜免费福利视频| 一本色道久久99精品综合 | 亚洲色图在线视频| 日韩亚洲成人av在线| 欧美日韩亚洲成人| 亚洲综合国产精品| 亚洲欧美日本另类| 国产一区二区在线观看免费播放|