virtual_tfile.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. XCC Utilities and Library
  3. Copyright (C) 2000 Olaf van der Spek <[email protected]>
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <https://www.gnu.org/licenses/>.
  14. */
  15. #pragma once
  16. #include <vartypes.h>
  17. #include <virtual_binary.h>
  18. class Cvirtual_tfile
  19. {
  20. private:
  21. Cvirtual_binary m_data;
  22. int pos;
  23. const char* data() const
  24. {
  25. return reinterpret_cast<const char*>(m_data.data());
  26. }
  27. int size() const
  28. {
  29. return m_data.size();
  30. }
  31. public:
  32. string read_line();
  33. string read_line(bool remove_ws);
  34. void load_data(const Cvirtual_binary s);
  35. bool eof() const
  36. {
  37. return pos >= size();
  38. }
  39. void seek(int ipos)
  40. {
  41. pos = ipos;
  42. }
  43. };