ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/GoogleTron/Zlib/Error.hpp
Revision: 674
Committed: 2006-03-02T23:47:54-08:00 (19 years, 4 months ago) by douglas
Original Path: GoogleTron/GzipWriter.hpp
File size: 1002 byte(s)
Log Message:
Woo!

File Contents

# Content
1 // Gzip Writer
2 //
3 // Douglas Thrift
4 //
5 // $Id$
6
7 #ifndef _GzipWriter_hpp_
8 #define _GzipWriter_hpp_
9
10 #include <cxx/platform.hpp>
11
12 #ifdef MENES_PRAGMA_ONCE
13 #pragma once
14 #endif
15
16 #include <api/error.hpp>
17 #include <ios/streams.hpp>
18
19 #include <errno.h>
20 #include <zlib.h>
21
22 class Error : public api::Error
23 {
24 int code;
25 cse::String message;
26 public:
27 Error(gzFile file) : message(::gzerror(file, &code))
28 {
29 // if (code == Z_ERRNO)
30 }
31
32 virtual int GetNumber() const
33 {
34 return code;
35 }
36
37 virtual cse::String GetMessage() const
38 {
39 return message;
40 }
41 };
42
43 _finline gzFile CheckError(gzFile status)
44 {
45 if (status == NULL)
46 throw Error(status);
47
48 return status;
49 }
50
51 _finline int CheckError(int status, gzFile file)
52 {
53 if (status != Z_OK)
54 throw Error(file);
55
56 return status;
57 }
58
59 class GzipWriter : public ios::Writer
60 {
61 gzFile file;
62 public:
63 GzipWriter(const cse::String &path);
64 virtual ~GzipWriter();
65 virtual size_t Write(const byte_t *data, size_t length);
66 virtual void Flush();
67 };
68
69 #endif//_GzipWriter_hpp_

Properties

Name Value
svn:eol-style native
svn:keywords Id