GlobalObjects
Lade ...
Suche ...
Keine Treffer
eut::UnsignedMagicNumber Klassenreferenz

Ein UnsignedMagicNumber ist eine künstliche Zahl aus Ziffern und Buchstaben (so ähnlich wie Hex-Zahlen). Mehr ...

#include <EuUnsignedMagicNumber.h>

Öffentliche Methoden

 UnsignedMagicNumber ()
 
 UnsignedMagicNumber (const UnsignedMagicNumber &rT)
 
 UnsignedMagicNumber (unsigned int uiMaxSize)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, char chFirstRangeDigit, char chLastRangeDigit)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, char chFirstRangeDigit, char chLastRangeDigit, const char *pchValue)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, char chFirstRangeDigit, char chLastRangeDigit, const std::string &rsValue)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, char chLastRangeDigit)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, char chLastRangeDigit, const char *pchValue)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, char chLastRangeDigit, const std::string &rsValue)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, const char *pchValue)
 
 UnsignedMagicNumber (unsigned int uiMaxSize, const std::string &rsValue)
 
virtual ~UnsignedMagicNumber ()
 
char getFirstRangeDigit () const
 
int getLastError ()
 
char getLastRangeDigit () const
 
unsigned int getMaxSize () const
 
bool isAsciiInRange (const char chCharacter) const
 
bool isNULL () const
 
UnsignedMagicNumberoperator= (const UnsignedMagicNumber &rT)
 
void setNULL ()
 
int setValue (const char *pchValue)
 
std::string toString () const
 
bool operator== (const UnsignedMagicNumber &rT) const
 Vergleichsoperator.
 
bool operator!= (const UnsignedMagicNumber &rT) const
 Vergleichsoperator.
 
bool operator> (const UnsignedMagicNumber &rT) const
 Vergleichsoperator für den Größenvergleich.
 
bool operator>= (const UnsignedMagicNumber &rT) const
 Vergleichsoperator für den Größenvergleich.
 
bool operator< (const UnsignedMagicNumber &rT) const
 Vergleichsoperator für den Größenvergleich.
 
bool operator<= (const UnsignedMagicNumber &rT) const
 Vergleichsoperator für den Größenvergleich.
 
UnsignedMagicNumberoperator++ ()
 Rechenoperatoren.
 
UnsignedMagicNumber operator++ (int)
 Rechenoperatoren.
 
UnsignedMagicNumberoperator+= (const UnsignedMagicNumber &rrT)
 Rechenoperatoren.
 
UnsignedMagicNumberoperator-- ()
 Rechenoperatoren.
 
UnsignedMagicNumber operator-- (int)
 Rechenoperatoren.
 
UnsignedMagicNumberoperator-= (const UnsignedMagicNumber &rrT)
 Rechenoperatoren.
 

Private Typen

enum  EnCalcType { eADD , eSUBTRACT }
 

Private Methoden

bool addChar (char &rchTarget, const char chSource, char chLastRangeDigit)
 
int addValue (char *pchTarget, const char *pchSource, unsigned int uiMaxSize, char chFirstRangeDigit, char chLastRangeDigit)
 
int calculateValue (char *pchTarget, const char *pchSource, unsigned int uiMaxSize, char chFirstRangeDigit, char chLastRangeDigit, EnCalcType eCalcType)
 
bool checkFirstLast (char chFirstRangeDigit, char chLastRangeDigit)
 
void convertAsciiCharArrayInOwn (char *pchChar) const
 
void convertAsciiCharInOwn (char &rchChar) const
 
void convertOwnCharArrayInAscii (char *pchChar) const
 
void convertOwnCharInAscii (char &rchChar) const
 
char getAsciiCharInOwn (const char &rchChar) const
 
char getOwnCharInAscii (const char &rchChar) const
 
void init (char chFirstRangeDigit, char chLastRangeDigit)
 
bool isInRange (const char chCharacter) const
 
bool subtractChar (char &rchTarget, const char chSource, char chLastRangeDigit)
 
int subtractValue (char *pchTarget, const char *pchSource, unsigned int uiMaxSize, char chFirstRangeDigit, char chLastRangeDigit)
 

Private Attribute

char m_chFirstRangeDigit
 
char m_chLastRangeDigit
 
int m_iLastError
 
char * m_pchValue
 
unsigned int m_uiMaxSize
 

Freundbeziehungen

UnsignedMagicNumber operator+ (UnsignedMagicNumber lT, const UnsignedMagicNumber &rrT)
 
UnsignedMagicNumber operator- (UnsignedMagicNumber lT, const UnsignedMagicNumber &rrT)
 
std::ostream & operator<< (std::ostream &rOStream, const UnsignedMagicNumber &rMagicNumber)
 
std::istream & operator>> (std::istream &rIStream, UnsignedMagicNumber &rMagicNumber)
 

Ausführliche Beschreibung

Ein UnsignedMagicNumber ist eine künstliche Zahl aus Ziffern und Buchstaben (so ähnlich wie Hex-Zahlen).

Maximal kann dieser Zahl pro Stelle ein Wert von 0-9, A-Z und a-z zugewiesen werden, was pro Stelle maximal 10 + 26 + 26 Zustände ausmacht. Das macht bei einem 10stelligen Wert 62^10 -> 839.299.365.868.340.000. In der Standardeinstellung (0-Z) wären das 31^10 -> 3.656.158.440.062.980.

Diese Zahl wird dementsprechend genutzt; es wird gezählt von 0 bis z (also von 0 bis 9 und nach der 9 kommt A bis z -> z.B. 12 + A = 1C ).

Dieses wurde aus der Idee geboren, dass ich eine unsigned long als Index nutzte und der Bereich mir zu gering erschien. Die unsigned long reicht zwar bis 4.294.967.295, ich wollte aber die Länge des Indexes nicht verändern. Die erste Idee war, den Zahlenbereich auf 9.999.999.999 zu erweitern, aber da sind ja noch die Buchstaben ähnlich wie bei den Hex-Zahlen. Anforderung ist zusätzlich, dass alle Ziffern druckbar und als Buchstabe für Dateinamen genutzt werden können.

Die Länge der UnsignedMagicNumber und der Wertebereich können bestimmt werden. Z.B. Länge 10 und Wertebereich von 0 bis Z (einschliesslich).

Das wichtigste ist aber, dass diese UnsignedMagicNumber addiert und subtrahiert werden kann, um z.B. einen eindeutigen Index durch dekrementieren zu bekommen.

Nebeneffekt ist, dass mit dem m_chFirstRangeDigit == '0' und dem m_chLastRangeDigit == 'F' eine hexadezimale Darstellung mit einfacher Berechnung möglich ist.

Autor
Helmut Jakoby

Dokumentation der Aufzählungstypen

◆ EnCalcType

Für UnsignedMagicNumber::calculateValue (...)

Aufzählungswerte
eADD 

Es soll addiert werden.

eSUBTRACT 

Es soll subtrahiert werden.

Beschreibung der Konstruktoren und Destruktoren

◆ UnsignedMagicNumber() [1/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( )

Der Standard-Konstruktor steht nicht zur Verfügung.

◆ UnsignedMagicNumber() [2/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize)

Konstruktor mit Länge des Wertes.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
Zu beachten
Setzt den Startwert auf '0' und den Endwert auf 'Z'.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0.

◆ UnsignedMagicNumber() [3/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
const char * pchValue )

Konstruktor mit Länge des Wertes und dem Wert selbst.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]pchValueDer Wert als 0-terminiertes Char-Array. Die Länge des Wertes darf nicht größer sein als mit uiMaxSize übergeben und alle Zeichen müssen im Bereich von Start- und Endwert sein.
Zu beachten
Setzt den Startwert auf '0' und den Endwert auf 'Z'.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0.

◆ UnsignedMagicNumber() [4/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
const std::string & rsValue )

Konstruktor mit Länge des Wertes und dem Wert selbst.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]rsValueDer Wert als std::string. Die Länge des Wertes darf nicht größer sein als mit uiMaxSize übergeben und alle Zeichen müssen im Bereich von Start- und Endwert sein.
Zu beachten
Setzt den Startwert auf '0' und den Endwert auf 'Z'.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0.

◆ UnsignedMagicNumber() [5/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
char chLastRangeDigit )

Konstruktor mit Länge des Wertes und dem letzen Bereichswerts.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
Zu beachten
Setzt den Startwert auf '0'.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z'.

◆ UnsignedMagicNumber() [6/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
char chLastRangeDigit,
const char * pchValue )

Konstruktor mit Länge des Wertes, dem letzen Bereichswerts und dem Wert selbst.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
[in]pchValueDer Wert als 0-terminiertes Char-Array. Die Länge des Wertes darf nicht größer sein als in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von '0' und chLastRangeDigit sein.
Zu beachten
Setzt den Startwert auf '0'.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z'.

◆ UnsignedMagicNumber() [7/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
char chLastRangeDigit,
const std::string & rsValue )

Konstruktor mit Länge des Wertes, dem letzen Bereichswerts und dem Wert selbst.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
[in]rsValueDer Wert als std::string. Die Länge des Wertes darf nicht größer sein als in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von '0' und chLastRangeDigit sein.
Zu beachten
Setzt den Startwert auf '0'.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z'.

◆ UnsignedMagicNumber() [8/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
char chFirstRangeDigit,
char chLastRangeDigit )

Konstruktor mit Länge des Wertes und den Bereichswerten.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]chFirstRangeDigitDer kleinste erlaubte Wert, also der Startwert.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z'.

◆ UnsignedMagicNumber() [9/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
char chFirstRangeDigit,
char chLastRangeDigit,
const char * pchValue )

Konstruktor mit Länge des Wertes und den Bereichswerten sowie dem Wert selbst.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]chFirstRangeDigitDer kleinste erlaubte Wert, also der Startwert.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
[in]pchValueDer Wert als 0-terminiertes Char-Array. Die Länge des Wertes darf nicht größer sein als in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z'.

◆ UnsignedMagicNumber() [10/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( unsigned int uiMaxSize,
char chFirstRangeDigit,
char chLastRangeDigit,
const std::string & rsValue )

Konstruktor mit Länge des Wertes und den Bereichswerten sowie dem Wert selbst.

Parameter
[in]uiMaxSizeDie maximale Länge des Wertes.
[in]chFirstRangeDigitDer kleinste erlaubte Wert, also der Startwert.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
[in]rsValueDer Wert als std::string. Die Länge des Wertes darf nicht größer sein als in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z'.

◆ UnsignedMagicNumber() [11/11]

eut::UnsignedMagicNumber::UnsignedMagicNumber ( const UnsignedMagicNumber & rT)

Copy-Konstruktor.

Parameter
[in]rTVon diesem Objekt werden die Daten übernommen.

◆ ~UnsignedMagicNumber()

virtual eut::UnsignedMagicNumber::~UnsignedMagicNumber ( )
virtual

Destruktor.

Dokumentation der Elementfunktionen

◆ addChar()

bool eut::UnsignedMagicNumber::addChar ( char & rchTarget,
const char chSource,
char chLastRangeDigit )
private

Addiert zum ersten übergebenen Char zweiten hinzu.

Parameter
[in,out]rchTargetDer Char, auf den aufsummiert werden soll.
[in]chSourceDer Char, der auf chTarget aufsummiert werden soll.
[in]chLastRangeDigitDer größte erlaubte Wert.
Rückgabe
Wenn true, ist ein Überlauf eingetreten (z.B. wenn chLastRangeDigit == '9', rchTarget == '8' und chSource == '3').
Zu beachten
Es wird nicht geprüft, ob und wie die beiden Char rchTarget und chSource im erlaubten Bereich liegen. Es wird auch chLastRangeDigit nicht auf Plausibilität geprüft.

◆ addValue()

int eut::UnsignedMagicNumber::addValue ( char * pchTarget,
const char * pchSource,
unsigned int uiMaxSize,
char chFirstRangeDigit,
char chLastRangeDigit )
private

Addiert zu erstem übergebenen Char-Array zweites Char-Array hinzu. Diese Methode wird nur von Operatoren aufgerufen, so dass Prüfungen hier nicht mehr vorgenommen werden müsssen.

Parameter
[in,out]pchTargetDer Wert, auf den aufsummiert werden soll (0-terminiertes Char-Array aus eigenen Zeichen). Die Länge des Wertes ist in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
[in]pchSourceDer Wert, der auf pchTarget aufsummiert werden soll (0-terminiertes Char-Array aus eigenen Zeichen). Die Länge des Wertes ist in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
[in]uiMaxSizeDie maximale Länge der übergebenen Char-Arrays.
[in]chFirstRangeDigitDer erste erlaubte Wert von den einzelnen char in den Char-Arrays.
[in]chLastRangeDigitDer letzte erlaubte Wert von den einzelnen char in den Char-Arrays.
Rückgabe
Wenn Rückgabe != 0 ist ein Fehler aufgetreten.
Zu beachten
Es wird nicht geprüft, ob und wie die beiden Char-Arrays pchTarget und pchSource instanziiert wurden!
Es werden chFirstRangeDigit und chLastRangeDigit nicht auf Plausibilität geprüft.

◆ calculateValue()

int eut::UnsignedMagicNumber::calculateValue ( char * pchTarget,
const char * pchSource,
unsigned int uiMaxSize,
char chFirstRangeDigit,
char chLastRangeDigit,
EnCalcType eCalcType )
private

Addiert zu erstem übergebenen Char-Array zweites übergebenes Char-Array hinzu bzw. subtrahiert vom ersten übergebenen Char-Array das zweite übergebenen Char-Array. Wird von addValue (...) und subtractValue (...) genutzt.

Parameter
[in,out]pchTargetDer zu bearbeitende Wert (0-terminiertes Char-Array aus eigenen Zeichen). Die Länge des Wertes ist in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
[in]pchSourceDer Wert, der mit rchTarget berechnet werden soll (0-terminiertes Char-Array aus eigenen Zeichen). Die Länge des Wertes ist in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
[in]uiMaxSizeDie maximale Länge der übergebenen Char-Arrays.
[in]chFirstRangeDigitDer erste erlaubte Wert von den einzelnen char in den Char-Arrays.
[in]chLastRangeDigitDer letzte erlaubte Wert von den einzelnen char in den Char-Arrays.
[in]eCalcTypeSoll addiert oder subtrahiert werden.
Rückgabe
Wenn Rückgabe != 0 ist ein Fehler aufgetreten.
Zu beachten
Es wird nicht geprüft, ob und wie die beiden Char-Arrays pchTarget und pchSource instanziiert wurden!
Es werden chFirstRangeDigit und chLastRangeDigit nicht auf Plausibilität geprüft.

◆ checkFirstLast()

bool eut::UnsignedMagicNumber::checkFirstLast ( char chFirstRangeDigit,
char chLastRangeDigit )
private

Prüft ob übergebener Range innerhalb des erlaubten Bereichs.

Parameter
[in]chFirstRangeDigitDer kleinste Wert.
[in]chLastRangeDigitDer größte Wert.
Rückgabe
Wenn true, dann ist der Range im erlaubten Bereich.

◆ convertAsciiCharArrayInOwn()

void eut::UnsignedMagicNumber::convertAsciiCharArrayInOwn ( char * pchChar) const
private

Ändert die ASCII-Zeichen im übergebene ASCII-Char-Array in die entsprechenden eigenen Char.

Parameter
[in]pchCharDas ASCII-Char-Array, dessen Inhalt in eigene Char gewandelt werden soll.
Ausnahmebehandlung
eut::ErrorNExceptioneut::ErrorNExceptionEs wird eine Exception geworfen, wenn die Zeichen in pchChar nicht in den Bereichen '0' - '9', 'A' - 'Z' oder 'a' - 'z'.

◆ convertAsciiCharInOwn()

void eut::UnsignedMagicNumber::convertAsciiCharInOwn ( char & rchChar) const
private

Konvertiert den übergebenen Char in den eigenen Char.

Parameter
[in]rchCharDer ASCII-Char, welche in eigenen Char gewandelt werden soll.
Ausnahmebehandlung
eut::ErrorNExceptioneut::ErrorNExceptionEs wird eine Exception geworfen, wenn rchChar nicht in den Bereichen '0' - '9', 'A' - 'Z' oder 'a' - 'z'.

◆ convertOwnCharArrayInAscii()

void eut::UnsignedMagicNumber::convertOwnCharArrayInAscii ( char * pchChar) const
private

Ändert die eigenen Zeichen im übergebene Char-Array in die entsprechenden ASCII-Char.

Parameter
[in]pchCharDas Char-Array mit eigenen Zeichen, dessen Inhalt in ASCII-Char gewandelt werden soll.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird eine Exception geworfen, wenn die Zeichen in pchChar nicht in den Bereichen '0' - '9', 'A' - 'Z' oder 'a' - 'z'.

◆ convertOwnCharInAscii()

void eut::UnsignedMagicNumber::convertOwnCharInAscii ( char & rchChar) const
private

Ändert den übergebenen eigenden Char in den entsprechenden ASCII-Char.

Parameter
[in]rchCharDer eigene Char, welche in einen ASCII-Char gewandelt werden soll.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird eine Exception geworfen, wenn rchChar nicht in den Bereichen '0' - '9', 'A' - 'Z' oder 'a' - 'z'.

◆ getAsciiCharInOwn()

char eut::UnsignedMagicNumber::getAsciiCharInOwn ( const char & rchChar) const
private

Liefert den eigenen Char, welcher dem ASCII-Char entspricht.

Parameter
[in]rchCharDer ASCII-Char, welche in einen eigenen Char gewandelt werden soll.
Rückgabe
Der auf das eigene Format konvertierte Char.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird eine Exception geworfen, wenn rchChar nicht in den Bereichen '0' - '9', 'A' - 'Z' oder 'a' - 'z'.

◆ getFirstRangeDigit()

char eut::UnsignedMagicNumber::getFirstRangeDigit ( ) const

Liefert das kleinste gültige ASCII-Zeichen.

Rückgabe
Das kleinste gültige ASCII-Zeichen.

◆ getLastError()

int eut::UnsignedMagicNumber::getLastError ( )

Liefert den zu letzt aufgetretene Fehler.

Rückgabe
Der zu letzt aufgetretene Fehler.

◆ getLastRangeDigit()

char eut::UnsignedMagicNumber::getLastRangeDigit ( ) const

Liefert das größte gültige ASCII-Zeichen.

Rückgabe
Das größte gültige ASCII-Zeichen.

◆ getMaxSize()

unsigned int eut::UnsignedMagicNumber::getMaxSize ( ) const

Liefert die maximale Länge des Wertes.

Rückgabe
Die maximale Länge des Wertes.

◆ getOwnCharInAscii()

char eut::UnsignedMagicNumber::getOwnCharInAscii ( const char & rchChar) const
private

Liefert den ASCII-Char, welcher dem eignenen Char entspricht.

Parameter
[in]rchCharDer eigene Char, welche in einen ASCII-Char gewandelt werden soll.
Rückgabe
Der auf ASCII-Format konvertierte Char.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird eine Exception geworfen, wenn rchChar nicht in den Bereichen '0' - '9', 'A' - 'Z' oder 'a' - 'z'.

◆ init()

void eut::UnsignedMagicNumber::init ( char chFirstRangeDigit,
char chLastRangeDigit )
private

Initialisiert und prüft seine Werte.

Parameter
[in]chFirstRangeDigitDer kleinste erlaubte Wert, also der Startwert.
[in]chLastRangeDigitDer größte erlaubte Wert, also der Endwert.
Ausnahmebehandlung
eut::ErrorNExceptionEs wird wird eine Exception geworfen, wenn uiMaxSize == 0 oder chFirstRangeDigit und chLastRangeDigit nicht in den Bereichen '0' - '9', 'A' - 'Z' und 'a' - 'z' sind.

◆ isAsciiInRange()

bool eut::UnsignedMagicNumber::isAsciiInRange ( const char chCharacter) const

Prüft ob übergebenes ASCII-Zeichen im Bereich von m_chFirstRangeDigit und m_chLastRangeDigit ist.

Parameter
[in]chCharacterDas zu prüfende ASCII-Zeichen.
Rückgabe
Wenn true, dann ist das übergebene ASCII-Zeichen im erlaubten Bereich.

◆ isInRange()

bool eut::UnsignedMagicNumber::isInRange ( const char chCharacter) const
private

Prüft ob übergebenes Zeichen im angegebenen Bereich von m_chFirstRangeDigit und m_chLastRangeDigit ist.

Parameter
[in]chCharacterDas zu prüfende Zeichen.
Rückgabe
Wenn true, dann ist das übergebene Zeichen im erlaubten Bereich.

◆ isNULL()

bool eut::UnsignedMagicNumber::isNULL ( ) const

Prüft ob der kleinste Wert (also der Wert aus m_chFirstRangeDigit) gesetzt ist.

Rückgabe
Wenn true, dann liegt der kleinsze Wert in m_pchValue.

◆ operator!=()

bool eut::UnsignedMagicNumber::operator!= ( const UnsignedMagicNumber & rT) const

Vergleichsoperator.

◆ operator++() [1/2]

UnsignedMagicNumber & eut::UnsignedMagicNumber::operator++ ( )

Rechenoperatoren.

Wenn ein weiteres UnsignedMagicNumber beteiligt ist, wird geprüft, ob beide UnsignedMagicNumber die gleichen Einstellungen haben.

Zu beachten
Es wird nicht gerechnet, wenn bei einer weiteren Beteiligung einer UnsignedMagicNumber, diese andere Einstellungen hat. Es müssen die Attribute m_uiMaxSize, m_chFirstRangeDigit und m_chLastRangeDigit übereinstimmen.
Zudem wird bei einem Überlauf (überschreiten von m_uiMaxSize) bzw. dem Unterschreiten vom kleinesten erlaubten Wert nicht gerechnet und ein Fehler gesetzt. Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator++() [2/2]

UnsignedMagicNumber eut::UnsignedMagicNumber::operator++ ( int )

Rechenoperatoren.

Wenn ein weiteres UnsignedMagicNumber beteiligt ist, wird geprüft, ob beide UnsignedMagicNumber die gleichen Einstellungen haben.

Zu beachten
Es wird nicht gerechnet, wenn bei einer weiteren Beteiligung einer UnsignedMagicNumber, diese andere Einstellungen hat. Es müssen die Attribute m_uiMaxSize, m_chFirstRangeDigit und m_chLastRangeDigit übereinstimmen.
Zudem wird bei einem Überlauf (überschreiten von m_uiMaxSize) bzw. dem Unterschreiten vom kleinesten erlaubten Wert nicht gerechnet und ein Fehler gesetzt. Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator+=()

UnsignedMagicNumber & eut::UnsignedMagicNumber::operator+= ( const UnsignedMagicNumber & rrT)

Rechenoperatoren.

Wenn ein weiteres UnsignedMagicNumber beteiligt ist, wird geprüft, ob beide UnsignedMagicNumber die gleichen Einstellungen haben.

Zu beachten
Es wird nicht gerechnet, wenn bei einer weiteren Beteiligung einer UnsignedMagicNumber, diese andere Einstellungen hat. Es müssen die Attribute m_uiMaxSize, m_chFirstRangeDigit und m_chLastRangeDigit übereinstimmen.
Zudem wird bei einem Überlauf (überschreiten von m_uiMaxSize) bzw. dem Unterschreiten vom kleinesten erlaubten Wert nicht gerechnet und ein Fehler gesetzt. Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator--() [1/2]

UnsignedMagicNumber & eut::UnsignedMagicNumber::operator-- ( )

Rechenoperatoren.

Wenn ein weiteres UnsignedMagicNumber beteiligt ist, wird geprüft, ob beide UnsignedMagicNumber die gleichen Einstellungen haben.

Zu beachten
Es wird nicht gerechnet, wenn bei einer weiteren Beteiligung einer UnsignedMagicNumber, diese andere Einstellungen hat. Es müssen die Attribute m_uiMaxSize, m_chFirstRangeDigit und m_chLastRangeDigit übereinstimmen.
Zudem wird bei einem Überlauf (überschreiten von m_uiMaxSize) bzw. dem Unterschreiten vom kleinesten erlaubten Wert nicht gerechnet und ein Fehler gesetzt. Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator--() [2/2]

UnsignedMagicNumber eut::UnsignedMagicNumber::operator-- ( int )

Rechenoperatoren.

Wenn ein weiteres UnsignedMagicNumber beteiligt ist, wird geprüft, ob beide UnsignedMagicNumber die gleichen Einstellungen haben.

Zu beachten
Es wird nicht gerechnet, wenn bei einer weiteren Beteiligung einer UnsignedMagicNumber, diese andere Einstellungen hat. Es müssen die Attribute m_uiMaxSize, m_chFirstRangeDigit und m_chLastRangeDigit übereinstimmen.
Zudem wird bei einem Überlauf (überschreiten von m_uiMaxSize) bzw. dem Unterschreiten vom kleinesten erlaubten Wert nicht gerechnet und ein Fehler gesetzt. Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator-=()

UnsignedMagicNumber & eut::UnsignedMagicNumber::operator-= ( const UnsignedMagicNumber & rrT)

Rechenoperatoren.

Wenn ein weiteres UnsignedMagicNumber beteiligt ist, wird geprüft, ob beide UnsignedMagicNumber die gleichen Einstellungen haben.

Zu beachten
Es wird nicht gerechnet, wenn bei einer weiteren Beteiligung einer UnsignedMagicNumber, diese andere Einstellungen hat. Es müssen die Attribute m_uiMaxSize, m_chFirstRangeDigit und m_chLastRangeDigit übereinstimmen.
Zudem wird bei einem Überlauf (überschreiten von m_uiMaxSize) bzw. dem Unterschreiten vom kleinesten erlaubten Wert nicht gerechnet und ein Fehler gesetzt. Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator<()

bool eut::UnsignedMagicNumber::operator< ( const UnsignedMagicNumber & rT) const

Vergleichsoperator für den Größenvergleich.

◆ operator<=()

bool eut::UnsignedMagicNumber::operator<= ( const UnsignedMagicNumber & rT) const

Vergleichsoperator für den Größenvergleich.

◆ operator=()

UnsignedMagicNumber & eut::UnsignedMagicNumber::operator= ( const UnsignedMagicNumber & rT)

Zuweisungsoperator, es werden alle Attribute berücksichtigt.

Zu beachten
Über getLastError() sollte der letzte Fehler abgefragt werden.

◆ operator==()

bool eut::UnsignedMagicNumber::operator== ( const UnsignedMagicNumber & rT) const

Vergleichsoperator.

◆ operator>()

bool eut::UnsignedMagicNumber::operator> ( const UnsignedMagicNumber & rT) const

Vergleichsoperator für den Größenvergleich.

◆ operator>=()

bool eut::UnsignedMagicNumber::operator>= ( const UnsignedMagicNumber & rT) const

Vergleichsoperator für den Größenvergleich.

◆ setNULL()

void eut::UnsignedMagicNumber::setNULL ( )

Setzt m_pchValue auf den kleinsten Wert (m_chFirstRangeDigit).

◆ setValue()

int eut::UnsignedMagicNumber::setValue ( const char * pchValue)

Setzt den eigenen Wert.

Parameter
[in]pchValueDer Wert als 0-terminiertes ASCII-Char-Array. Die Länge des Wertes darf nicht größer sein als in m_uiMaxSize festgelegt und alle Zeichen müssen im Bereich von m_chFirstRangeDigit und m_chLastRangeDigit sein.
Rückgabe
Wenn Rückgabe != 0 ist ein Fehler aufgetreten.

◆ subtractChar()

bool eut::UnsignedMagicNumber::subtractChar ( char & rchTarget,
const char chSource,
char chLastRangeDigit )
private

Subtrahiert vom ersten übergebenen Char den zweiten.

Parameter
[in,out]rchTargetDer Char, von dem abgezogen werden soll.
[in]chSourceDer Char, der von chTarget abgezogen werden soll.
[in]chLastRangeDigitDer letzte erlaubte Wert.
Rückgabe
Wenn true, ist ein Unterlauf eingetreten (z.B. wenn m chTarget == '3' und chSource == '4').
Zu beachten
Es wird nicht geprüft, ob und wie die beiden Char rchTarget und chSource im erlaubten Bereich liegen. Es wird auch chLastRangeDigit nicht auf Plausibilität geprüft.

◆ subtractValue()

int eut::UnsignedMagicNumber::subtractValue ( char * pchTarget,
const char * pchSource,
unsigned int uiMaxSize,
char chFirstRangeDigit,
char chLastRangeDigit )
private

Subtrahiert vom ersten übergebenen Char-Array das zweite übergebenen Char-Array. Diese Methode wird nur von Operatoren aufgerufen, so dass Prüfungen hier nicht mehr vorgenommen werden müsssen.

Parameter
[in,out]pchTargetDer Wert, von den abgezogen werden soll (0-terminiertes Char-Array aus eigenen Zeichen). Die Länge des Wertes ist in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
[in]pchSourceDer Wert, der von pchTarget abgezogen werden soll (0-terminiertes Char-Array aus eigenen Zeichen). Die Länge des Wertes ist in uiMaxSize festgelegt und alle Zeichen müssen im Bereich von chFirstRangeDigit und chLastRangeDigit sein.
[in]uiMaxSizeDie maximale Länge der übergebenen Char-Arrays.
[in]chFirstRangeDigitDer erste erlaubte Wert von den einzelnen char in den Char-Arrays.
[in]chLastRangeDigitDer letzte erlaubte Wert von den einzelnen char in den Char-Arrays.
Rückgabe
Wenn Rückgabe != 0 ist ein Fehler aufgetreten.
Zu beachten
Es wird nicht geprüft, ob und wie die beiden Char-Arrays pchTarget und pchSource instanziiert wurden!
Es werden chFirstRangeDigit und chLastRangeDigit nicht auf Plausibilität geprüft.

◆ toString()

std::string eut::UnsignedMagicNumber::toString ( ) const

Liefert seinen Wert als std::string.

Rückgabe
Der Wert als std::string.

Freunde und bezugnehmende Symbol-Dokumentation

◆ operator+

UnsignedMagicNumber operator+ ( UnsignedMagicNumber lT,
const UnsignedMagicNumber & rrT )
friend

◆ operator-

UnsignedMagicNumber operator- ( UnsignedMagicNumber lT,
const UnsignedMagicNumber & rrT )
friend

◆ operator<<

std::ostream & operator<< ( std::ostream & rOStream,
const UnsignedMagicNumber & rMagicNumber )
friend

◆ operator>>

std::istream & operator>> ( std::istream & rIStream,
UnsignedMagicNumber & rMagicNumber )
friend

Dokumentation der Datenelemente

◆ m_chFirstRangeDigit

char eut::UnsignedMagicNumber::m_chFirstRangeDigit
private

Der Startwert, Voreinstellung ist '0'.

◆ m_chLastRangeDigit

char eut::UnsignedMagicNumber::m_chLastRangeDigit
private

Der Endwert, Voreinstellung ist 'Z'.

◆ m_iLastError

int eut::UnsignedMagicNumber::m_iLastError
private

Letzter Fehler.

◆ m_pchValue

char* eut::UnsignedMagicNumber::m_pchValue
private

Der Wert der MagicNumber.

◆ m_uiMaxSize

unsigned int eut::UnsignedMagicNumber::m_uiMaxSize
private

Die maximale Länge (Anzahl der Zeichen) von m_pchValue (Voreinstellung ist 10).


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