PPL6-Icon Patrick's Programming Library Version 6.4.21 - Dokumentation
ppl6::CMemory Klassenreferenz

Verwaltung eines einzelnen Speicherblocks. Mehr ...

Öffentliche Methoden

 CMemory ()
 Konstruktor ohne Argumente. Mehr ...
 
 CMemory (const CMemoryReference &other)
 Copy-Konstruktor. Mehr ...
 
 CMemory (const CBinary &bin)
 Konstruktor mit Kopieren aus einem CBinary-Objekt. Mehr ...
 
 CMemory (void *adr, size_t size)
 Konstruktor mit Angabe einer Speicheradresse und Größe. Mehr ...
 
 CMemory (size_t size)
 Konstruktor mit Speicher-Allokierung. Mehr ...
 
 ~CMemory ()
 Destruktor der Klasse. Mehr ...
 
void * adr () const
 Adresse des Speicherblocks auslesen. Mehr ...
 
void * calloc (size_t size)
 Speicher allokieren und mit 0 initialisieren. Mehr ...
 
void * copy (void *adr, size_t size)
 Speicherbereich kopieren. Mehr ...
 
void * copy (const CMemoryReference &other)
 Speicherbereich aus einem anderen CMemory-Objekt kopieren. Mehr ...
 
void * copy (const CBinary &bin)
 Speicherbereich von einem CBinary-Objekt kopieren. Mehr ...
 
void free ()
 Speicher freigeben. Mehr ...
 
void * fromHex (const CString &hex)
 
bool isEmpty () const
 Prüfen, ob der Referenzierte Speicher eine Größe von 0 hat. Mehr ...
 
bool isNull () const
 Prüfen, ob Speicher referenziert ist. Mehr ...
 
void * malloc (size_t size)
 Speicher allokieren. Mehr ...
 
 operator CBinary () const
 Referenz auf den Speicherbereich als CBinary-Objekt zurückgeben. Mehr ...
 
 operator void * () const
 Adresse des Speicherblocks auslesen. Mehr ...
 
CMemoryoperator= (const CMemoryReference &other)
 Speicherreferenz von anderem CMemory-Objekt kopieren. Mehr ...
 
CMemoryoperator= (const CBinary &bin)
 Speicherbereich von einem CBinary-Objekt kopieren. Mehr ...
 
unsigned char operator[] (size_t pos) const
 Einzelnes Byte aus dem Speicherbereich kopieren. Mehr ...
 
void set (void *adr, size_t size)
 Speicherverwaltung übernehmen. Mehr ...
 
void set (const CMemoryReference &other)
 Speicherbereich von einer anderen Referenz CMemoryReference- oder CMemory-Instanz kopieren. Mehr ...
 
void set (const CBinary &bin)
 Speicherbereich von einem CBinary-Objekt kopieren. Mehr ...
 
size_t size () const
 Größe des Speicherblocks auslesen. Mehr ...
 
CString toHex () const
 Speicherbereich als Hexwerte in einem String exportieren. Mehr ...
 

Ausführliche Beschreibung

Beschreibung:
Mit dieser Klasse kann ein einzelner Speicherblock verwaltet werden. Dieser besteht immer aus einer Speicheraddresse und der Größe des Speicherbereichs in Bytes.
Der Speicherbereich kann mit CMemory::set gesetzt werden und mit CMemory::adr und CMemory::size ausgelesen werden. Außerdem kann mit dem Operator [] ein bestimmtes Byte aus dem Speicherbereich ausgelesen werden.
Im Gegensatz zu CMemoryReference verwaltet die Klasse den Speicherbereich selbst. Das heisst der verwaltete Speicher wird bei Veränderungen oder Beendigung der Klasse automatisch freigegeben.
Mit CMemory::malloc oder CMemory::calloc wird Speicher allokiert, mit CMemory::free kann er vorzeitig wieder freigegeben werden. Mit CMemory::copy wird der Speicher eines anderen CMemory- oder CMemoryReference-Objekts oder aus einer angegebenen Speicheradresse dupliziert.
Mit CMemory::set oder durch den Konstruktor angegebener Speicherbereich wird nicht dupliziert, wird aber fortan von der Klasse verwaltet, das heisst die Anwendung darf diesen nicht selbst freigeben.
Siehe auch
Seit
Diese Klasse wurde mit Version 6.3.3 eingeführt

Beschreibung der Konstruktoren und Destruktoren

ppl6::CMemory::CMemory ( )
Beschreibung:
Dieser Konstruktor erstellt eine Inszanz der Klasse ohne einen zugeweisenen Speicherbereich
ppl6::CMemory::CMemory ( const CMemoryReference other)
Beschreibung:
Mit diesem Konstruktor wird der Speicherbereich eines anderen CMemory- oder CMemoryReference- Objekts kopiert.
Parameter
[in]otherReferenz auf eine andere CMemory- oder CMemoryReference-Klasse
Ausnahmebehandlung
OutOfMemoryExceptionDiese Exception wird geworfen, wenn der Speicher nicht allokiert werden konnte
ppl6::CMemory::CMemory ( const CBinary bin)
Beschreibung:
Mit diesem Konstruktor wird der Speicher eines CBinary-Objekts kopiert.
Parameter
[in]binReferenz auf ein CBinary-Objekt
ppl6::CMemory::CMemory ( void *  adr,
size_t  size 
)
Beschreibung:
Mit diesem Konstruktor wird eine neue Instanz der Klasse erzeugt, die die Verwaltung des mit adr und size angegebenen Speicherbereichs übernimmt. Die Anwendung darf diesen daher nicht selbst feriegeben. Der Speicher muss mit "malloc" anegelegt worden sein.
Parameter
[in]adrPointer auf den Beginn des Speicherbereichs
[in]sizeGröße des Speicherbereichs in Bytes
ppl6::CMemory::CMemory ( size_t  size)
Beschreibung:
Mit diesem Konstruktor wird eine Instanz der Klasse erzeugt, die einen Speicherblock mit der Größe size allokiert und diesen selbst verwaltet.
Parameter
[in]sizeGewünschte Größe des Speicherblocks in Bytes
Ausnahmebehandlung
OutOfMemoryExceptionDiese Exception wird geworfen, wenn der Speicher nicht allokiert werden konnte
ppl6::CMemory::~CMemory ( )
Beschreibung:
Der Destruktor sort dafür, dass der allokierte Speicher mittes "free" wieder freigegeben wird.

Dokumentation der Elementfunktionen

void * ppl6::CMemoryReference::adr ( ) const
inherited
Beschreibung:
Mit dieser Funktion wird die Adresse des Speicherblocks ausgelesen
Rückgabe
Adresse des Speicherblocks
void * ppl6::CMemory::calloc ( size_t  size)
Beschreibung:
Mit dieser Funktion wird ein neuer Speicherblock mit der Größe von size Bytes allokiert, der Inhalt mit 0 initialisiert und dessen Adresse als Ergebnis zurückgeliefert. Das CMemory-Objekt übernimmt die Verwaltung des Speicherblocks.
Parameter
[in]sizeGewünschte Größe des Speicherblocks.
Rückgabe
Pointer auf den Beginn des allokierten Speichers, oder NULL, wenn ein Fehler beim Allokieren aufgetreten ist. Ein entsprechender Fehlercode wird gesetzt.
void * ppl6::CMemory::copy ( void *  adr,
size_t  size 
)
Beschreibung:
Mit dieser Funktion wird der durch adr und size angegebene Speicherbereich in die CMemory-Klasse kopiert. Die Klasse allokiert dafür zunächst den erforderlichen Speicher und übernimmt dessen Verwaltung.
Parameter
[in]adr
[in]size
Rückgabe
Bei erfolgreichem Kopieren liefert die Funktion einen Pointer auf den neu allokierten Speicherbereich zurück. Im Fehlerfall wird NULL zurückgegeben und ein entsprechender Fehlercode gesetzt.
Zu beachten
Falls die Klasse vor Aufruf bereits Speicher verwaltet hat, wird dieser zuerst freigegeben.
void * ppl6::CMemory::copy ( const CMemoryReference other)
Beschreibung:
Mit dieser Funktion wird der durch other referenzierte Speicherbereich in diese Instanz der CMemory-Klasse kopiert. Die Klasse allokiert dafür zunächst den dafür erforderlichen Speicher und übernimmt dessen Verwaltung.
Parameter
[in]otherReferenz auf das CMemory- oder CMemoryReference-Objekt, von dem der Speicher kopiert werden soll.
Rückgabe
Bei erfolgreichem Kopieren liefert die Funktion einen Pointer auf den neu allokierten Speicherbereich zurück. Im Fehlerfall wird NULL zurückgegeben und ein entsprechender Fehlercode gesetzt.
void * ppl6::CMemory::copy ( const CBinary bin)
Beschreibung:
Mit dieser Funktion wird der Speicher eines CBinary-Objekts kopiert. Sie ist identisch zu CMemory::copy.
Parameter
[in]binReferenz auf ein CBinary-Objekt
Zu beachten
Falls die Klasse vor Aufruf bereits Speicher verwaltet hat, wird dieser zuerst freigegeben.
void ppl6::CMemory::free ( )
Beschreibung:
Wird der Speicher vom CMemory-Objekt verwaltet, wird dieser durch Aufruf dieser Funktion wieder freigegeben. Bei nichtverwaltetem Speicher wird lediglich die interne Referenz auf NULL gesetzt, aber der Speicher nicht freigegeben.
void * ppl6::CMemory::fromHex ( const CString hex)
bool ppl6::CMemoryReference::isEmpty ( ) const
inherited
Beschreibung:
Mit dieser Funktion kann geprüft werden, ob die Klasse zur Zeit eine Referenz auf einen Speicherbereich enthält und dieser größer als 0 Byte ist.
Rückgabe
Enthält die Klasse keine Referenz auf einen Speicherbereich, der mindestens 1 Byte gross ist, liefert die Funktion true zurück, andernfalls false.
bool ppl6::CMemoryReference::isNull ( ) const
inherited
Beschreibung:
Mit dieser Funktion kann geprüft werden, ob die Klasse zur Zeit eine Referenz auf einen Speicherbereich enthält.
Rückgabe
Enthält die Klasse keine Referenz auf einen Speicherbereich, liefert die Funktion true zurück, andernfalls false.
void * ppl6::CMemory::malloc ( size_t  size)
Beschreibung:
Mit dieser Funktion wird ein neuer Speicherblock mit der Größe von size Bytes allokiert und dessen Adresse als Ergebnis zurückgeliefert. Das CMemory-Objekt übernimmt die Verwaltung des Speicherblocks.
Parameter
[in]sizeGewünschte Größe des Speicherblocks.
Rückgabe
Pointer auf den Beginn des allokierten Speichers, oder NULL, wenn ein Fehler beim Allokieren aufgetreten ist. Ein entsprechender Fehlercode wird gesetzt.
ppl6::CMemoryReference::operator CBinary ( ) const
inherited
Beschreibung:
Den Referenzierten Speicher als CBinary-Objekt zurückgeben.
Rückgabe
CBinary-Objekt mit Referenz auf den Speicherbereich dieses Objekts
ppl6::CMemory::operator void * ( ) const
Beschreibung:
Mit diesem Operator wird die Adresse des Speicherblocks ausgelesen
Rückgabe
Adresse des Speicherblocks
CMemory & ppl6::CMemory::operator= ( const CMemoryReference other)
Beschreibung:
Mit diesem Operator wird der Speicherbereich eines anderen CMemory- oder CMemoryReference-Objekts kopiert. Er ist identisch zur Funktion CMemory::copy.
Parameter
[in]otherReferenz auf ein anderes CMemory- oder CMemoryReference-Objekt.
Rückgabe
Referenz auf das Objekt
CMemory & ppl6::CMemory::operator= ( const CBinary bin)
Beschreibung:
Mit dieser Funktion wird der Speicher eines CBinary-Objekts kopiert. Sie ist identisch zu CMemory::copy.
Parameter
[in]binReferenz auf ein CBinary-Objekt
Zu beachten
Falls die Klasse vor Aufruf bereits Speicher verwaltet hat, wird dieser zuerst freigegeben.
unsigned char ppl6::CMemory::operator[] ( size_t  pos) const
Beschreibung:
Mit dem Operator [] kann ein bestimmtes Byte pos aus dem Speicherbereich ausgelesen werden. Ist kein Speicher referenziert oder ist pos größer als der Speicherblock, wird eine Exception ausgelöst.
Parameter
[in]posAuszulesendes Byte, beginnend mit 0.
Rückgabe
Wert der Speicherstelle
Ausnahmebehandlung
OutOfBoundsEceptionDiese Exception wird geworfen, wenn die mit pos angegebene Speicherstelle ausseralb des referenzierten Speichers liegt oder kein Speicher referenziert ist.
void ppl6::CMemory::set ( void *  adr,
size_t  size 
)
Beschreibung:
Mit dieser Funktion wird der Klasse die Verwaltung des Speicherbereich mit der Adresse adr und der Größe size übergeben. Der Speicher muss zuvor mit "malloc" bzw. "calloc" allokiert worden sein und darf von der Anwendung selbst nicht freigegeben werden.
Parameter
[in]adrStartadresse des Speicherbereichs
[in]sizeGröße des Speicherbereichs in Bytes
Zu beachten
Falls die Klasse vor Aufruf bereits Speicher verwaltet hat, wird dieser zuerst freigegeben.
void ppl6::CMemory::set ( const CMemoryReference other)
Beschreibung:
Mit dieser Funktion wird der Speicher einer anderen CMemoryReference- oder CMemory-Instanz kopiert. Sie ist identisch zu CMemory::copy.
Parameter
[in]otherReferenz auf ein anderes CMemoryReference- oder CMemory-Objekt.
Zu beachten
Falls die Klasse vor Aufruf bereits Speicher verwaltet hat, wird dieser zuerst freigegeben.
void ppl6::CMemory::set ( const CBinary bin)
Beschreibung:
Mit dieser Funktion wird der Speicher eines CBinary-Objekts kopiert. Sie ist identisch zu CMemory::copy.
Parameter
[in]binReferenz auf ein CBinary-Objekt
Zu beachten
Falls die Klasse vor Aufruf bereits Speicher verwaltet hat, wird dieser zuerst freigegeben.
size_t ppl6::CMemoryReference::size ( ) const
inherited
Beschreibung:
Mit dieser Funktion kann die Größe des Speicherblocks ausgelesen werden.
Rückgabe
Größe des Speicherblocks oder 0, wenn kein Speicher zugeordnet ist.
CString ppl6::CMemoryReference::toHex ( ) const
inherited
Beschreibung:
Der referenzierte Speicherbereich wird als String mit Hexadezimalwerten exportiert, wobei jedes Byte als zwei Zeichen langer Hexadezimalwert dargestellt wird.
Rückgabe
String mit Hexadezimal-Werten

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: