file_stream.h 978 B

1234567891011121314151617181920212223242526272829303132
  1. // Copyright (C) 2007-2018 Samuel Newbold
  2. class File_istream : public Rwsh_istream {
  3. std::string name;
  4. void open(void);
  5. public:
  6. File_istream(const std::string& name_i);
  7. ~File_istream();
  8. virtual Rwsh_istream* copy_pointer() {return new File_istream(name);};
  9. virtual Rwsh_istream& getline(std::string& dest);
  10. virtual int fd(void);
  11. virtual std::string str(void) const;};
  12. class File_ostream : public Rwsh_ostream {
  13. std::string name;
  14. FILE* c_style;
  15. void open(void);
  16. public:
  17. File_ostream(const std::string& name_i);
  18. ~File_ostream();
  19. virtual Rwsh_ostream* copy_pointer() {return new File_ostream(name);};
  20. virtual Rwsh_ostream& operator<<(const std::string& r);
  21. virtual Rwsh_ostream& operator<<(int r);
  22. virtual Rwsh_ostream& operator<<(unsigned int r);
  23. virtual Rwsh_ostream& operator<<(double r);
  24. virtual Rwsh_ostream& operator<<(struct timeval r);
  25. virtual int fd(void);
  26. virtual void flush(void);
  27. virtual std::string str(void) const;};