00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __OPENRAW_DECOMPRESS_H__
00022 #define __OPENRAW_DECOMPRESS_H__
00023
00024 #include <boost/noncopyable.hpp>
00025
00026 #include <libopenraw/libopenraw.h>
00027
00028
00029 namespace OpenRaw {
00030
00031 class RawData;
00032
00033 namespace IO {
00034 class Stream;
00035 }
00036
00037 namespace Internals {
00038
00039 class RawContainer;
00040
00041 class Decompressor
00042 : private boost::noncopyable
00043 {
00044 public:
00045 Decompressor(IO::Stream * stream,
00046 RawContainer * container);
00047 virtual ~Decompressor();
00048
00056 virtual RawData *decompress(RawData *in = NULL) = 0;
00057 protected:
00058 IO::Stream *m_stream;
00059 RawContainer *m_container;
00060
00062 Decompressor(const Decompressor& f);
00064 Decompressor & operator=(const Decompressor&);
00065 };
00066
00067 }
00068 }
00069
00070
00071
00072 #endif