inlib
1.2.0
|
00001 // Copyright (C) 2010, Guy Barrand. All rights reserved. 00002 // See the file inlib.license for terms. 00003 00004 #ifndef inlib_wroot_ifile 00005 #define inlib_wroot_ifile 00006 00007 #include <ostream> 00008 #include "seek" 00009 00010 namespace inlib { 00011 namespace wroot { 00012 class buffer; 00013 }} 00014 00015 namespace inlib { 00016 namespace wroot { 00017 00018 class ifile { 00019 public: 00020 virtual ~ifile(){} 00021 public: 00022 virtual bool verbose() const = 0; 00023 virtual std::ostream& out() = 0; 00024 virtual bool byte_swap() const = 0; 00025 enum from { 00026 begin, 00027 current, 00028 end 00029 }; 00030 virtual bool set_pos(seek = 0,from = begin) = 0; 00031 00032 virtual seek END() const = 0; 00033 virtual void set_END(seek) = 0; 00034 00035 virtual bool write_buffer(const char*,uint32) = 0; 00036 00037 virtual uint32 version() const = 0; 00038 00039 virtual bool synchronize() = 0; 00040 00041 typedef bool (*zip_func)(std::ostream&, 00042 int, 00043 uint32,char*, 00044 uint32,char*, 00045 uint32&); 00046 00047 virtual bool ziper(char,zip_func&) const = 0; 00048 00049 virtual uint32 compression() const = 0; 00050 00051 virtual void compress_buffer(const buffer&,char*&,uint32&,bool&) = 0; 00052 }; 00053 00054 }} 00055 00056 #endif