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

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

?? zfstream.h

?? 許多壓縮算法都用到了ZLIP算法
?? H
字號(hào):
/* * A C++ I/O streams interface to the zlib gz* functions * * by Ludwig Schwardt <schwardt@sun.ac.za> * original version by Kevin Ruland <kevin@rodin.wustl.edu> * * This version is standard-compliant and compatible with gcc 3.x. */#ifndef ZFSTREAM_H#define ZFSTREAM_H#include <istream>  // not iostream, since we don't need cin/cout#include <ostream>#include "zlib.h"/*****************************************************************************//** *  @brief  Gzipped file stream buffer class. * *  This class implements basic_filebuf for gzipped files. It doesn't yet support *  seeking (allowed by zlib but slow/limited), putback and read/write access *  (tricky). Otherwise, it attempts to be a drop-in replacement for the standard *  file streambuf.*/class gzfilebuf : public std::streambuf{public:  //  Default constructor.  gzfilebuf();  //  Destructor.  virtual  ~gzfilebuf();  /**   *  @brief  Set compression level and strategy on the fly.   *  @param  comp_level  Compression level (see zlib.h for allowed values)   *  @param  comp_strategy  Compression strategy (see zlib.h for allowed values)   *  @return  Z_OK on success, Z_STREAM_ERROR otherwise.   *   *  Unfortunately, these parameters cannot be modified separately, as the   *  previous zfstream version assumed. Since the strategy is seldom changed,   *  it can default and setcompression(level) then becomes like the old   *  setcompressionlevel(level).  */  int  setcompression(int comp_level,                 int comp_strategy = Z_DEFAULT_STRATEGY);  /**   *  @brief  Check if file is open.   *  @return  True if file is open.  */  bool  is_open() const { return (file != NULL); }  /**   *  @brief  Open gzipped file.   *  @param  name  File name.   *  @param  mode  Open mode flags.   *  @return  @c this on success, NULL on failure.  */  gzfilebuf*  open(const char* name,       std::ios_base::openmode mode);  /**   *  @brief  Attach to already open gzipped file.   *  @param  fd  File descriptor.   *  @param  mode  Open mode flags.   *  @return  @c this on success, NULL on failure.  */  gzfilebuf*  attach(int fd,         std::ios_base::openmode mode);  /**   *  @brief  Close gzipped file.   *  @return  @c this on success, NULL on failure.  */  gzfilebuf*  close();protected:  /**   *  @brief  Convert ios open mode int to mode string used by zlib.   *  @return  True if valid mode flag combination.  */  bool  open_mode(std::ios_base::openmode mode,            char* c_mode) const;  /**   *  @brief  Number of characters available in stream buffer.   *  @return  Number of characters.   *   *  This indicates number of characters in get area of stream buffer.   *  These characters can be read without accessing the gzipped file.  */  virtual std::streamsize  showmanyc();  /**   *  @brief  Fill get area from gzipped file.   *  @return  First character in get area on success, EOF on error.   *   *  This actually reads characters from gzipped file to stream   *  buffer. Always buffered.  */  virtual int_type  underflow();  /**   *  @brief  Write put area to gzipped file.   *  @param  c  Extra character to add to buffer contents.   *  @return  Non-EOF on success, EOF on error.   *   *  This actually writes characters in stream buffer to   *  gzipped file. With unbuffered output this is done one   *  character at a time.  */  virtual int_type  overflow(int_type c = traits_type::eof());  /**   *  @brief  Installs external stream buffer.   *  @param  p  Pointer to char buffer.   *  @param  n  Size of external buffer.   *  @return  @c this on success, NULL on failure.   *   *  Call setbuf(0,0) to enable unbuffered output.  */  virtual std::streambuf*  setbuf(char_type* p,         std::streamsize n);  /**   *  @brief  Flush stream buffer to file.   *  @return  0 on success, -1 on error.   *   *  This calls underflow(EOF) to do the job.  */  virtual int  sync();//// Some future enhancements////  virtual int_type uflow();//  virtual int_type pbackfail(int_type c = traits_type::eof());//  virtual pos_type//  seekoff(off_type off,//          std::ios_base::seekdir way,//          std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);//  virtual pos_type//  seekpos(pos_type sp,//          std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);private:  /**   *  @brief  Allocate internal buffer.   *   *  This function is safe to call multiple times. It will ensure   *  that a proper internal buffer exists if it is required. If the   *  buffer already exists or is external, the buffer pointers will be   *  reset to their original state.  */  void  enable_buffer();  /**   *  @brief  Destroy internal buffer.   *   *  This function is safe to call multiple times. It will ensure   *  that the internal buffer is deallocated if it exists. In any   *  case, it will also reset the buffer pointers.  */  void  disable_buffer();  /**   *  Underlying file pointer.  */  gzFile file;  /**   *  Mode in which file was opened.  */  std::ios_base::openmode io_mode;  /**   *  @brief  True if this object owns file descriptor.   *   *  This makes the class responsible for closing the file   *  upon destruction.  */  bool own_fd;  /**   *  @brief  Stream buffer.   *   *  For simplicity this remains allocated on the free store for the   *  entire life span of the gzfilebuf object, unless replaced by setbuf.  */  char_type* buffer;  /**   *  @brief  Stream buffer size.   *   *  Defaults to system default buffer size (typically 8192 bytes).   *  Modified by setbuf.  */  std::streamsize buffer_size;  /**   *  @brief  True if this object owns stream buffer.   *   *  This makes the class responsible for deleting the buffer   *  upon destruction.  */  bool own_buffer;};/*****************************************************************************//** *  @brief  Gzipped file input stream class. * *  This class implements ifstream for gzipped files. Seeking and putback *  is not supported yet.*/class gzifstream : public std::istream{public:  //  Default constructor  gzifstream();  /**   *  @brief  Construct stream on gzipped file to be opened.   *  @param  name  File name.   *  @param  mode  Open mode flags (forced to contain ios::in).  */  explicit  gzifstream(const char* name,             std::ios_base::openmode mode = std::ios_base::in);  /**   *  @brief  Construct stream on already open gzipped file.   *  @param  fd    File descriptor.   *  @param  mode  Open mode flags (forced to contain ios::in).  */  explicit  gzifstream(int fd,             std::ios_base::openmode mode = std::ios_base::in);  /**   *  Obtain underlying stream buffer.  */  gzfilebuf*  rdbuf() const  { return const_cast<gzfilebuf*>(&sb); }  /**   *  @brief  Check if file is open.   *  @return  True if file is open.  */  bool  is_open() { return sb.is_open(); }  /**   *  @brief  Open gzipped file.   *  @param  name  File name.   *  @param  mode  Open mode flags (forced to contain ios::in).   *   *  Stream will be in state good() if file opens successfully;   *  otherwise in state fail(). This differs from the behavior of   *  ifstream, which never sets the state to good() and therefore   *  won't allow you to reuse the stream for a second file unless   *  you manually clear() the state. The choice is a matter of   *  convenience.  */  void  open(const char* name,       std::ios_base::openmode mode = std::ios_base::in);  /**   *  @brief  Attach to already open gzipped file.   *  @param  fd  File descriptor.   *  @param  mode  Open mode flags (forced to contain ios::in).   *   *  Stream will be in state good() if attach succeeded; otherwise   *  in state fail().  */  void  attach(int fd,         std::ios_base::openmode mode = std::ios_base::in);  /**   *  @brief  Close gzipped file.   *   *  Stream will be in state fail() if close failed.  */  void  close();private:  /**   *  Underlying stream buffer.  */  gzfilebuf sb;};/*****************************************************************************//** *  @brief  Gzipped file output stream class. * *  This class implements ofstream for gzipped files. Seeking and putback *  is not supported yet.*/class gzofstream : public std::ostream{public:  //  Default constructor  gzofstream();  /**   *  @brief  Construct stream on gzipped file to be opened.   *  @param  name  File name.   *  @param  mode  Open mode flags (forced to contain ios::out).  */  explicit  gzofstream(const char* name,             std::ios_base::openmode mode = std::ios_base::out);  /**   *  @brief  Construct stream on already open gzipped file.   *  @param  fd    File descriptor.   *  @param  mode  Open mode flags (forced to contain ios::out).  */  explicit  gzofstream(int fd,             std::ios_base::openmode mode = std::ios_base::out);  /**   *  Obtain underlying stream buffer.  */  gzfilebuf*  rdbuf() const  { return const_cast<gzfilebuf*>(&sb); }  /**   *  @brief  Check if file is open.   *  @return  True if file is open.  */  bool  is_open() { return sb.is_open(); }  /**   *  @brief  Open gzipped file.   *  @param  name  File name.   *  @param  mode  Open mode flags (forced to contain ios::out).   *   *  Stream will be in state good() if file opens successfully;   *  otherwise in state fail(). This differs from the behavior of   *  ofstream, which never sets the state to good() and therefore   *  won't allow you to reuse the stream for a second file unless   *  you manually clear() the state. The choice is a matter of   *  convenience.  */  void  open(const char* name,       std::ios_base::openmode mode = std::ios_base::out);  /**   *  @brief  Attach to already open gzipped file.   *  @param  fd  File descriptor.   *  @param  mode  Open mode flags (forced to contain ios::out).   *   *  Stream will be in state good() if attach succeeded; otherwise   *  in state fail().  */  void  attach(int fd,         std::ios_base::openmode mode = std::ios_base::out);  /**   *  @brief  Close gzipped file.   *   *  Stream will be in state fail() if close failed.  */  void  close();private:  /**   *  Underlying stream buffer.  */  gzfilebuf sb;};/*****************************************************************************//** *  @brief  Gzipped file output stream manipulator class. * *  This class defines a two-argument manipulator for gzofstream. It is used *  as base for the setcompression(int,int) manipulator.*/template<typename T1, typename T2>  class gzomanip2  {  public:    // Allows insertor to peek at internals    template <typename Ta, typename Tb>      friend gzofstream&      operator<<(gzofstream&,                 const gzomanip2<Ta,Tb>&);    // Constructor    gzomanip2(gzofstream& (*f)(gzofstream&, T1, T2),              T1 v1,              T2 v2);  private:    // Underlying manipulator function    gzofstream&    (*func)(gzofstream&, T1, T2);    // Arguments for manipulator function    T1 val1;    T2 val2;  };/*****************************************************************************/// Manipulator function thunks through to stream bufferinline gzofstream&setcompression(gzofstream &gzs, int l, int s = Z_DEFAULT_STRATEGY){  (gzs.rdbuf())->setcompression(l, s);  return gzs;}// Manipulator constructor stores argumentstemplate<typename T1, typename T2>  inline  gzomanip2<T1,T2>::gzomanip2(gzofstream &(*f)(gzofstream &, T1, T2),                              T1 v1,                              T2 v2)  : func(f), val1(v1), val2(v2)  { }// Insertor applies underlying manipulator function to streamtemplate<typename T1, typename T2>  inline gzofstream&  operator<<(gzofstream& s, const gzomanip2<T1,T2>& m)  { return (*m.func)(s, m.val1, m.val2); }// Insert this onto stream to simplify setting of compression levelinline gzomanip2<int,int>setcompression(int l, int s = Z_DEFAULT_STRATEGY){ return gzomanip2<int,int>(&setcompression, l, s); }#endif // ZFSTREAM_H

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品中文av资源站在线观看| 欧美精品v日韩精品v韩国精品v| 精品亚洲aⅴ乱码一区二区三区| 亚洲成人动漫一区| 一区二区三区在线视频观看| 一区二区三区美女视频| 一区二区三区欧美在线观看| 亚洲一区在线播放| 天天影视网天天综合色在线播放| 五月天久久比比资源色| 日韩中文字幕av电影| 免费人成在线不卡| 国产在线精品一区二区夜色| 国产米奇在线777精品观看| 丰满少妇在线播放bd日韩电影| 国产91高潮流白浆在线麻豆| 成人动漫视频在线| 91在线云播放| 欧美色精品天天在线观看视频| 欧美三级三级三级| 制服丝袜一区二区三区| 欧美成人一区二区三区在线观看 | 777久久久精品| 91精品国产综合久久香蕉的特点 | 欧美激情综合在线| 国产精品国产a| 亚洲一区二区三区自拍| 石原莉奈在线亚洲二区| 国产一区二区在线影院| 99精品欧美一区二区三区小说 | 99国产精品久| 欧美私模裸体表演在线观看| 欧美一区二区三区四区五区| 国产亚洲综合在线| 亚洲精品免费一二三区| 日本vs亚洲vs韩国一区三区 | av在线播放不卡| 欧美日韩在线播| 国产偷国产偷精品高清尤物 | 成人国产精品免费| 欧美图区在线视频| 久久久久久久久97黄色工厂| 亚洲欧美国产三级| 久久99国产精品免费网站| 成人永久看片免费视频天堂| 在线看一区二区| 久久蜜桃一区二区| 亚洲成人av免费| 懂色av噜噜一区二区三区av| 欧美日韩电影一区| 国产精品久久一级| 奇米影视7777精品一区二区| 不卡的电影网站| 欧美大胆一级视频| 一区二区三区电影在线播| 国内精品国产三级国产a久久 | 中文字幕一区二区三区蜜月| 男人的天堂亚洲一区| 91在线小视频| 久久精品一二三| 日韩主播视频在线| 色婷婷综合久久久久中文| 欧美tickling挠脚心丨vk| 亚洲精品中文在线影院| 国产精品正在播放| 91精品国产欧美一区二区| 亚洲天堂2016| 国产成人日日夜夜| 日韩精品一区二区三区在线观看 | 成人精品免费网站| 日韩女优电影在线观看| 亚洲国产欧美在线| 91视频国产观看| 欧美极品少妇xxxxⅹ高跟鞋| 日韩av中文字幕一区二区 | 国产精品福利av| 国产专区欧美精品| 日韩写真欧美这视频| 亚洲第一二三四区| 91蜜桃免费观看视频| 国产午夜精品久久久久久免费视 | 91亚洲男人天堂| 久久久www成人免费毛片麻豆| 无吗不卡中文字幕| 91福利国产精品| 亚洲欧美一区二区三区极速播放 | 色哟哟日韩精品| 中文字幕欧美区| 国产精品一区二区x88av| 精品精品欲导航| 麻豆精品一区二区| 日韩三级在线观看| 秋霞成人午夜伦在线观看| 制服丝袜在线91| 免费人成精品欧美精品| 日韩一区二区三区视频在线观看| 亚洲综合网站在线观看| 欧美在线不卡一区| 亚洲午夜一区二区| 欧美在线观看18| 亚洲成a人片在线观看中文| 欧美三级视频在线观看| 亚洲一区二区美女| 欧美精品乱码久久久久久 | 色综合视频一区二区三区高清| 中文字幕乱码日本亚洲一区二区| 国产91精品久久久久久久网曝门| 国产日产欧美一区二区三区| 成人午夜电影网站| 中日韩av电影| 成人美女在线观看| 一色桃子久久精品亚洲| 99热精品一区二区| 亚洲激情图片小说视频| 欧美日韩国产精品自在自线| 丝袜亚洲另类丝袜在线| 亚洲日本一区二区| 欧美三级中文字幕在线观看| 日韩激情视频网站| 欧美刺激午夜性久久久久久久| 国产麻豆精品95视频| 欧美国产亚洲另类动漫| 91美女蜜桃在线| 亚洲丶国产丶欧美一区二区三区| 欧美一区二区三区系列电影| 国产剧情一区二区三区| 亚洲欧洲国产日本综合| 欧美日韩在线一区二区| 久久精品免费观看| 国产精品久久久久一区| 欧美日本一区二区| 国内精品写真在线观看| 亚洲人成精品久久久久久| 91精品婷婷国产综合久久| 国产在线不卡一区| 亚洲精品v日韩精品| 日韩三级中文字幕| 粉嫩久久99精品久久久久久夜| 一区二区三区国产精华| 精品国产乱码久久久久久夜甘婷婷| 成人性生交大片免费看中文| 一区二区三区久久| 久久综合久久综合久久| 色综合中文综合网| 成人国产一区二区三区精品| 亚洲成人免费看| 久久蜜臀中文字幕| 欧美日韩在线播放| 成人看片黄a免费看在线| 亚洲国产成人av好男人在线观看| 精品国产乱码久久久久久老虎| 91亚洲资源网| 国产在线播精品第三| 亚洲成人激情社区| 精品国产成人系列| 色就色 综合激情| 国产一区二区伦理片| 亚洲最大的成人av| 2021国产精品久久精品| 欧美午夜精品一区二区三区| 国产精品综合一区二区| 亚洲制服丝袜av| 国产精品久久久久久久裸模| 日韩一二在线观看| 91久久精品国产91性色tv| 激情国产一区二区 | 精品一区二区三区在线视频| 亚洲免费三区一区二区| 久久精品人人做人人综合| 欧美日韩大陆一区二区| 26uuu色噜噜精品一区二区| 在线欧美日韩精品| 国产suv精品一区二区883| 日产欧产美韩系列久久99| 亚洲色欲色欲www| 国产免费成人在线视频| 日韩欧美你懂的| 欧美伦理视频网站| 91麻豆国产精品久久| 国产成+人+日韩+欧美+亚洲| 日本亚洲天堂网| 性做久久久久久久免费看| 最新不卡av在线| 中文字幕免费不卡| 国产日韩精品一区| 久久久天堂av| 精品电影一区二区三区| 日韩欧美一二三区| 91精品国产一区二区三区| 欧美性猛交xxxx乱大交退制版| 99re成人在线| 成人久久久精品乱码一区二区三区 | 亚洲视频免费观看| 国产精品丝袜91| 国产精品色在线| 国产精品久久影院| 欧美国产精品一区二区三区| 欧美激情一区二区在线| 久久精品夜色噜噜亚洲a∨| 国产午夜久久久久|