|
| Patrick's Programming Library Version 7.0.0 - Dokumentation |
Simulation von Dateizugriffen im Hauptspeicher. Mehr ...
Abgeleitet von ppl7::FileObject.
Öffentliche Typen | |
| enum | SeekOrigin { SEEKCUR =1, SEEKEND, SEEKSET } |
| Ausgangsbasis für Bewegung des Dateizeigers. Mehr ... | |
Öffentliche Methoden | |
| MemFile () | |
| Konstruktor der Klasse. Mehr ... | |
| MemFile (void *adresse, size_t size, bool writeable=false) | |
| Konstruktor der Klasse mit Angabe eines Speicherbereichs. Mehr ... | |
| MemFile (const ByteArrayPtr &memory) | |
| Konstruktor der Klasse mit Angabe eines Speicherbereichs. Mehr ... | |
| ~MemFile () | |
| char * | adr (size_t adresse) |
| virtual void | close () |
| Datei schließen. Mehr ... | |
| ppluint64 | copyFrom (FileObject &quellfile, ppluint64 quelloffset, ppluint64 bytes, ppluint64 zieloffset) |
| Daten aus einer anderen Datei kopieren. Mehr ... | |
| ppluint64 | copyFrom (FileObject &quellfile, ppluint64 bytes) |
| Daten aus einer anderen Datei kopieren. Mehr ... | |
| virtual bool | eof () const |
| Prüfen, ob Dateiende erreicht ist. Mehr ... | |
| virtual int | fgetc () |
| Zeichen lesen. Mehr ... | |
| virtual char * | fgets (char *buffer, size_t num) |
| String lesen. Mehr ... | |
| virtual wchar_t | fgetwc () |
| Wide-Character Zeichen lesen. Mehr ... | |
| virtual wchar_t * | fgetws (wchar_t *buffer, size_t num=1024) |
| Wide-Character String lesen. Mehr ... | |
| const String & | filename () const |
| Dateiname auslesen. Mehr ... | |
| virtual void | flush () |
| Gepufferte Daten schreiben. Mehr ... | |
| virtual void | fputc (int c) |
| Zeichen schreiben. Mehr ... | |
| virtual void | fputs (const char *str) |
| String schreiben. Mehr ... | |
| virtual void | fputwc (wchar_t c) |
| Wide-Character Zeichen schreiben. Mehr ... | |
| virtual void | fputws (const wchar_t *str) |
| Wide-Character String schreiben. Mehr ... | |
| virtual size_t | fread (void *ptr, size_t size, size_t nmemb) |
| Lesen eines Datenstroms. Mehr ... | |
| virtual size_t | fwrite (const void *ptr, size_t size, size_t nmemb) |
| Schreiben eines Datenstroms. Mehr ... | |
| virtual int | getFileNo () const |
| Filenummer der Datei. Mehr ... | |
| int | gets (String &buffer, size_t num=1024) |
| String lesen. Mehr ... | |
| String | gets (size_t num=1024) |
| String lesen. Mehr ... | |
| int | getws (String &buffer, size_t num=1024) |
| Wide-Character String lesen. Mehr ... | |
| String | getws (size_t num=1024) |
| Wide-Character String lesen. Mehr ... | |
| virtual bool | isOpen () const |
| Prüfen, ob eine Datei geöffnet ist. Mehr ... | |
| char * | load () |
| Den kompletten Inhalt der Datei laden. Mehr ... | |
| int | load (ByteArray &target) |
| Den kompletten Inhalt der Datei in ein Objekt laden. Mehr ... | |
| virtual void | lockExclusive (bool block=true) |
| Datei exklusiv sperren. Mehr ... | |
| virtual void | lockShared (bool block=true) |
| Datei zum Lesen sperren. Mehr ... | |
| const char * | map () |
| Datei in den Speicher mappen. Mehr ... | |
| virtual const char * | map (ppluint64 position, size_t size) |
| Datei Read-Only in den Speicher mappen. Mehr ... | |
| virtual char * | mapRW (ppluint64 position, size_t size) |
| Datei Les- und Schreibbar in den Speicher mappen. Mehr ... | |
| size_t | maxSize () const |
| String | md5 () |
| void | open (void *adresse, size_t size, bool writeable=false) |
| Speicherbereich zum Lesen öffnen. Mehr ... | |
| void | open (const ByteArrayPtr &memory) |
| Speicherbereich zum Lesen öffnen. Mehr ... | |
| void | openReadWrite (void *adresse, size_t size) |
| Speicherbereich zum Schreiben und Lesen öffnen. Mehr ... | |
| void | puts (const String &str) |
| String schreiben. Mehr ... | |
| void | putsf (const char *fmt,...) |
| Formatierten String schreiben. Mehr ... | |
| void | putws (const WideString &str) |
| Wide-Character-String schreiben. Mehr ... | |
| size_t | read (void *target, size_t bytes, ppluint64 fileposition) |
| Daten lesen. Mehr ... | |
| size_t | read (void *target, size_t bytes) |
| Daten lesen. Mehr ... | |
| size_t | read (ByteArray &target, size_t bytes) |
| Daten in ein Objekt einlesen. Mehr ... | |
| virtual void | rewind () |
| Dateizeiger an den Anfang der Datei bringen. Mehr ... | |
| virtual void | seek (ppluint64 position) |
| Dateizeiger auf gewünschte Stelle bringen. Mehr ... | |
| virtual ppluint64 | seek (pplint64 offset, SeekOrigin origin) |
| Dateizeiger auf gewünschte Stelle bringen. Mehr ... | |
| void | setFilename (const char *filename) |
| Dateiname festlegen. Mehr ... | |
| void | setFilename (const String &filename) |
| Dateiname festlegen. Mehr ... | |
| virtual void | setMapReadAhead (size_t bytes) |
| Minimalgröße des Speicherblocks bei Zugriffen mit FileObject::Map. Mehr ... | |
| void | setMaxSize (size_t size) |
| Maximale Dateigröße festlegen. Mehr ... | |
| virtual ppluint64 | size () const |
| Größe der geöffneten Datei. Mehr ... | |
| virtual void | sync () |
| Dateiänderungen sofort auf die Platte schreiben. Mehr ... | |
| virtual ppluint64 | tell () |
| Aktuelle Dateiposition ermitteln. Mehr ... | |
| virtual void | truncate (ppluint64 length) |
| Datei abschneiden. Mehr ... | |
| virtual void | unlock () |
| Dateisperre aufheben. Mehr ... | |
| virtual void | unmap () |
| Mapping aufheben. Mehr ... | |
| size_t | write (const void *source, size_t bytes, ppluint64 fileposition) |
| Daten schreiben. Mehr ... | |
| size_t | write (const void *source, size_t bytes) |
| Daten schreiben. Mehr ... | |
| size_t | write (const ByteArrayPtr &object, size_t bytes=0) |
| Daten eines von Variant abgeleiteten Objekts schreiben. Mehr ... | |
Geschützte Attribute | |
| char * | buffer |
Private Methoden | |
| void | increaseBuffer (size_t bytes) |
| void | resizeBuffer (size_t size) |
Private Attribute | |
| size_t | buffersize |
| size_t | maxsize |
| char * | MemBase |
| size_t | mysize |
| size_t | pos |
| bool | readonly |
|
inherited |
| Aufzählungswerte | |
|---|---|
| SEEKCUR |
Ausgehend von der aktuellen Position des Dateizeigers. |
| SEEKEND |
Ausgehend vom Ende der Datei. |
| SEEKSET |
Ausgehend vom Anfang der Datei. |
| ppl7::MemFile::MemFile | ( | ) |
| ppl7::MemFile::MemFile | ( | void * | adresse, |
| size_t | size, | ||
| bool | writeable = false |
||
| ) |
adresse mit einer Größe von size Bytes übergeben. Sämtliche Dateizugriffe werden in diesem Speicherbereich simuliert.| adresse | Pointer auf den zu verwendenden Speicherbereich |
| size | Größe des Speicherbereichs |
| writeable | Gibt an, ob der Speicherbereich auch beschreibbar sein soll. |
writeable auf "true" gesetzt, geht die Verwaltung des Speichers an die MemFile-Klasse über. Der Speicher darf nicht mehr von der Applikation verändert oder freigegeben werden! | ppl7::MemFile::MemFile | ( | const ByteArrayPtr & | memory | ) |
Mit diesem Konstruktor wird gleichzeitig ein Pointer auf den Speicherbereich adresse mit einer Größe von size Bytes übergeben. Sämtliche Dateizugriffe werden in diesem Speicherbereich simuliert. Ein Schreibzugriff auf diesen Speicherbereich ist nicht möglich.
| adresse | Pointer auf den zu verwendenden Speicherbereich |
| size | Größe des Speicherbereichs |
| ppl7::MemFile::~MemFile | ( | ) |
| char * ppl7::MemFile::adr | ( | size_t | adresse | ) |
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
inherited |
bytes Bytes ab der Position quelloffset der Quelldatei quellfile gelesen an die Position zieloffset dieser Datei kopiert.| quellfile | Das Dateiobjekt, aus dem gelesen werden soll |
| quelloffset | Position innerhalb der Quelldatei, ab der die Daten gelesen werden sollen |
| bytes | Anzahl zu kopierender Bytes |
| zieloffset | Position in dieser Datei, an die die Daten geschrieben werden sollen |
|
inherited |
quellfile an den aktuellen Zeiger dieser Datei kopiert.| quellfile | Das Dateiobjekt, aus dem gelesen werden soll |
| bytes | Anzahl zu kopierender Bytes |
|
virtual |
true zurück, wenn das Dateiende erreicht wurde, sonst false Falls die Datei nicht geöffnet war, wird wird eine Exception geworfen. Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
num minus ein Zeichen aus der Datei und speichert sie in dem Puffer, auf den buffer zeigt. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.| buffer | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss vorher vom Aufrufer allokiert worden sein und mindestens num Bytes groß sein. |
| num | Anzahl zu lesender Zeichen |
buffer zurückgegeben, bei Dateiende wird NULL zurückgegeben. Im Fehlerfall wird eine Exception geworfen. Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
num minus ein Zeichen (nicht Bytes) eines Wide-Character-Strings aus der Datei und speichert sie in dem Puffer, auf den buffer zeigt. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.| buffer | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss vorher vom Aufrufer allokiert worden sein und mindestens num * sizeof(wchar_t) Bytes groß sein. |
| num | Anzahl zu lesender Zeichen |
buffer zurückgegeben, bei Dateiende wird NULL zurückgegeben. Im Fehlerfall wird eine Exception geworfen.| UnimplementedVirtualFunctionException | geworfen. |
Erneute Implementation von ppl7::FileObject.
|
inherited |
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
c, umgesetzt in ein unsigned char, in den Ausgabestrom. | c | Zu schreibendes Zeichen |
Erneute Implementation von ppl7::FileObject.
|
virtual |
str ohne sein nachfolgendes 0-Byte in den Ausgabestrom.Erneute Implementation von ppl7::FileObject.
|
virtual |
c in den Ausgabestrom. | c | Zu schreibendes Zeichen |
Erneute Implementation von ppl7::FileObject.
|
virtual |
str ohne sein nachfolgendes 0-Byte in den Ausgabestrom.Erneute Implementation von ppl7::FileObject.
|
virtual |
nmemb Datenelemente vom Dateistrom und speichert es an der Speicherposition, die durch ptr bestimmt ist. Jedes davon ist \ size Byte lang.| [out] | ptr | Pointer auf den Speicherbereich, in den die gelesenen Daten abgelegt werden sollen. Der Aufrufer muss vorher mindestens size * nmemb Bytes Speicher reserviert haben. |
| [in] | size | Größe der zu lesenden Datenelemente |
| [in] | nmemb | Anzahl zu lesender Datenelemente |
| EndOfFileException | Wird geworfen, wenn das Dateiende erreicht wurde |
Erneute Implementation von ppl7::FileObject.
|
virtual |
nmemb Datenelemente der Größe size Bytes, in den Dateistrom. Sie werden von der Speicherstelle, die durch ptr angegeben ist, gelesen.| ptr | Pointer auf den Beginn des zu schreibenden Speicherbereiches. |
| size | Größe der zu schreibenden Datenelemente |
| nmemb | Anzahl zu schreibender Datenelemente |
Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
inherited |
num minus ein Zeichen aus der Datei und speichert sie im String-Objekt buffer. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.| buffer | String-Objekt, in dem die gelesenen Daten gespeichert werden sollen. |
| num | Anzahl zu lesender Zeichen |
buffer ist im Fehlerfall undefiniert.
|
inherited |
num minus ein Zeichen aus der Datei und liefert deren Inhalt als String-Objekt zurück. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.| num | Anzahl zu lesender Zeichen |
|
inherited |
num minus ein Zeichen aus der Datei und speichert sie im Wide-Character-String-Objekt buffer. Das Lesen stoppt nach einem WEOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.| buffer | Wide-Character-String-Objekt, in dem die gelesenen Daten gespeichert werden sollen. |
| num | Anzahl zu lesender Zeichen. Hierbei handelt es sich tatsächlich um Zeichen, nicht um Bytes. Die Anzahl zu lesender Bytes wird intern mit der Formel num * sizeof(wchar_t) errechnet. |
buffer ist im Fehlerfall undefiniert.
|
inherited |
num minus ein Zeichen aus der Datei liefert sie als Wide-Character-String-Objekt zurück. Das Lesen stoppt nach einem WEOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.| num | Anzahl zu lesender Zeichen. Hierbei handelt es sich tatsächlich um Zeichen, nicht um Bytes. Die Anzahl zu lesender Bytes wird intern mit der Formel num * sizeof(wchar_t) errechnet. |
|
private |
|
virtual |
true zurück, wenn die Datei offen ist, ansonsten false. Erneute Implementation von ppl7::FileObject.
|
inherited |
free wieder freigegeben werden.
|
inherited |
object geladen.| [out] | object | Das gewünschte Zielobjekt |
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
inherited |
mmap nicht zur Verfügung, wird die Datei in den Hauptspeicher geladen. Die File-Klasse kümmert sich selbst daraum, dass der Speicher auch wieder freigegeben wird.
|
virtual |
mmap nicht zur Verfügung, wird die Datei in den Hauptspeicher geladen. Die File-Klasse kümmert sich selbst daraum, dass der Speicher auch wieder freigegeben wird. | [in] | position | Die gewünschte Startposition innerhalb der Datei |
| [in] | size | Die Anzahl Bytes, die gemapped werden sollen. |
Erneute Implementation von ppl7::FileObject.
|
virtual |
mmap nicht zur Verfügung, wird die Datei in den Hauptspeicher geladen. Die File-Klasse kümmert sich selbst daraum, dass der Speicher nach Gebrauch wieder zurück in die Datei geschrieben und freigegeben wird. | [in] | position | Die gewünschte Startposition innerhalb der Datei |
| [in] | size | Die Anzahl Bytes, die gemapped werden sollen. |
Erneute Implementation von ppl7::FileObject.
| size_t ppl7::MemFile::maxSize | ( | ) | const |
|
inherited |
| void ppl7::MemFile::open | ( | void * | adresse, |
| size_t | size, | ||
| bool | writeable = false |
||
| ) |
Mit dieser Funktion wird die simulierte Datei im Hauptspeicher geöffnet. Dazu muss mit adresse ein Pointer auf den Beginn des zu verwendenden Hauptspeichers angegeben werden, sowie mit size seine Größe. Sämtliche nachfolgenden Dateizugriffe werden dann in diesem Speicherbereich simuliert. Ein Schreibender Zugriff ist nicht möglich.
| adresse | Pointer auf den zu verwendenden Speicherbereich |
| size | Größe des Speicherbereichs |
writeable auf "true" gesetzt, geht die Verwaltung des Speichers an die MemFile-Klasse über. Der Speicher darf nicht mehr von der Applikation verändert oder freigegeben werden! | void ppl7::MemFile::open | ( | const ByteArrayPtr & | memory | ) |
Mit dieser Funktion wird die simulierte Datei im Hauptspeicher zum Lesen geöffnet. Dazu muss mit adresse ein Pointer auf den Beginn des zu verwendenden Hauptspeichers angegeben werden, sowie mit size seine Größe. Sämtliche nachfolgenden Dateizugriffe werden dann in diesem Speicherbereich simuliert. Ein Schreibender Zugriff ist nicht möglich.
| memory | Referenz auf eine ByteArrayPtr-Klasse, die den zu verwendenden Speicherbereich enthält |
| void ppl7::MemFile::openReadWrite | ( | void * | adresse, |
| size_t | size | ||
| ) |
Mit dieser Funktion wird die simulierte Datei im Hauptspeicher zum Lesen und Schreiben geöffnet. Dazu muss mit adresse ein Pointer auf den Beginn des zu verwendenden Hauptspeichers angegeben werden, sowie mit size seine initiale Größe. Sämtliche nachfolgenden Dateizugriffe werden dann in diesem Speicherbereich simuliert. Erfolgt ein schreibender Zugriff über dessen Ende hinaus, wird der Speicherbereich automatisch vergrößert.
| adresse | Pointer auf den zu verwendenden Speicherbereich |
| size | Größe des Speicherbereichs |
|
inherited |
str ohne sein nachfolgendes 0-Byte in den Ausgabestrom.| str | String-Objekt mit den zu schreibenden Daten |
|
inherited |
fmt und Einsetzen der optionalen Parameter ohne sein nachfolgendes 0-Byte in den Ausgabestrom.| fmt | Pointer auf den Formatierungsstring |
| ... | Optionale Parameter, die im Formatierungsstring verwendet werden. |
|
inherited |
str ohne sein nachfolgendes 0-Byte in den Ausgabestrom.| str | String-Objekt mit den zu schreibenden Daten |
|
inherited |
| target | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss zuvor vom Aufrufer allokiert worden sein und mindestens bytes gross sein. |
| bytes | Anzahl zu lesender Bytes |
| fileposition | Position in der Datei, an der die Daten gelesen werden sollen |
|
inherited |
bytes Bytes ab der aktuellen Position des Dateistroms und speichert sie im Hauptspeicher an der duch target bestimmten Position. Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fread auf, um den eigentlichen Lesevorgang durchzuführen.| target | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss zuvor vom Aufrufer allokiert worden sein und mindestens bytes gross sein. |
| bytes | Anzahl zu lesender Bytes |
|
inherited |
bytes Bytes ab der aktuellen Position des Dateistroms und speichert sie im Objekt target.Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fread auf, um den eigentlichen Lesevorgang durchzuführen.
| target | Das Objekt, in dem die gelesenen Daten gespeichert werden sollen. |
| bytes | Anzahl zu lesender Bytes |
|
private |
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
| [in] | position | Gewünschte Position innerhalb der Datei |
| diverse |
Erneute Implementation von ppl7::FileObject.
|
virtual |
offset zu der Position, die durch origin angegeben ist. Wenn origin auf SEEK_SET, SEEK_CUR, oder SEEK_END, gesetzt ist, ist der Offset relativ zum Dateianfang, der aktuellen Position, oder dem Dateiende.Ein erfolgreicher Aufruf der Funktion fseek löscht den Dateiendezeiger für den Stream.
| offset | Anzahl Bytes, die gesprungen werden soll. |
| origin | Gibt die Richtung an, in die der Dateizeiger bewegt werden soll. Es kann einen der folgenden Werte annehmen:
|
Erneute Implementation von ppl7::FileObject.
|
inherited |
| [in] | filename | Ein Formatstring oder der Dateiname |
| [in] | ... | beliebig viele Parameter, sofern filename ein Formatstring ist |
|
inherited |
| [in] | filename | Ein CString, der den Dateinamen enthält. |
|
virtual |
| bytes | Anzahl Bytes, die im Voraus gemapped werden sollen. |
Erneute Implementation von ppl7::FileObject.
| void ppl7::MemFile::setMaxSize | ( | size_t | size | ) |
size. Standardmäßig gibt es keine Limitierung, die Datei kann somit so groß werden, wie Hauptspeicher zur Verfügung steht.| [in] | size | Maximale Größe in Bytes. Der Wert "0" hebt die Limitierung auf. |
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
Ein Aufruf dieser Funktion bewirkt, dass alle Dateiänderungen sofort auf die Festplatte geschrieben werden. Sie sollte daher vor dem Schließen einer kritischen Datei mit CFile::Close aufgerufen werden, unter Umständen sogar nach jedem Schreibzugriff.
Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
length Bytes abgeschnitten wird. | length | Position, an der die Datei abgeschnitten werden soll. |
Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
virtual |
Erneute Implementation von ppl7::FileObject.
|
inherited |
| source | Pointer auf den Speicherbereich, der geschrieben werden soll |
| bytes | Anzahl zu schreibender Bytes |
| fileposition | Position in der Datei, an der die Daten gespeichert werden solle |
|
inherited |
| source | Pointer auf den Speicherbereich, der geschrieben werden soll |
| bytes | Anzahl zu schreibender Bytes |
|
inherited |
| object | Das zu speichernde Variant Objekt |
| bytes | Anzahl zu schreibender Bytes |
|
protectedinherited |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |