00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkZLibDataCompressor.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00039 #ifndef __vtkZLibDataCompressor_h 00040 #define __vtkZLibDataCompressor_h 00041 00042 #include "vtkDataCompressor.h" 00043 00044 class VTK_IO_EXPORT vtkZLibDataCompressor : public vtkDataCompressor 00045 { 00046 public: 00047 vtkTypeRevisionMacro(vtkZLibDataCompressor,vtkDataCompressor); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00049 static vtkZLibDataCompressor* New(); 00050 00055 unsigned long GetMaximumCompressionSpace(unsigned long size); 00056 00057 protected: 00058 vtkZLibDataCompressor(); 00059 ~vtkZLibDataCompressor(); 00060 00061 // Compression method required by vtkDataCompressor. 00062 unsigned long CompressBuffer(const unsigned char* uncompressedData, 00063 unsigned long uncompressedSize, 00064 unsigned char* compressedData, 00065 unsigned long compressionSpace); 00066 // Decompression method required by vtkDataCompressor. 00067 unsigned long UncompressBuffer(const unsigned char* compressedData, 00068 unsigned long compressedSize, 00069 unsigned char* uncompressedData, 00070 unsigned long uncompressedSize); 00071 private: 00072 vtkZLibDataCompressor(const vtkZLibDataCompressor&); // Not implemented. 00073 void operator=(const vtkZLibDataCompressor&); // Not implemented. 00074 }; 00075 00076 #endif