string_file.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00029
00030 #ifndef STRING_FILE_HPP
00031 #define STRING_FILE_HPP
00032
00033 #include "../my_config.h"
00034 #include "infinint.hpp"
00035 #include "generic_file.hpp"
00036 #include "integers.hpp"
00037 #include "erreurs.hpp"
00038
00039 namespace libdar
00040 {
00041
00043
00045 class string_file : public generic_file
00046 {
00047 public:
00048
00050 string_file(user_interaction & dialog, const std::string & contents): generic_file(dialog, gf_read_only) { data = contents; cur = 0; len = data.size(); };
00051
00052
00053 bool skip(const infinint & pos);
00054 bool skip_to_eof() { cur = len; return true; };
00055 bool skip_relative(S_I x);
00056 infinint get_position() { return cur; };
00057
00058 protected:
00059
00060 S_I inherited_read(char *a, size_t size);
00061 S_I inherited_write(const char *a, size_t size) { throw Efeature("Writing on a string_file is not allowed"); };
00062
00063 private:
00064 std::string data;
00065 infinint cur;
00066 infinint len;
00067 };
00068
00069 }
00070
00071 #endif