Writer.h 1.5 KB

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