亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stream.h

?? 浙江大學(xué)的悟空嵌入式系統(tǒng)模擬器
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
    // to be implemented in the derived classes (it should have been pure
    // virtual)
    virtual size_t OnSysWrite(const void *buffer, size_t bufsize);

    friend class wxStreamBuffer;
};

// ============================================================================
// helper stream classes
// ============================================================================

// ---------------------------------------------------------------------------
// A stream for measuring streamed output
// ---------------------------------------------------------------------------

class WXDLLEXPORT wxCountingOutputStream : public wxOutputStream
{
public:
    wxCountingOutputStream();

    size_t GetSize() const;
    bool Ok() const { return TRUE; }

protected:
    virtual size_t OnSysWrite(const void *buffer, size_t size);
    virtual off_t OnSysSeek(off_t pos, wxSeekMode mode);
    virtual off_t OnSysTell() const;

    size_t m_currentPos;
};

// ---------------------------------------------------------------------------
// "Filter" streams
// ---------------------------------------------------------------------------

class WXDLLEXPORT wxFilterInputStream : public wxInputStream
{
public:
    wxFilterInputStream();
    wxFilterInputStream(wxInputStream& stream);
    virtual ~wxFilterInputStream();

    char Peek() { return m_parent_i_stream->Peek(); }

    size_t GetSize() const { return m_parent_i_stream->GetSize(); }

    wxInputStream *GetFilterInputStream() const { return m_parent_i_stream; }

protected:
    wxInputStream *m_parent_i_stream;
};

class WXDLLEXPORT wxFilterOutputStream : public wxOutputStream
{
public:
    wxFilterOutputStream();
    wxFilterOutputStream(wxOutputStream& stream);
    virtual ~wxFilterOutputStream();

    size_t GetSize() const { return m_parent_o_stream->GetSize(); }

    wxOutputStream *GetFilterOutputStream() const { return m_parent_o_stream; }

protected:
    wxOutputStream *m_parent_o_stream;
};

// ============================================================================
// buffered streams
// ============================================================================

// ---------------------------------------------------------------------------
// Stream buffer: this class can be derived from and passed to
// wxBufferedStreams to implement custom buffering
// ---------------------------------------------------------------------------

class WXDLLEXPORT wxStreamBuffer
{
public:
    enum BufMode
    {
        read,
        write,
        read_write
    };

    wxStreamBuffer(wxStreamBase& stream, BufMode mode);
    wxStreamBuffer(const wxStreamBuffer& buf);
    virtual ~wxStreamBuffer();

    // Filtered IO
    virtual size_t Read(void *buffer, size_t size);
    size_t Read(wxStreamBuffer *buf);
    virtual size_t Write(const void *buffer, size_t size);
    size_t Write(wxStreamBuffer *buf);

    virtual char Peek();
    virtual char GetChar();
    virtual void PutChar(char c);
    virtual off_t Tell() const;
    virtual off_t Seek(off_t pos, wxSeekMode mode);

    // Buffer control
    void ResetBuffer();

    // NB: the buffer must always be allocated with malloc() if takeOwn is
    //     TRUE as it will be deallocated by free()
    void SetBufferIO(void *start, void *end, bool takeOwnership = FALSE);
    void SetBufferIO(void *start, size_t len, bool takeOwnership = FALSE);
    void SetBufferIO(size_t bufsize);
    void *GetBufferStart() const { return m_buffer_start; }
    void *GetBufferEnd() const { return m_buffer_end; }
    void *GetBufferPos() const { return m_buffer_pos; }
    size_t GetBufferSize() const { return m_buffer_size; }
    size_t GetIntPosition() const { return m_buffer_pos - m_buffer_start; }
    void SetIntPosition(size_t pos) { m_buffer_pos = m_buffer_start + pos; }
    size_t GetLastAccess() const { return m_buffer_end - m_buffer_start; }
    size_t GetBytesLeft() const { return m_buffer_end - m_buffer_pos; }

    void Fixed(bool fixed) { m_fixed = fixed; }
    void Flushable(bool f) { m_flushable = f; }

    bool FlushBuffer();
    bool FillBuffer();
    size_t GetDataLeft();

    // misc accessors
    wxStreamBase *GetStream() const { return m_stream; }
    bool HasBuffer() const { return m_buffer_size != 0; }

    bool IsFixed() const { return m_fixed; }
    bool IsFlushable() const { return m_flushable; }

    // only for input/output buffers respectively, returns NULL otherwise
    wxInputStream *GetInputStream() const;
    wxOutputStream *GetOutputStream() const;

    // deprecated, for compatibility only
    wxStreamBase *Stream() { return m_stream; }

    // this constructs a dummy wxStreamBuffer, used by (and exists for)
    // wxMemoryStreams only, don't use!
    wxStreamBuffer(BufMode mode);

protected:
    void GetFromBuffer(void *buffer, size_t size);
    void PutToBuffer(const void *buffer, size_t size);

    // set the last error to the specified value if we didn't have it before
    void SetError(wxStreamError err);

    // common part of several ctors
    void Init();

    // init buffer variables to be empty
    void InitBuffer();

    // free the buffer (always safe to call)
    void FreeBuffer();

    // the buffer itself: the pointers to its start and end and the current
    // position in the buffer
    char *m_buffer_start,
         *m_buffer_end,
         *m_buffer_pos;

    // the buffer size
    // FIXME: isn't it the same as m_buffer_end - m_buffer_start? (VZ)
    size_t m_buffer_size;

    // the stream we're associated with
    wxStreamBase *m_stream;

    // its mode
    BufMode m_mode;

    // flags
    bool m_destroybuf,      // deallocate buffer?
         m_fixed,
         m_flushable;
};

// ---------------------------------------------------------------------------
// wxBufferedInputStream
// ---------------------------------------------------------------------------

class WXDLLEXPORT wxBufferedInputStream : public wxFilterInputStream
{
public:
    // if a non NULL buffer is given to the stream, it will be deleted by it
    wxBufferedInputStream(wxInputStream& stream,
                          wxStreamBuffer *buffer = NULL);
    virtual ~wxBufferedInputStream();

    char Peek();
    wxInputStream& Read(void *buffer, size_t size);

    // Position functions
    off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart);
    off_t TellI() const;

    // the buffer given to the stream will be deleted by it
    void SetInputStreamBuffer(wxStreamBuffer *buffer);
    wxStreamBuffer *GetInputStreamBuffer() const { return m_i_streambuf; }

    // deprecated, for compatibility only
    wxStreamBuffer *InputStreamBuffer() const { return m_i_streambuf; }

protected:
    virtual size_t OnSysRead(void *buffer, size_t bufsize);
    virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
    virtual off_t OnSysTell() const;

    wxStreamBuffer *m_i_streambuf;
};

// ----------------------------------------------------------------------------
// wxBufferedOutputStream
// ----------------------------------------------------------------------------

class WXDLLEXPORT wxBufferedOutputStream : public wxFilterOutputStream
{
public:
    // if a non NULL buffer is given to the stream, it will be deleted by it
    wxBufferedOutputStream(wxOutputStream& stream,
                           wxStreamBuffer *buffer = NULL);
    virtual ~wxBufferedOutputStream();

    wxOutputStream& Write(const void *buffer, size_t size);

    // Position functions
    off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart);
    off_t TellO() const;

    void Sync();

    size_t GetSize() const;

    // the buffer given to the stream will be deleted by it
    void SetOutputStreamBuffer(wxStreamBuffer *buffer);
    wxStreamBuffer *GetOutputStreamBuffer() const { return m_o_streambuf; }

    // deprecated, for compatibility only
    wxStreamBuffer *OutputStreamBuffer() const { return m_o_streambuf; }

protected:
    virtual size_t OnSysWrite(const void *buffer, size_t bufsize);
    virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
    virtual off_t OnSysTell() const;

    wxStreamBuffer *m_o_streambuf;
};

#endif // wxUSE_STREAMS

#endif // _WX_WXSTREAM_H__

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜视频免费看| 色琪琪一区二区三区亚洲区| 国产乱子轮精品视频| bt欧美亚洲午夜电影天堂| 欧美美女激情18p| 中文字幕中文字幕一区| 免费不卡在线视频| 色88888久久久久久影院按摩| 欧美va在线播放| 亚洲一区二区三区国产| 成人福利视频在线| 久久精品网站免费观看| 免费久久精品视频| 欧美日韩不卡一区| 怡红院av一区二区三区| 成人在线综合网站| 久久综合999| 精品一区二区三区久久| 5858s免费视频成人| 亚洲一区二区影院| 色综合久久综合中文综合网| 亚洲国产成人一区二区三区| 久久成人久久爱| 日韩一区二区三区四区五区六区| 亚洲国产日韩在线一区模特 | 国产日韩综合av| 久久精品av麻豆的观看方式| 欧美日韩久久一区二区| 亚洲国产一区二区三区| 欧美在线999| 夜夜亚洲天天久久| 欧美亚洲动漫制服丝袜| 一区二区三区色| 欧洲一区二区三区在线| 中文字幕不卡一区| 波多野结衣中文字幕一区二区三区| 精品日韩一区二区三区| 激情伊人五月天久久综合| 日韩视频不卡中文| 韩国成人在线视频| 亚洲国产精品国自产拍av| 成人丝袜18视频在线观看| 国产精品视频在线看| 成人国产电影网| 亚洲伦理在线精品| 欧美日韩亚洲综合在线| 午夜国产不卡在线观看视频| 91麻豆精品国产91久久久久| 蜜臀99久久精品久久久久久软件 | av在线这里只有精品| 亚洲欧美日韩一区| 欧美日韩不卡在线| 国产一区二区三区观看| 国产精品日产欧美久久久久| 99re亚洲国产精品| 午夜欧美大尺度福利影院在线看| 日韩欧美在线影院| 韩国av一区二区| 国产精品传媒视频| 欧美电影一区二区| 国产不卡免费视频| 亚洲不卡av一区二区三区| 欧美成人在线直播| 不卡视频免费播放| 亚洲香肠在线观看| 精品国产凹凸成av人网站| k8久久久一区二区三区 | www.成人在线| 亚洲r级在线视频| 国产亚洲欧美日韩在线一区| 色诱亚洲精品久久久久久| 日韩精品视频网站| 国产精品久久久久9999吃药| 欧美高清视频www夜色资源网| 国产一区二区三区最好精华液| 亚洲日本青草视频在线怡红院 | 26uuu另类欧美亚洲曰本| 不卡视频免费播放| 麻豆91小视频| 亚洲一区精品在线| 亚洲国产精品精华液ab| 91精品国产综合久久国产大片| 国产精品88av| 日日摸夜夜添夜夜添精品视频| 中文字幕国产一区| 日韩精品中文字幕一区 | 欧美日韩国产中文| 床上的激情91.| 久久精品国产网站| 亚洲成av人片在www色猫咪| 国产农村妇女毛片精品久久麻豆| 欧美精品久久99| 欧美午夜精品一区| 蜜臀av一区二区三区| 夜夜嗨av一区二区三区| 欧美激情一区二区三区四区 | 不卡的av网站| 国产又黄又大久久| 日韩电影免费在线看| 洋洋av久久久久久久一区| 国产精品电影一区二区三区| 亚洲精品一线二线三线无人区| 欧美日韩一区二区欧美激情| 色妹子一区二区| 成人18精品视频| 国产99久久久国产精品免费看| 美腿丝袜亚洲三区| 人人超碰91尤物精品国产| 亚洲一区二区高清| 亚洲综合成人在线| 亚洲综合自拍偷拍| 一个色综合av| 一区二区三区电影在线播| 国产精品国产三级国产aⅴ原创| 久久精品人人爽人人爽| 亚洲精品一区二区三区蜜桃下载| 91精品欧美综合在线观看最新| 欧美日韩精品福利| 欧美精品在线观看一区二区| 欧美系列日韩一区| 欧美日韩一级大片网址| 欧美日本一区二区在线观看| 欧美精品亚洲一区二区在线播放| 欧美无砖专区一中文字| 欧美日韩精品免费| 日韩一区二区三区免费观看 | 欧美少妇性性性| 欧美视频在线不卡| 91精品啪在线观看国产60岁| 日韩一区二区三区电影在线观看| 欧美不卡视频一区| 久久精品欧美日韩| 最新热久久免费视频| 亚洲人成小说网站色在线| 亚洲国产成人av| 蜜臀99久久精品久久久久久软件| 久久国产精品无码网站| 国产白丝精品91爽爽久久| 91伊人久久大香线蕉| 欧美日韩午夜影院| 2024国产精品| 日本一区二区三区dvd视频在线| 中文字幕一区二区三区蜜月| 亚洲综合色丁香婷婷六月图片| 国产91高潮流白浆在线麻豆| 高清久久久久久| 在线观看日韩高清av| 日韩美女主播在线视频一区二区三区| 久久婷婷久久一区二区三区| 亚洲同性同志一二三专区| 日韩成人免费电影| 成人丝袜高跟foot| 欧美酷刑日本凌虐凌虐| 中文av一区特黄| 亚洲h动漫在线| 国产成人精品三级| 8v天堂国产在线一区二区| 久久久夜色精品亚洲| 夜夜精品视频一区二区| 韩国三级在线一区| 欧美日韩精品一区视频| 日本一区二区免费在线观看视频| 伊人开心综合网| 国产一区美女在线| 欧美日韩一区不卡| 国产精品久久久久永久免费观看 | 欧美伊人久久大香线蕉综合69 | 韩国精品在线观看| 在线看一区二区| 久久嫩草精品久久久精品| 艳妇臀荡乳欲伦亚洲一区| 国产电影一区二区三区| 777欧美精品| 伊人夜夜躁av伊人久久| 国产成人综合在线播放| 欧美一区二区三区男人的天堂| 亚洲天堂网中文字| 国产精品888| 精品福利在线导航| 青青青伊人色综合久久| 色综合久久中文字幕| 国产精品人妖ts系列视频| 精品在线播放午夜| 日韩女优av电影在线观看| 亚洲图片欧美综合| 91在线观看美女| 国产免费久久精品| 国产精品一二一区| 337p日本欧洲亚洲大胆精品| 日本午夜一本久久久综合| 欧美一a一片一级一片| 亚洲女同一区二区| 99免费精品视频| 国产精品入口麻豆九色| 大胆亚洲人体视频| 中文字幕精品一区| www.99精品| 亚洲欧美精品午睡沙发| 色综合久久中文综合久久97| 亚洲人妖av一区二区|