Objet EMemory

 

L'objet EMemory permet de gérer la mémoire.

Il est vivement conseillé de lire (voire de survoler) la partie Base en premier, elle renferme un concentré de certaines fonctionnalités et méthodes d'utilisation de l'objet.

 

Fichier include : e_memory.h ou INC_E_MEMORY
Activation pré-processeur : E_MEMORY
Version actuelle : 1.0.0
Pré-requis : 1.0.0 min
Objet inter-connectable : ETrace 1.0.0 min

 

Sommaire :

» Base
» Variable (1)
» Enumération (1)
» Structure (1)
» Constructeur (6)
» Destructeur (1)
» Opérateur (4)
» Version (12)
» Pointeur (13)
» Trace (3)
» Statut de l'objet (5)
» Statut de l'offset (2)
» Gestion de la taille (6)
» Ré-initialisation (1)
» Tapissage / Nettoyage (3)
» Copie (5)
» Recherche (4)
» Décompte (4)
» Invertion (5)
» Insertion (10)
» Concaténation (5)
» Suppression (6)
» Substitution (4)
» Déplacement (1)

 

 

Variable
Variable
Variable membre de l'objet.

 

Enumération
enum EMemory::<...>
Enumération de valeurs constantes.

 

Structure
struct SC_BLOCK;
Structure pour l'utilisation en simultané de plusieurs blocs d'octets.

 

Constructeur
EMemory( void );
Constructeur par défaut.
EMemory( ulonglong ullSize );
Constructeur avec allocation d'un espace de travail non nettoyé.
EMemory( ulonglong ullSize, uchar ucByteToFill );
Constructeur avec allocation d'un espace de travail nettoyé à l'aide d'un tapissage d'un octet.
EMemory( ulonglong ullSize, void *pBlockToFill, ulonglong ullBlockToFillSize );
Constructeur avec allocation d'un espace de travail nettoyé à l'aide d'un tapissage d'un bloc d'octets.
EMemory( void *pBlockToCopy, ulonglong ullBlockToCopySize );
Constructeur avec allocation d'un espace de travail pour y stocker un bloc d'octets.
EMemory( EMemory &eMemory );
Constructeur de copie

 

Destructeur
~EMemory( void );
Destructeur.

 

Opérateur
EMemory& operator = ( EMemory &eMemory );
Opérateur de copie.
EMemory& operator += ( EMemory &eMemory );
Opérateur de concaténation.
uchar& operator [] ( ulonglong ullOffset );
Opérateur de valeur indexée.
void* operator () ( ulonglong ullOffset );
Opérateur d'offset indexé.

 

Version
void VersionTrace( void );
Afficher les informations de version de la librairie en cours d'utilisation.
long VersionMajorGet( void );
Récupérer le numéro de version majeur de la librairie en cours d'utilisation.
long VersionMinorGet( void );
Récupérer le numéro de version mineur de la librairie en cours d'utilisation.
long VersionRevisionGet( void );
Récupérer le numéro de version de révision de la librairie en cours d'utilisation.
BOOL VersionDebugGet( void );
Récupérer si le mode de compilation est DEBUG.
BOOL VersionReleaseGet( void );
Récupérer si le mode de compilation est RELEASE.
BOOL VersionDynamicGet( void );
Récupérer si le mode de compilation est DYNAMIC.
BOOL VersionStaticGet( void );
Récupérer si le mode de compilation est STATIC.
BOOL VersionAsciiGet( void );
Récupérer si le mode de compilation est ASCII.
BOOL VersionUnicodeGet( void );
Récupérer si le mode de compilation est UNICODE.
BOOL Version32Get( void );
Récupérer si le mode de compilation est 32 bits.
BOOL Version64Get( void );
Récupérer si le mode de compilation est 64 bits.

 

Pointeur
void* PointerGet( void );
Récupérer le pointeur, de type void, de l'espace de travail alloué.
void* PointerVoidGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type void, de l'espace de travail alloué.
char* PointerCharGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type char, de l'espace de travail alloué.
uchar* PointerUCharGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type unsigned char, de l'espace de travail alloué.
wchar_t* PointerWCharGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type wchar, de l'espace de travail alloué.
short* PointerShortGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type short, de l'espace de travail alloué.
ushort* PointerUShortGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type unsigned short, de l'espace de travail alloué.
int* PointerIntGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type int, de l'espace de travail alloué.
uint* PointerUIntGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type unsigned int, de l'espace de travail alloué.
long* PointerLongGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type long, de l'espace de travail alloué.
ulong* PointerULongGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type unsigned long, de l'espace de travail alloué.
longlong* PointerLongLongGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type longlong, de l'espace de travail alloué.
ulonglong* PointerULongLongGet( ulonglong ullOffset = 0 );
Récupérer le pointeur offsetisé, de type unsigned longlong, de l'espace de travail alloué.

 

Trace
void TraceA( char *pszObjetEMemoryName = NULL );
void TraceW( wchar_t *pszObjetEMemoryName = NULL );
void Trace( TCHAR *pszObjetEMemoryName = NULL );

Afficher les informations synthétiques de l'objet.
void TraceExA( char *pszObjetEMemoryName=NULL, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
void TraceExW( wchar_t *pszObjetEMemoryName=NULL, ulonglong ullOffset = 0, ulonglong ullOffsetSize=EMemory::SizeUpToEnd );
void TraceEx( TCHAR *pszObjetEMemoryName=NULL, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

Afficher les informations étendues de l'objet.

 

Statut de l'objet
BOOL ObjectStatusUnknownGet( void );
Récupérer si l'objet a le statut EMemory::ObjectStatus_Unknown (inconnu).
BOOL ObjectStatusFreeGet( void );
Récupérer si l'objet a le statut EMemory::ObjectStatus_Free (vièrge).
BOOL ObjectStatusEmptyGet( void );
Récupérer si l'objet a le statut EMemory::ObjectStatus_Empty (vide).
BOOL ObjectStatusEnableGet( void );
Récupérer si l'objet a le statut EMemory::ObjectStatus_Enable (disponible).
long ObjectStatusGet( void );
Récupérer le statut de l'objet (EMemory::ObjectStatus_...).

 

Statut de l'offset
long OffsetStatusGet( ulonglong ullOffset );
Récupérer le statut de l'offset.
long OffsetStatusSizeGet( ulonglong ullOffset, ulonglong ullOffsetSize );
Récupérer le statut de l'offset et de son étendue.

 

Taille
ulonglong SizeGet( void );
Récupérer la taille de l'espace de travail.
E_RTN SizeGet( ulonglong *pullSize, ulonglong ullOffset );
Récupérer la taille disponible depuis un offset jusqu'à la fin de l'espace de travail.
E_RTN SizeSet( ulonglong ullNewSize );
Modifier la taille de l'espace de travail.
E_RTN SizeSet( ulonglong ullNewSize, uchar ucByteToFill );
Modifier la taille de l'espace de travail en nettoyant les octets ajoutés ou supprimés à l'aide d'une valeur octale.
E_RTN SizeSet( ulonglong ullNewSize, void *pBlockToFill, ulonglong ullBlockToFillSize );
Modifier la taille de l'espace de travail en nettoyant les octets ajoutés ou supprimés à l'aide d'un bloc d'octets.
E_RTN Empty( void );
Modifier la taille de l'espace de travail à 0 octet.

 

Ré-initialisation
void Free( void );
Réinitialiser l'objet.

 

Tapissage / Nettoyage
E_RTN ZeroFill( void );
Tapissage à l'aide de la valeur octale 0x00.
E_RTN ByteFill( uchar ucByteToFill, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Tapissage à l'aide d'un valeur octale.
E_RTN BlockFill( void *pBlockToFill, ulonglong ullBlockToFillSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Tapissage à l'aide d'un bloc d'octets.

 

Copie
E_RTN ByteCopy( uchar ucByteToCopy, ulonglong ullOffset = 0 );
Copie d'un octet à un offset.
E_RTN BlockCopy( void *pBlockToCopy, ulonglong ullBlockToCopySize, ulonglong ullOffset = 0 );
Copie du bloc d'octets à un offset.
E_RTN ByteCopyExact( uchar ucByteToCopy );
Redimensionnement de l'espace de travail d'une taille d'un octet et copie de celui-ci.
E_RTN BlockCopyExact( void *pBlockToCopy, ulonglong ullBlockToCopySize );
Redimensionnement de l'espace de travail de la taille d'un bloc d'octets et copie de celui-ci.
E_RTN BlockCopyTo( void *pBlockDest, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Copie d'une portion des données de l'objet dans un buffer externe.

 

Recherche
E_RTN ByteFind( ulonglong *pullOffsetFound, uchar ucByteToFind, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Rechercher un octet.
E_RTN BytesFind( ulonglong *pullOffsetFound, uchar *pucByteFound, void *pBytesToFind, ulonglong ullBytesToFindSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Rechercher une série d'octets.
E_RTN BlockFind( ulonglong *pullOffsetFound, void *pBlockToFind, ulonglong ullBlockToFindSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Rechercher un bloc d'octets.
E_RTN BlocksFind( ulonglong *pullOffsetFound, ulonglong *pullBlockIdxFound, EMemory::SC_BLOCK *pscBlockToFind, ulonglong ullBlockToFindCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Rechercher une série de blocs d'octets.

 

Décompte
E_RTN ByteCountGet( ulonglong *pullByteCounted, uchar ucByteToCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Décompte d'un octet.
E_RTN BytesCountGet( ulonglong *pullByteCounted, void *pBytesToCount, ulonglong ullBytesToCountSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Décompte d'une série d'octets.
E_RTN BlockCountGet( ulonglong *pullBlockCounted, void *pBlockToCount, ulonglong ullBlockToCountSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Décompte d'un bloc d'octets.
E_RTN BlocksCountGet( ulonglong *pullBlockCounted, ulonglong *pullBlockWeightAccrued, EMemory::SC_BLOCK *pscBlockToCount, ulonglong ullBlockToCountCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Décompte d'une série de bloc d'octets.

 

Invertion
E_RTN SpaceSwap( ulonglong ullOffsetDest, ulonglong ullOffsetSource );
Invertion de deux espaces d'une taille d'un octet.
E_RTN SpaceSwap( ulonglong ullOffsetDest, ulonglong ullOffsetSource, ulonglong ullOffsetDestSourceSize );
Invertion de deux espaces d'une même taille.
E_RTN SpaceSwap( ulonglong ullOffsetDest, ulonglong ullOffsetDestSize, ulonglong ullOffsetSource, ulonglong ullOffsetSourceSize );
Invertion de deux espaces d'une taille différente.
E_RTN SpaceSwapSymetric( ulonglong ullSpaceToSwapSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Invertion des données symétriques d'un intervalle de travail.
E_RTN SpaceSwapAdjacent( ulonglong ullSpaceToSwapSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Invertion des données adjacentes d'un intervalle de travail.

 

Insertion
E_RTN SpaceInsert( ulonglong ullSpaceToInsertSize, ulonglong ullOffset );
Insertion d'un espace non nettoyé.
E_RTN SpaceInsert( ulonglong ullSpaceToInsertSize, ulonglong ullOffset, uchar ucByteToFill );
Insertion d'un espace nettoyé à l'aide d'un octet.
E_RTN SpaceInsert( ulonglong ullSpaceToInsertSize, ulonglong ullOffset, void *pBlockToFill, ulonglong ullBlockToFillSize );
Insertion d'un espace nettoyé à l'aide d'un bloc d'octets.
E_RTN ByteInsert( uchar ucByteToInsert, ulonglong ullOffset = 0 );
Insertion d'un octet.
E_RTN BlockInsert( void *pBlockToInsert, ulonglong ullBlockToInsertSize, ulonglong ullOffset = 0 );
Insertion d'un bloc d'octets.
E_RTN SpaceInsertEach( ulonglong *pullSpaceCountInserted, ulonglong ullSpaceToInsertSize, ulonglong ullStepEach, BOOL bStartAtFirst, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Insertion d'un espace non nettoyé à intervalle régulier.
E_RTN SpaceInsertEach( ulonglong *pullSpaceCountInserted, ulonglong ullSpaceToInsertSize, ulonglong ullStepEach, BOOL bStartAtFirst, uchar ucByteToFill, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Insertion d'un espace nettoyé à l'aide d'un octet à intervalle régulier.
E_RTN SpaceInsertEach( ulonglong *pullSpaceCountInserted, ulonglong ullSpaceToInsertSize, ulonglong ullStepEach, BOOL bStartAtFirst, void *pBlockToFill, ulonglong ullBlockToFillSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Insertion d'un espace nettoyé à l'aide d'un bloc d'octets à intervalle régulier.
E_RTN ByteInsertEach( ulonglong *pullByteCountInserted, uchar ucByteToInsert, ulonglong ullStepEach, BOOL bStartAtFirst, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Insertion d'un octet à intervalle régulier.
E_RTN BlockInsertEach( ulonglong *pullBlockCountInserted, void *pBlockToInsert, ulonglong ullBlockToInsertSize, ulonglong ullStepEach, BOOL bStartAtFirst, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Insertion d'un bloc d'octets à intervalle régulier.

 

Concaténation
E_RTN SpaceCat( ulonglong ullSpaceToCatSize );
Concaténation d'un espace non nettoyé.
E_RTN SpaceCat( ulonglong ullSpaceToCatSize, uchar ucByteToFill );
Concaténation d'un espace nettoyé à l'aide d'un octet.
E_RTN SpaceCat( ulonglong ullSpaceToCatSize, void *pBlockToFill, ulonglong ullBlockToFillSize );
Concaténation d'un espace nettoyé à l'aide d'un bloc d'octets.
E_RTN ByteCat( uchar ucByteToCat );
Concaténation d'un octet.
E_RTN BlockCat( void *pBlockToCat, ulonglong ullBlockToCatSize );
Concaténation d'un bloc d'octets.

 

Suppression
E_RTN SpaceSuppress( ulonglong ullOffset = 0, ulonglong ullOffsetSize=EMemory::SizeUpToEnd );
Supprimer un espace.
E_RTN SpaceSuppressEach( ulonglong *pullSpaceCountSuppressed, ulonglong ullSpaceToSuppressSize, ulonglong ullStepEach, BOOL bStartAtFirst, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Supprimer un espace à intervalle régulier.
E_RTN ByteSuppress( ulonglong *pullByteCountSuppressed, uchar ucByteToSuppress, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Supprimer un octet.
E_RTN BytesSuppress( ulonglong *pullByteCountSuppressed, void *pBytesToSuppress, ulonglong ullBytesToSuppressSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Supprimer une série d'octets.
E_RTN BlockSuppress( ulonglong *pullBlockCountSuppressed, void *pBlockToSuppress, ulonglong ullBlockToSuppressSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Supprimer un bloc d'octets.
E_RTN BlocksSuppress( ulonglong *pullBlockCountSuppressed, ulonglong *pullBlockWeightAccrued, EMemory::SC_BLOCK *pscBlockToSuppress, ulonglong ullBlockToSuppressCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Supprimer une série de blocs d'octets.

 

Substitution
E_RTN ByteSubstitute( ulonglong *pullByteCountSubstitued, uchar ucByteToPut, uchar ucByteToFind, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Substituer un octet par un autre.
E_RTN BytesSubstitute( ulonglong *pullByteCountSubstitued, uchar ucByteToPut, void *pBytesToFind, ulonglong ullBytesToFindSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Substituer une série d'octets par un autre.
E_RTN BlockSubstitute( ulonglong *pullBlockCountSubstitued, void *pBlockToPut, ulonglong ullBlockToPutSize, void *pBlockToFind, ulonglong ullBlockToFindSize, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Substituer un bloc d'octets par un autre bloc d'octes.
E_RTN BlocksSubstitute( ulonglong *pullBlockCountSubstitued, void *pBlockToPut, ulonglong ullBlockToPutSize, EMemory::SC_BLOCK *pscBlockToFind, ulonglong ullBlockToFindCount, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
Substituer une série de blocs d'octets par un autre bloc d'octes.

 

Déplacement
E_RTN SpaceMove( ulonglong ullSpaceToMoveSize, ulonglong ullOffsetDest, ulonglong ullOffsetSource );
Déplacement d'un espace.