Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
zfstream.h
Package: zlib124.zip [view]
Upload User: shengde
Upload Date: 2021-02-21
Package Size: 638k
Code Size: 2k
Category:
Compress-Decompress algrithms
Development Platform:
Visual C++
- #ifndef zfstream_h
- #define zfstream_h
- #include <fstream.h>
- #include "zlib.h"
- class gzfilebuf : public streambuf {
- public:
- gzfilebuf( );
- virtual ~gzfilebuf();
- gzfilebuf *open( const char *name, int io_mode );
- gzfilebuf *attach( int file_descriptor, int io_mode );
- gzfilebuf *close();
- int setcompressionlevel( int comp_level );
- int setcompressionstrategy( int comp_strategy );
- inline int is_open() const { return (file !=NULL); }
- virtual streampos seekoff( streamoff, ios::seek_dir, int );
- virtual int sync();
- protected:
- virtual int underflow();
- virtual int overflow( int = EOF );
- private:
- gzFile file;
- short mode;
- short own_file_descriptor;
- int flushbuf();
- int fillbuf();
- };
- class gzfilestream_common : virtual public ios {
- friend class gzifstream;
- friend class gzofstream;
- friend gzofstream &setcompressionlevel( gzofstream &, int );
- friend gzofstream &setcompressionstrategy( gzofstream &, int );
- public:
- virtual ~gzfilestream_common();
- void attach( int fd, int io_mode );
- void open( const char *name, int io_mode );
- void close();
- protected:
- gzfilestream_common();
- private:
- gzfilebuf *rdbuf();
- gzfilebuf buffer;
- };
- class gzifstream : public gzfilestream_common, public istream {
- public:
- gzifstream();
- gzifstream( const char *name, int io_mode = ios::in );
- gzifstream( int fd, int io_mode = ios::in );
- virtual ~gzifstream();
- };
- class gzofstream : public gzfilestream_common, public ostream {
- public:
- gzofstream();
- gzofstream( const char *name, int io_mode = ios::out );
- gzofstream( int fd, int io_mode = ios::out );
- virtual ~gzofstream();
- };
- template<class T> class gzomanip {
- friend gzofstream &operator<<(gzofstream &, const gzomanip<T> &);
- public:
- gzomanip(gzofstream &(*f)(gzofstream &, T), T v) : func(f), val(v) { }
- private:
- gzofstream &(*func)(gzofstream &, T);
- T val;
- };
- template<class T> gzofstream &operator<<(gzofstream &s, const gzomanip<T> &m)
- {
- return (*m.func)(s, m.val);
- }
- inline gzofstream &setcompressionlevel( gzofstream &s, int l )
- {
- (s.rdbuf())->setcompressionlevel(l);
- return s;
- }
- inline gzofstream &setcompressionstrategy( gzofstream &s, int l )
- {
- (s.rdbuf())->setcompressionstrategy(l);
- return s;
- }
- inline gzomanip<int> setcompressionlevel(int l)
- {
- return gzomanip<int>(&setcompressionlevel,l);
- }
- inline gzomanip<int> setcompressionstrategy(int l)
- {
- return gzomanip<int>(&setcompressionstrategy,l);
- }
- #endif