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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfilemap.h

?? 研讀AxCrypt對加解密的處理方法
?? H
字號:
#ifndef CFILEMAP_H
#define CFILEMAP_H
/*! \file CFileMap.h
    \brief Memory Mapped File Source and Sink, AxPipe::CSourceMemFile and AxPipe::CSinkMemFile

    @(#) $Id: CFileMap.h,v 1.2 2004/02/02 12:10:47 svante Exp $

    AxPipe - Binary Stream Framework

    Copyright (C) 2003 Svante Seleborg/Axon Data, All rights reserved.

    This program is free software; you can redistribute it and/or modify it under the terms
    of the GNU General Public License as published by the Free Software Foundation;
    either version 2 of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with this program;
    if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
    Boston, MA 02111-1307 USA

    The author may be reached at mailto:axpipe@axondata.se and http://axpipe.sourceforge.net

    Why is this framework released as GPL and not LGPL? See http://www.gnu.org/philosophy/why-not-lgpl.html

----
\verbatim
    CFileMap.h                      Memory Mapped File Source and Sink

    E-mail                          YYYY-MM-DD              Reason
    axpipe@axondata.se              2003-11-23              Initial
\endverbatim

    AxPipe file source and sink classes, implemented using memory mapping

    C[T]SourceMemFile  - a source [in it's own thread]
    C[T]SinkMemFile]   - a sink [in it's own thread]

    Copyright 2003, Axon Data/Svante Seleborg, All Rights Reserved.
*/
#include    "AxPipe.h"

#include "AxAssert.h"
#define AXLIB_ASSERT_FILE "CFileMap.h"

namespace AxPipe {
/// \brief A special purpose version of CSeg, to work with Memory Mapped segments.
///
/// CSegMap is able to release a view instead of delete'ing upon destruction.
/// It also implements run time typing to distinguish it, as well as an owner
/// mechanism whereby a class can tag and subsequently recognize a segment as
/// on that it 'owns' and thus handles.
///
/// The actual mapping of the file is handled outside of this class, but it can,
/// and will, unmap the view.
/// \todo Bring together the MapUserView() functionality into the constructor here,
/// it really makes no sense to have it done outside. It just happended that way
/// due to historic reasons.
class CSegMap : public CSeg {
    longlong m_llPos;                       ///< The file position in the backing file of the segment.
    void *m_pView;                          ///< The corresponding mapped view
    void *m_pOwner;                         ///< Implement owner-id functions, opaque owner id here.

public:
    /// \brief Construct with Owner, size, buffer pointer, view, file pos and possibly readonly
    CSegMap(void *pOwner, size_t cb, void *pv, void *pView, longlong llPos, bool fReadOnly = false);
    virtual ~CSegMap();                     ///< Unmap the view, if any.
    longlong GetPos();                      ///< Get the corresponding file pointer

public:
    static void *ClassId();                 ///< Compile time polymorphic type information
    virtual void *RTClassId();              ///< Run time polymorphic type information
    bool IsOwner(void *pOwner);             ///< Check if the provided opaque pointer matches the owner given on construction.
};

/// \brief A CSource providing data from a file system file, using memory mapping.
class CSourceMemFile : public CSource {
    HANDLE m_hFile,                         ///< The opened file
           m_hMapping;                      ///< The mapping of the file
    size_t m_cbChunk;                       ///< The chunk size we send down stream
    longlong m_cbFileSize,                  ///< The length of the file in bytes
             m_cbStreamPos;                 ///< The next file position to read a chunk from
    _TCHAR *m_szFileName;                   ///< The provided file name, new[]'d and delete[]'d here

protected:
    HANDLE GetHandle();                     ///< Get the handle to the opened file

public:

    /// \brief Set file and chunk size
    CSourceMemFile *Init(const _TCHAR *szFileName, size_t cbChunk = 64*1024);
    CSourceMemFile();                       ///< Just initialize member variables
    virtual ~CSourceMemFile();              ///< Additional destruction necessary...

protected:
    bool OutOpen();                         ///< Open the file and create a mapping
    bool OutClose(void);                    ///< Close the file and the mapping
    CSeg *In();                             ///< Get the next chunk from the input file
};

/// \brief A Threaded version of CSourceMemFile for convenience.
typedef CThread<CSourceMemFile> CTSourceMemFile;

/// \brief A CSink implemented with a memory mapped file as the destination.
class CSinkMemFile : public CSink {
    HANDLE m_hFile,                         ///< The opened file
           m_hMapping;                      ///< The mapping of the file
    size_t m_cbChunk;                       ///< The chunk size we send down stream
    longlong m_cbFileSize,                  ///< The length of the file in bytes
             m_cbStreamPos;                 ///< The next file position to read a chunk from
    _TCHAR *m_szFileName;                   ///< The provided file name, new[]'d and delete[]'d here
    longlong m_cbInPos,                     ///< The file pointer position to get the next segment to write to
             m_cbOutPos,                    ///< The file pointer position to write the next output to
             m_cbMappingSize;               ///< The size of the current mapping - changed dynamically
    CRITICAL_SECTION m_CritSect;            ///< Threading protection for certain code sections

protected:
    HANDLE GetHandle();                     ///< Get the handle to the opened file

public:
    /// \brief Set file and chunk size
    CSinkMemFile *Init(const TCHAR *szFileName, size_t cbChunk = 64*1024);
    CSinkMemFile();                         ///< Initialize member variables etc.
    virtual ~CSinkMemFile();                ///< Additional destruction necessary...

protected:
    bool OutClose();                        ///< Close the file, as well as all mappings, set end of file etc.
    CSeg *OutGetSeg(size_t cb);             ///< Get a writeable segment, mapped to the output file if possible.
    void Out(CSeg *pSeg);                   ///< Write a segment to the file, optimizing the case where it already is a mapping.
    bool OutOpen();                         ///< Open the file named in Init() for output
};

/// \brief A threaded version of CSinkMemFile for convenience.
typedef CThread<CSinkMemFile> CTSinkMemFile;

} // namespace AxPipe
#endif  CFILEMAP_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人精品高清在线播放| 美女视频一区在线观看| 亚洲一二三四久久| 麻豆成人av在线| 色综合久久久久| 久久久另类综合| 日本特黄久久久高潮| 91农村精品一区二区在线| 久久精品亚洲麻豆av一区二区 | 青青草原综合久久大伊人精品| 国产成人精品影院| 国产亚洲欧洲一区高清在线观看| 石原莉奈在线亚洲三区| 91免费看视频| 成人欧美一区二区三区在线播放| 国产主播一区二区三区| 日韩欧美一级二级| 亚洲国产cao| 欧美日韩精品系列| 一区二区视频免费在线观看| 91亚洲永久精品| 国产精品福利影院| 风间由美一区二区av101| 欧美成人女星排名| 精品一区二区三区视频| 日韩欧美国产电影| 激情综合色播激情啊| 日韩欧美国产一区二区在线播放 | 婷婷综合久久一区二区三区| 欧美视频一区二区三区四区| 伊人性伊人情综合网| 99国产精品久久| 亚洲精品成人精品456| 91浏览器在线视频| 一区二区三区国产精华| 欧美日韩二区三区| 日韩中文字幕一区二区三区| 欧美丰满少妇xxxxx高潮对白| 亚洲高清免费视频| 欧美电影免费观看完整版| 免费在线看一区| 亚洲精品在线观看网站| 精品午夜一区二区三区在线观看 | 欧美日韩国产乱码电影| 亚洲成精国产精品女| 欧美日韩和欧美的一区二区| 日韩国产欧美三级| 2023国产精华国产精品| 国产91精品一区二区麻豆网站| **网站欧美大片在线观看| 91成人看片片| 另类专区欧美蜜桃臀第一页| 久久品道一品道久久精品| 99精品热视频| 舔着乳尖日韩一区| 久久日韩粉嫩一区二区三区| fc2成人免费人成在线观看播放 | 男女性色大片免费观看一区二区| 精品国产免费久久| 97久久超碰国产精品电影| 天天影视色香欲综合网老头| 精品国内片67194| 成人美女视频在线观看| 婷婷夜色潮精品综合在线| 久久免费的精品国产v∧| 色综合天天综合色综合av| 偷窥国产亚洲免费视频| 中文子幕无线码一区tr| 欧美三级中文字幕在线观看| 国产精品一区二区三区网站| 亚洲午夜视频在线观看| 欧美激情综合在线| 91精品久久久久久蜜臀| 岛国精品一区二区| 日本不卡视频在线| 日韩美女久久久| 久久你懂得1024| 欧美日韩一区二区三区在线| 国产91在线看| 日本aⅴ亚洲精品中文乱码| 亚洲欧洲av在线| 久久综合色播五月| 911国产精品| 色久综合一二码| 丁香网亚洲国际| 六月婷婷色综合| 亚洲第一福利一区| 中文字幕视频一区| 欧美电影免费观看完整版| 欧美日韩免费一区二区三区| 不卡欧美aaaaa| 精品亚洲porn| 另类欧美日韩国产在线| 亚洲成a人v欧美综合天堂下载| 亚洲欧美自拍偷拍色图| 欧美精品一区二区三区四区| 4438x亚洲最大成人网| 欧美日韩五月天| 色婷婷av久久久久久久| 99国产欧美久久久精品| 不卡免费追剧大全电视剧网站| 国产在线观看一区二区| 麻豆专区一区二区三区四区五区| 婷婷丁香久久五月婷婷| 亚洲丶国产丶欧美一区二区三区| 亚洲精品视频在线看| 亚洲三级视频在线观看| 国产精品九色蝌蚪自拍| 亚洲国产精品成人综合色在线婷婷| 久久午夜色播影院免费高清| 日韩精品影音先锋| 精品卡一卡二卡三卡四在线| 日韩亚洲欧美高清| 欧美tickling网站挠脚心| 久久影音资源网| 久久免费偷拍视频| 国产欧美日韩在线| 国产精品美女久久久久久久久久久 | 久久国产免费看| 久88久久88久久久| 国产一区二区三区美女| 国产精品538一区二区在线| 国产在线精品一区二区不卡了| 精品一区二区三区视频在线观看| 国产伦精品一区二区三区视频青涩| 久久爱www久久做| 国产一区999| av在线不卡电影| 欧美日韩精品高清| 精品噜噜噜噜久久久久久久久试看| 久久久久亚洲蜜桃| 中文字幕中文字幕一区二区 | 91啪亚洲精品| 欧美日韩精品一区二区天天拍小说 | 99re热视频精品| 欧美性色aⅴ视频一区日韩精品| 欧美性videosxxxxx| 欧美电影精品一区二区| 国产精品午夜免费| 亚洲成人免费看| 国产精品亚洲成人| 91成人在线精品| 精品国产1区二区| 亚洲丝袜美腿综合| 日本一不卡视频| www.亚洲人| 日韩写真欧美这视频| 国产精品网站一区| 日韩中文字幕区一区有砖一区| 国产精品亚洲综合一区在线观看| 色av成人天堂桃色av| 日韩欧美亚洲国产另类| 亚洲欧美在线视频观看| 日精品一区二区| 91在线精品一区二区| 日韩欧美高清在线| 亚洲精品国产视频| 国产一区二区三区最好精华液| 色婷婷久久一区二区三区麻豆| 欧美videofree性高清杂交| 亚洲天堂免费看| 国产综合色产在线精品| 欧美在线一二三| 日本一区二区三区高清不卡 | 成人教育av在线| 精品免费一区二区三区| 亚洲综合激情网| 99在线视频精品| 久久新电视剧免费观看| 日韩国产高清影视| 色菇凉天天综合网| 国产精品欧美一区喷水| 久久不见久久见免费视频1| 欧美日韩一级黄| 一区二区三区在线高清| 国产成人av电影在线观看| 69久久夜色精品国产69蝌蚪网| 亚洲免费观看高清在线观看| 国产精品综合一区二区三区| 88在线观看91蜜桃国自产| 亚洲综合色噜噜狠狠| 99国产精品国产精品毛片| 中文字幕的久久| 国产精品一区二区在线看| 精品久久久久久久久久久久包黑料 | 国产精品美日韩| 国产91精品一区二区麻豆亚洲| 精品国产1区2区3区| 日韩高清中文字幕一区| 欧美日韩大陆一区二区| 亚洲国产精品久久艾草纯爱| 91理论电影在线观看| 亚洲欧洲精品一区二区三区| www.性欧美| 日韩伦理av电影| 色悠悠久久综合| 亚洲在线免费播放| 欧美日韩小视频| 免费在线观看一区二区三区| 337p亚洲精品色噜噜狠狠|