Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights reserved. 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*) = 0; 32 virtual bool write_vec(uint32,const char*) = 0; 33 virtual bool write_vec(uint32,const uint16*) = 0; 34 virtual bool write_vec(uint32,const int16*) = 0; 35 virtual bool write_vec(uint32,const uint32*) = 0; 36 virtual bool write_vec(uint32,const int32*) = 0; 37 virtual bool write_vec(uint32,const uint64*) = 0; 38 virtual bool write_vec(uint32,const int64*) = 0; 39 virtual bool write_vec(uint32,const float*) = 0; 40 virtual bool write_vec(uint32,const double*) = 0; 41 virtual bool write_vec(uint32,const bool*) = 0; 42 43 virtual bool write_vec(const std::vector<std::string>&) = 0; 44 45 virtual bool write_cstr(const char* a_cstr) = 0; 46 47 virtual bool write_img(uint32,uint32,uint32,const uchar*) = 0; 48 49 typedef std::vector< std::vector<unsigned int> > std_vec_vec_uint_t; 50 virtual bool write_std_vec_vec(const std_vec_vec_uint_t&) = 0; 51 52 typedef std::vector< std::vector<float> > std_vec_vec_float_t; 53 virtual bool write_std_vec_vec(const std_vec_vec_float_t&) = 0; 54 55 typedef std::vector< std::vector<double> > std_vec_vec_double_t; 56 virtual bool write_std_vec_vec(const std_vec_vec_double_t&) = 0; 57 58 typedef std::vector< std::vector<std::string> > std_vec_vec_string_t; 59 virtual bool write_std_vec_vec(const std_vec_vec_string_t&) = 0; 60 public: 61 virtual const char* buf() const = 0; 62 virtual size_t length() const = 0; 63 }; 64 65 }} 66 67 #endif