inlib  1.2.0
/Users/barrand/private/dev/softinex/old/inexlib-1.2/inlib/inlib/wroot/ifile
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines