#pragma once #include #include "Betriebssystem.h" namespace Framework { class Text; class StreamWriter { public: //! Schreibt in die Resource //! \param bytes Ein Array, der die Bytes enthält, welche in die //! Resource geschrieben werden soll \param len Wie viele Bytes in die //! Resource geschrieben werden sollen virtual void schreibe(const char* bytes, int len) = 0; //! Prüft, ob die Resource vollständig geschrieben wurde //! return 1, wenn die Resource vollständig geschrieben wurde. 0, sonst virtual bool istEnde() const = 0; }; class Writer : public StreamWriter { public: //! Setzt die Position des Bytes, das als nächstes geschrieben werden //! soll \param pos Der Index des Bytes \param ende 1, wenn der Index //! vom ende der Resource zählt. 0, wenn der Index vom Beginn der //! Resource zählt virtual void setSPosition(__int64 pos, bool ende) = 0; //! Gibt den Index des Bytes aus der Resource zurück, welches als //! nächstes geschrieben werden würde return -1, falls ein Fehler //! aufgetreten ist. Sonst die Position des Schreibzeigers virtual __int64 getSPosition() const = 0; //! Gibt die Anzahl der zu schreibenden Bytes zurück virtual __int64 getSize() const = 0; }; class OStreamWriter : public StreamWriter { private: std::ostream& out; public: __declspec(dllexport) OStreamWriter(std::ostream& out); __declspec(dllexport) void schreibe( const char* bytes, int len) override; __declspec(dllexport) bool istEnde() const override; }; } // namespace Framework