#pragma once #include "Reader.h" #include "ReferenceCounter.h" #include "Writer.h" namespace Framework { class InMemoryBuffer : public Reader, public Writer, public virtual ReferenceCounter { private: char** buffer; int readPos; int writePos; int numBuffers; int maxWritePos; public: DLLEXPORT InMemoryBuffer(); DLLEXPORT ~InMemoryBuffer(); //! Lie�t aus der Datei //! \param bytes Ein Array, der mit Bytes aus der Resource gef�llt //! werden soll \param len Wie viele Bytes aus der Resource gelesen //! werden sollen DLLEXPORT void lese(char* bytes, int len) override; //! 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 DLLEXPORT void schreibe(const char* bytes, int len) override; //! Lie�t die n�chste zeile der Resource ein //! \return Die gelesene Zeile als Text mit zeilenumbruch DLLEXPORT Text* leseZeile() override; //! Pr�ft, ob die Resource vollst�ndig gelesen wurde //! return 1, wenn die Resource vollst�ndig gelesen wurde. 0, sonst DLLEXPORT bool istEnde() const override; //! Setzt die Position des Bytes, das als n�chstes gelesen 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 DLLEXPORT void setLPosition(__int64 pos, bool ende) override; //! 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 DLLEXPORT void setSPosition(__int64 pos, bool ende) override; //! Gibt den Index des Bytes aus der Resource zur�ck, welches als //! n�chstes gelesen werden w�rde return -1, falls ein Fehler //! aufgetreten ist. Sonst die Position des Lesezeigers DLLEXPORT __int64 getLPosition() const override; //! 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 DLLEXPORT __int64 getSPosition() const override; //! Gibt die Anzahl der zu lesenden Bytes zur�ck DLLEXPORT __int64 getSize() const override; }; } // namespace Framework