diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 |
commit | 4538829ab86b5a1cd4e845e7eab165029c9d6d46 (patch) | |
tree | bbadf39aed0610c8f8f7b41fefff47773b8ac205 /xsd/examples/cxx/tree/compression/compressed-input-source.hxx | |
parent | 23d41842168ac1a1580111b9c5c73500ceee3d57 (diff) | |
parent | aad5ad9bf0c02aa4e79bc6b7d6c934612fff4026 (diff) |
Update upstream source from tag 'upstream/4.2.0'
Update to upstream version '4.2.0'
with Debian dir 1b38df7bbcf313223de3c50107ac0255090fe647
Diffstat (limited to 'xsd/examples/cxx/tree/compression/compressed-input-source.hxx')
-rw-r--r-- | xsd/examples/cxx/tree/compression/compressed-input-source.hxx | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/xsd/examples/cxx/tree/compression/compressed-input-source.hxx b/xsd/examples/cxx/tree/compression/compressed-input-source.hxx deleted file mode 100644 index 8065445..0000000 --- a/xsd/examples/cxx/tree/compression/compressed-input-source.hxx +++ /dev/null @@ -1,121 +0,0 @@ -// file : examples/cxx/tree/compression/compressed-input-source.hxx -// copyright : not copyrighted - public domain - -#ifndef COMPRESSED_INPUT_SOURCE_HXX -#define COMPRESSED_INPUT_SOURCE_HXX - -#include <zlib.h> - -#include <iosfwd> -#include <string> -#include <cstddef> // std::size_t -#include <exception> - -#include <xercesc/sax/InputSource.hpp> -#include <xercesc/util/BinInputStream.hpp> - -struct decompression_failure: std::exception -{ - explicit - decompression_failure (int code) - : code_ (code) - { - } - - int - code () const - { - return code_; - } - - const char* - message () const - { - return zError (code_); - } - - virtual const char* - what () const throw (); - -private: - int code_; -}; - -// Xerces-C++ InputSource interface implementation with on-the-fly, zlib- -// based decompression. -// -class compressed_input_source: public xercesc::InputSource -{ -public: - enum compression_type - { - raw, - zlib, - gzip - }; - - compressed_input_source (std::istream&, compression_type); - - compressed_input_source (std::istream&, - compression_type, - const std::string& system_id); - - compressed_input_source (std::istream&, - compression_type, - const std::string& system_id, - const std::string& public_id); - - struct copy {}; - - // Throws the copy exception if this function is called more than once. - // - virtual xercesc::BinInputStream* - makeStream () const; - -private: - mutable std::istream* is_; - compression_type type_; -}; - -// Xerces-C++ BinInputStream interface implementation with on-the-fly, zlib- -// based decompression. -// -class compressed_input_stream: public xercesc::BinInputStream -{ -public: - enum compression_type - { - raw, - zlib, - gzip - }; - - compressed_input_stream (std::istream&, compression_type); - - virtual - ~compressed_input_stream (); - - virtual XMLFilePos - curPos () const; - - virtual XMLSize_t - readBytes (XMLByte* const buf, const XMLSize_t size); - - virtual const XMLCh* - getContentType () const; - -private: - std::size_t - read (); - -private: - std::istream& is_; - z_stream zs_; - bool end_; - - static const std::size_t buf_size_ = 65536; - char in_[buf_size_]; - std::size_t pos_; // Current decompressed stream position. -}; - -#endif // COMPRESSED_INPUT_SOURCE_HXX |