Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights 2 // See the file tools.license for terms. 3 4 #ifndef tools_io_iwbuf 5 #define tools_io_iwbuf 6 7 #include "../typedefs" 8 9 #include <vector> 10 #include <string> 11 12 namespace tools { 13 namespace io { 14 15 class iwbuf { 16 public: 17 virtual ~iwbuf() {} 18 public: 19 virtual bool write(uchar) = 0; 20 virtual bool write(char) = 0; 21 virtual bool write(uint16) = 0; 22 virtual bool write(int16) = 0; 23 virtual bool write(uint32) = 0; 24 virtual bool write(int32) = 0; 25 virtual bool write(uint64) = 0; 26 virtual bool write(int64) = 0; 27 virtual bool write(float) = 0; 28 virtual bool write(double) = 0; 29 virtual bool write(bool) = 0; 30 31 virtual bool write_vec(uint32,const uchar*) 32 virtual bool write_vec(uint32,const char*) = 33 virtual bool write_vec(uint32,const uint16*) 34 virtual bool write_vec(uint32,const int16*) 35 virtual bool write_vec(uint32,const uint32*) 36 virtual bool write_vec(uint32,const int32*) 37 virtual bool write_vec(uint32,const uint64*) 38 virtual bool write_vec(uint32,const int64*) 39 virtual bool write_vec(uint32,const float*) 40 virtual bool write_vec(uint32,const double*) 41 virtual bool write_vec(uint32,const bool*) = 42 43 virtual bool write_vec(const std::vector<std 44 45 virtual bool write_cstr(const char* a_cstr) 46 47 virtual bool write_img(uint32,uint32,uint32, 48 49 typedef std::vector< std::vector<unsigned in 50 virtual bool write_std_vec_vec(const std_vec 51 52 typedef std::vector< std::vector<float> > st 53 virtual bool write_std_vec_vec(const std_vec 54 55 typedef std::vector< std::vector<double> > s 56 virtual bool write_std_vec_vec(const std_vec 57 58 typedef std::vector< std::vector<std::string 59 virtual bool write_std_vec_vec(const std_vec 60 public: 61 virtual const char* buf() const = 0; 62 virtual size_t length() const = 0; 63 }; 64 65 }} 66 67 #endif