00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00028
#ifndef __vtkDataCompressor_h
00029
#define __vtkDataCompressor_h
00030
00031
#include "vtkObject.h"
00032
00033
class vtkUnsignedCharArray;
00034
00035 class VTK_IO_EXPORT vtkDataCompressor :
public vtkObject
00036 {
00037
public:
00038 vtkTypeRevisionMacro(vtkDataCompressor,
vtkObject);
00039
void PrintSelf(ostream& os,
vtkIndent indent);
00040
00045
virtual unsigned long GetMaximumCompressionSpace(
unsigned long size)=0;
00046
00048
00051
unsigned long Compress(
const unsigned char* uncompressedData,
00052
unsigned long uncompressedSize,
00053
unsigned char* compressedData,
00054
unsigned long compressionSpace);
00056
00058
00061
unsigned long Uncompress(
const unsigned char* compressedData,
00062
unsigned long compressedSize,
00063
unsigned char* uncompressedData,
00064
unsigned long uncompressedSize);
00066
00068
00070
vtkUnsignedCharArray* Compress(
const unsigned char* uncompressedData,
00071
unsigned long uncompressedSize);
00073
00075
00079
vtkUnsignedCharArray* Uncompress(
const unsigned char* compressedData,
00080
unsigned long compressedSize,
00081
unsigned long uncompressedSize);
00083
protected:
00084 vtkDataCompressor();
00085 ~vtkDataCompressor();
00086
00087
00088
00089
virtual unsigned long CompressBuffer(
const unsigned char* uncompressedData,
00090
unsigned long uncompressedSize,
00091
unsigned char* compressedData,
00092
unsigned long compressionSpace)=0;
00093
00094
00095
virtual unsigned long UncompressBuffer(
const unsigned char* compressedData,
00096
unsigned long compressedSize,
00097
unsigned char* uncompressedData,
00098
unsigned long uncompressedSize)=0;
00099
private:
00100 vtkDataCompressor(
const vtkDataCompressor&);
00101
void operator=(
const vtkDataCompressor&);
00102 };
00103
00104
#endif