12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #pragma once
- #include "Reader.h"
- #include "Writer.h"
- #include "ReferenceCounter.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;
- };
- }
|