Writer.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <iostream>
  3. #include "Betriebssystem.h"
  4. namespace Framework
  5. {
  6. class Text;
  7. class StreamWriter
  8. {
  9. public:
  10. //! Schreibt in die Resource
  11. //! \param bytes Ein Array, der die Bytes enthält, welche in die
  12. //! Resource geschrieben werden soll \param len Wie viele Bytes in die
  13. //! Resource geschrieben werden sollen
  14. virtual void schreibe(const char* bytes, int len) = 0;
  15. //! Prüft, ob die Resource vollständig geschrieben wurde
  16. //! return 1, wenn die Resource vollständig geschrieben wurde. 0, sonst
  17. virtual bool istEnde() const = 0;
  18. };
  19. class Writer : public StreamWriter
  20. {
  21. public:
  22. //! Setzt die Position des Bytes, das als nächstes geschrieben werden
  23. //! soll \param pos Der Index des Bytes \param ende 1, wenn der Index
  24. //! vom ende der Resource zählt. 0, wenn der Index vom Beginn der
  25. //! Resource zählt
  26. virtual void setSPosition(__int64 pos, bool ende) = 0;
  27. //! Gibt den Index des Bytes aus der Resource zurück, welches als
  28. //! nächstes geschrieben werden würde return -1, falls ein Fehler
  29. //! aufgetreten ist. Sonst die Position des Schreibzeigers
  30. virtual __int64 getSPosition() const = 0;
  31. //! Gibt die Anzahl der zu schreibenden Bytes zurück
  32. virtual __int64 getSize() const = 0;
  33. };
  34. class OStreamWriter : public StreamWriter
  35. {
  36. private:
  37. std::ostream& out;
  38. public:
  39. __declspec(dllexport) OStreamWriter(std::ostream& out);
  40. __declspec(dllexport) void schreibe(
  41. const char* bytes, int len) override;
  42. __declspec(dllexport) bool istEnde() const override;
  43. };
  44. } // namespace Framework