#pragma once

#include "Betriebssystem.h"

namespace Framework
{
    class Text;

    class Reader
    {
    public:
        // Setzt die Position des Bytes, das als n�chstes gelesen werden soll
        //  pos: Der Index des Bytes
        //  ende: 1, wenn der Index vom ende der Resource z�hlt. 0, wenn der Index vom Beginn der Resource z�hlt
        virtual void setLPosition( __int64 pos, bool ende ) = 0;
        // Lie�t aus der Datei
        //  bytes: Ein Array, der mit Bytes aus der Resource gef�llt werden soll
        //  len: Wie viele Bytes aus der Resource gelesen werden sollen
        virtual void lese( char *bytes, int len ) = 0;
        // Lie�t die n�chste zeile der Resource ein
        //  return: Die gelesene Zeile als Text mit zeilenumbruch
        virtual Text *leseZeile() = 0;
        // Pr�ft, ob die Resource vollst�ndig gelesen wurde
        //  return 1, wenn die Resource vollst�ndig gelesen wurde. 0, sonst
        virtual bool istEnde() const = 0;
        // 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
        virtual __int64 getLPosition() const = 0;
    };
}