cel_compress.h

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00004 //
00005 // (C) 2003-2006 Celartem Technology Inc. All rights reserved.
00006 //----------------------------------------------------------------------------
00007 
00008 #ifndef _cel_compress_h_
00009 #define _cel_compress_h_
00010 
00011 #include "cel_types.h"
00012 #include "cel_memory.h"
00013 #include "cel_iostream.h"
00014 
00015 namespace Celartem
00016 {
00020     struct Zlib
00021     {
00022         enum {
00024             levelDefault = -1
00025         };
00026 
00039         static void compress(
00040             SimpleArray<u8>& outBuffer,
00041             const u8 * CEL_RESTRICT inData, size_t inSize,
00042             int compLevel = levelDefault /* 1-9 */);
00043 
00059         static void compress(
00060             u8 * CEL_RESTRICT outBuffer,
00061             size_t * CEL_RESTRICT ioSize,
00062             const u8 *CEL_RESTRICT inData,
00063             size_t inSize,
00064             int compLevel = levelDefault /* 1-9 */);
00065 
00076         static void decompress(
00077             SimpleArray<u8>& outBuffer,
00078             const u8 * CEL_RESTRICT inData, size_t inSize);
00079 
00092         static void decompress(
00093             u8 *CEL_RESTRICT outBuffer, size_t *ioSize,
00094             const u8 * CEL_RESTRICT inData, size_t inSize);
00095         
00118         static u32 adler32(
00119             u32 inCurrentAdler,
00120             const u8 * CEL_RESTRICT inData, size_t inSize);
00121 
00144         static u32 crc32(
00145             u32 inCurrentCRC,
00146             const u8 * CEL_RESTRICT inData, size_t inSize);
00147     };
00148 
00153     class DeflateStream : public Stream
00154     {
00155     public:
00167         static AutoPtr<DeflateStream> create(Stream *inStream);
00168     };
00169 
00174     class InflateStream : public Stream
00175     {
00176     public:
00188         static AutoPtr<InflateStream> create(Stream *inStream);
00189     };
00190 
00191 }  // namespace Celartem
00192 
00193 #endif // _cel_compress_h_

This document is automatically generated using doxygen 1.5.4 at Fri Jun 27 18:21:54 2008.