GlobalObjects
Lade ...
Suche ...
Keine Treffer
glo::BaseMaker Klassenreferenz

Generiert mit Hilfe vom SchemaInterface, Datentabellen, C++ Header- und Source-Files etc.. Mehr ...

#include <GloBaseMaker.h>

Öffentliche Methoden

 BaseMaker ()
 
 BaseMaker (const SchemaInterface &rSchemaInterface)
 
 BaseMaker (const std::string &rstrSchemaFullName)
 
virtual ~BaseMaker ()
 
int checkAllClassReferences () const
 
int checkClassAttributes (const ClassInfo &rClassInfo) const
 
int checkClassIndices (const ClassInfo &rClassInfo) const
 
int createIndex () const
 
int generateAllHeader (const std::string &rstrTargetHeaderPath, bool bCreateAllNew) const
 
int generateAllSource (const std::string &rstrTargetSourcePath, bool bCreateAllNew) const
 
int generateAllTables (const std::string &rstrTargetTablePath, bool bCreateAllNew=false) const
 
int generateHeader (const std::string &rstrTargetHeaderPath, const ClassInfo &rClassInfo, bool bCreateNew) const
 
int generateObjCreator (const std::string &rstrTargetPath, bool bCreateNew) const
 
int generateSource (const std::string &rstrTargetSourcePath, const ClassInfo &rClassInfo, bool bCreateNew) const
 
virtual std::string getAttributeDescription (const ClassInfoAttribute &rClassInfoAttribute) const
 
virtual std::string getClassDescription (const ClassInfo &rClassInfo) const
 
std::string getCommentBlockStartExt ()
 
virtual std::string getFileDescription (const ClassInfo &rClassInfo) const
 
virtual std::string getIndexDescription (const ClassInfoIndex &rClassInfoIndex) const
 
void init ()
 
virtual void outputMsg (const std::string &rstrOutput) const
 
void setCommentBlockStartExt (const std::string &rstrCommentBlockStartExt)
 
void setSchema (const SchemaInterface &rSchemaInterface)
 
void setSchema (const std::string &rstrSchemaFullName)
 
int updateAllHeader (const std::string &rstrTargetHeaderPath) const
 
int updateAllSource (const std::string &rstrTargetSourcePath) const
 
int updateHeader (const std::string &rstrTargetHeaderPath, const ClassInfo &rClassInfo) const
 
int updateSource (const std::string &rstrTargetSourcePath, const ClassInfo &rClassInfo) const
 
int writeTable (const std::string &rstrTargetTablePath, const ClassInfo &rClassInfo, bool bCreateNew) const
 

Geschützte Methoden

int generateAllX (CREATE_FUNCPTR pMemberFunction, const std::string &rstrTargetPath, bool bCreateAllNew) const
 
std::string getCreationNote (bool bWithWarning=true) const
 
int updateAllX (UPDATE_FUNCPTR pMemberFunction, const std::string &rstrTargetPath) const
 

Private Typen

typedef int(BaseMaker::* CREATE_FUNCPTR) (const std::string &rstrTargetPath, const ClassInfo &rClassInfo, bool bCreateNew) const
 
typedef int(BaseMaker::* UPDATE_FUNCPTR) (const std::string &rstrTargetPath, const ClassInfo &rClassInfo) const
 

Private Methoden

 BaseMaker (const BaseMaker &)
 
BaseMakeroperator= (const BaseMaker &)
 

Private Attribute

std::shared_ptr< SchemaInterfacem_spSchemaInterface
 
std::string m_strCommentBlockStartExt
 
std::string m_strDokuAttributLine
 
std::string m_strDokuCrossLine
 
std::string m_strDokuLine
 
std::string m_strDokuStarLine
 
std::string m_strOutputLine
 

Ausführliche Beschreibung

Generiert mit Hilfe vom SchemaInterface, Datentabellen, C++ Header- und Source-Files etc..

Es kann von dieser Klasse abgeleitet werden und z.B. die Informationsausgabe in Methode BaseMaker::outputMsg() nicht per std::cout, sondern anderweitig auszugeben.

Autor
Helmut Jakoby

Dokumentation der benutzerdefinierten Datentypen

◆ CREATE_FUNCPTR

typedef int(BaseMaker::* glo::BaseMaker::CREATE_FUNCPTR) (const std::string &rstrTargetPath, const ClassInfo &rClassInfo, bool bCreateNew) const
private

Dieser Methodentyp sollen an Methode BaseMaker::generateAllX (...)const zum bearbeiten übergeben werden.

Parameter
[in]rstrTargetPathDer Pfad, in welchen die Date angelegt werden soll wie z.B. "C:/Pfad/include/" oder "C:/Pfad/source/".
[in]rClassInfoDie Klasseninformation mit den nötigen Informationen.
[in]bCreateNewWenn true, wird auch eine vorhandene Datei überschrieben!
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
generateAllX(CREATE_FUNCPTR, const std::string&, bool)const
genutzt in

◆ UPDATE_FUNCPTR

typedef int(BaseMaker::* glo::BaseMaker::UPDATE_FUNCPTR) (const std::string &rstrTargetPath, const ClassInfo &rClassInfo) const
private

Dieser Methodentyp sollen an Methode BaseMaker::updateAllX (...)const zum bearbeiten übergeben werden.

Parameter
[in]rstrTargetPathDer Pfad, in welcher die Datei angepasst werden soll wie z.B. "C:/Pfad/include/" oder "C:/Pfad/source/".
[in]rClassInfoDie Klasseninformation mit den nötigen Informationen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
updateAllX(UPDATE_FUNCPTR, const std::string&)const
genutzt in

Beschreibung der Konstruktoren und Destruktoren

◆ BaseMaker() [1/4]

glo::BaseMaker::BaseMaker ( )

Standard-Konstruktor.

◆ BaseMaker() [2/4]

glo::BaseMaker::BaseMaker ( const std::string & rstrSchemaFullName)

Konstruktor mit Parameterübergabe.

Parameter
[in]rstrSchemaFullNameDer vollständige Dateiname des Schemas; z.B. "C:/Pfad/MyGloBase.ini".
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.
Achtung
Wenn die Datei existiert, wird ein SchemaInterface in m_spSchemaInterface instanziiert.

◆ BaseMaker() [3/4]

glo::BaseMaker::BaseMaker ( const SchemaInterface & rSchemaInterface)

Konstruktor mit Parameterübergabe.

Parameter
[in]rSchemaInterfaceDas übergebenes SchemaInterface wird kopiert.

◆ ~BaseMaker()

virtual glo::BaseMaker::~BaseMaker ( )
virtual

Destruktor, wenn ein SchemaInterface in m_spSchemaInterface, wird dieses aus dem Speicher entfernt.

◆ BaseMaker() [4/4]

glo::BaseMaker::BaseMaker ( const BaseMaker & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ checkAllClassReferences()

int glo::BaseMaker::checkAllClassReferences ( ) const

Es werden alle Referenz- und Index-Attribute aller Klasseninformationen auf vorhandensein der referenzierten Klasseninformation und Klasseninformations-Attribute geprüft.
Es werden die Ergebnisse über outputMsg(const std::string&)const ausgegeben.

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
checkClassAttributes(const ClassInfo&)const
checkClassIndices(const ClassInfo&)const

◆ checkClassAttributes()

int glo::BaseMaker::checkClassAttributes ( const ClassInfo & rClassInfo) const

Es werden alle Referenz-Attribute der übergebenen Klasseninformation auf vorhandensein der referenzierten Klasseninformationen geprüft.
Es werden die Ergebnisse über outputMsg(const std::string&)const ausgegeben.

Parameter
[in]rClassInfoDie zu prüfende Klasseninformation.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ checkClassIndices()

int glo::BaseMaker::checkClassIndices ( const ClassInfo & rClassInfo) const

Es werden alle Indizes der übergebenen Klasseninformation auf vorhandensein der referenzierten Klasseninformationen und Klasseninformations-Attribute geprüft.
Es werden die Ergebnisse über outputMsg(const std::string&)const ausgegeben.

Parameter
[in]rClassInfoDie zu prüfende Klasseninformation.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ createIndex()

int glo::BaseMaker::createIndex ( ) const

Es werden alle Tabellen neu indiziert (es werden die jeweiligen Indexdateien angelegt).

Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
RealIndexPool::reindexObjIDIndexes(const SchemaInterface&)
RealIndexPool::writeObjIDIndexes(const SchemaInterface&)const

◆ generateAllHeader()

int glo::BaseMaker::generateAllHeader ( const std::string & rstrTargetHeaderPath,
bool bCreateAllNew ) const

Es werden im übergebenen Verzeichnis die einzelnen Header-Files angelegt.
Übergibt generateHeader (...) an generateAllX (...).

Parameter
[in]rstrTargetHeaderPathDer Pfad, in welchen die Header-Files angelegt werden sollen wie z.B. "C:/Pfad/include/".
[in]bCreateAllNewWenn true, werden vorhandene Dateien überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ generateAllSource()

int glo::BaseMaker::generateAllSource ( const std::string & rstrTargetSourcePath,
bool bCreateAllNew ) const

Es werden im übergebenen Verzeichnis die einzelnen Source-Files angelegt.
Übergibt generateSource (...) an generateAllX (...).

Parameter
[in]rstrTargetSourcePathDer Pfad, in welchen die Source-Files angelegt werden sollen wie z.B. "C:/Pfad/source/".
[in]bCreateAllNewWenn true, werden vorhandene Dateien überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ generateAllTables()

int glo::BaseMaker::generateAllTables ( const std::string & rstrTargetTablePath,
bool bCreateAllNew = false ) const

Es werden im übergebenen Verzeichnis die einzelnen Tabellendateien angelegt.
Übergibt writeTable (...) an generateAllX (...).

Parameter
[in]rstrTargetTablePathDer Pfad, in welchen die Tabellen angelegt werden sollen wie z.B. "C:/Pfad/Data/".
[in]bCreateAllNewWenn true, werden vorhandene Dateien überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ generateAllX()

int glo::BaseMaker::generateAllX ( CREATE_FUNCPTR pMemberFunction,
const std::string & rstrTargetPath,
bool bCreateAllNew ) const
protected

Es wird für jede ClassInfo aus dem m_spSchemaInterface eine Methode (pMemberFunction) aufgerufen, die eine speziefische Datei anlegt.

Parameter
[in]pMemberFunctionDie Methode zur Dateierstellung.
[in]rstrTargetPathDer Pfad, in welcher die Datei angelegt werden soll.
[in]bCreateAllNewWenn true, werden vorhandene Dateien überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
generateAllTables(const std::string&, bool)const
generateAllHeader(const std::string&, bool)const
generateAllSource(const std::string&, bool)const

◆ generateHeader()

int glo::BaseMaker::generateHeader ( const std::string & rstrTargetHeaderPath,
const ClassInfo & rClassInfo,
bool bCreateNew ) const

Es wird ein Header-File einer Klasseninformation in übergebenen Verzeichnis angelegt.
Der Datei- und Klassenname sowie die einzelnen Attribut- und Methodenbezeichnungen werden aus der Klasseninformation ermittelt.

Parameter
[in]rstrTargetHeaderPathDer Pfad, in welchen das Header-File angelegt werden soll wie z.B. "C:/Pfad/include/".
[in]rClassInfoDie Klasseninformation mit den nötigen Informationen.
[in]bCreateNewWenn true, wird eine vorhandene Datei überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ generateObjCreator()

int glo::BaseMaker::generateObjCreator ( const std::string & rstrTargetPath,
bool bCreateNew ) const

Generiert im übergebenen Verzeichnis den spezifischen ObjCreator. Die Bezeichnung setzt sich aus der Schemabezeichnung plus "ObjCreator.h" zusammen (z.B. "MyBaseObjCreator.h").

Parameter
[in]rstrTargetPathDer Pfad, in welchen der Header-File angelegt werden soll
[in]bCreateNewWenn true, wird eine vorhandene Datei überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ generateSource()

int glo::BaseMaker::generateSource ( const std::string & rstrTargetSourcePath,
const ClassInfo & rClassInfo,
bool bCreateNew ) const

Es wird ein Source-File einer Klasseninformation in übergebenen Verzeichnis angelegt.
Der Datei- und Klassenname sowie die einzelnen Attribut- und Methodenbezeichnungen werden aus der Klasseninformation ermittelt.

Parameter
[in]rstrTargetSourcePathDer Pfad, in welchen das Source-File angelegt werden soll wie z.B. "C:/Pfad/source/".
[in]rClassInfoDie Klasseninformation mit den nötigen Informationen.
[in]bCreateNewWenn true, wird eine vorhandene Datei überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ getAttributeDescription()

virtual std::string glo::BaseMaker::getAttributeDescription ( const ClassInfoAttribute & rClassInfoAttribute) const
virtual

Liefert die Attributbeschreibung welche in ein Header-File einer Klassenattributdeklaration geschrieben werden soll. Kann überschrieben werden um ggf. an der Klassenattributbeschreibung Änderungen vorzunehmen.

Parameter
[in]rClassInfoAttributeDas Klasseninformations-Attribut dessen Beschreibung geliefert werden soll.

◆ getClassDescription()

virtual std::string glo::BaseMaker::getClassDescription ( const ClassInfo & rClassInfo) const
virtual

Liefert die Klassenbeschreibung welche in ein Header-File einer Klassendeklaration geschrieben werden soll. Kann überschrieben werden um ggf. an der Klassenbeschreibung Änderungen vorzunehmen.

Parameter
[in]rClassInfoDie Klasseninformation deren Klassenbeschreibung geliefert werden soll.

◆ getCommentBlockStartExt()

std::string glo::BaseMaker::getCommentBlockStartExt ( )

Liefert den String, welcher den Kommentarblock einleitenden Zeichen angefügt wird.

Rückgabe
Der anzufügende String.

◆ getCreationNote()

std::string glo::BaseMaker::getCreationNote ( bool bWithWarning = true) const
protected

Liefert den Erstellungshinweis, der in jede erstellte Datei am Anfang als Kommentar eingefügt wird.

// ****************************************************************************
// Created by GlobalObjects source code generator version 1.0.2
// Creation date: 2021.12.28 - 14:53:39
// Database: "FirstGloBase"
// ****************************************************************************
Parameter
[in]bWithWarningWenn true (Voreinstellung) wird zusätzlich eine Warnung geschrieben.
//
// WARNING! All changes made in this file will be lost!
Rückgabe
s.o.

◆ getFileDescription()

virtual std::string glo::BaseMaker::getFileDescription ( const ClassInfo & rClassInfo) const
virtual

Liefert die Dateibeschreibung welche in ein Header-File einer Klassendeklaration geschrieben werden soll. Kann überschrieben werden um ggf. an der Dateibeschreibung Änderungen vorzunehmen.

Parameter
[in]rClassInfoDie Klasseninformation deren Dateibeschreibung geliefert werden soll.

◆ getIndexDescription()

virtual std::string glo::BaseMaker::getIndexDescription ( const ClassInfoIndex & rClassInfoIndex) const
virtual

Liefert die Indexbeschreibung welche in ein Header-File einer Klassenindexdeklaration geschrieben werden soll. Kann überschrieben werden um ggf. an der Klassenindexbeschreibung Änderungen vorzunehmen.

Parameter
[in]rClassInfoIndexDas Klasseninformations-Index dessen Beschreibung geliefert werden soll.

◆ init()

void glo::BaseMaker::init ( )

Setzt die String-Attribute.

◆ operator=()

BaseMaker & glo::BaseMaker::operator= ( const BaseMaker & )
inlineprivate

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ outputMsg()

virtual void glo::BaseMaker::outputMsg ( const std::string & rstrOutput) const
virtual

Hier werden die Einzelschritte der einzelnen Aufgaben per std::cout ausgegeben. Kann überschrieben werden um die Ausgabe umzuleiten (z.B. in ein Window).

Parameter
[in]rstrOutputDie Information, welche ausgegeben werden soll.

◆ setCommentBlockStartExt()

void glo::BaseMaker::setCommentBlockStartExt ( const std::string & rstrCommentBlockStartExt)

Setzt den String, welcher den Kommentarblock einleitenden Zeichen angefügt wird.

Parameter
[in]rstrCommentBlockStartExtDer anzufügende String.

◆ setSchema() [1/2]

void glo::BaseMaker::setSchema ( const SchemaInterface & rSchemaInterface)

Setzt das SchemaInterface.

Parameter
[in]rSchemaInterfaceÜbergebenes SchemaInterface wird kopiert.
Achtung
Ein evtl. vorher vorhandeses SchemaInterface wird aus dem Speicher entfernt.

◆ setSchema() [2/2]

void glo::BaseMaker::setSchema ( const std::string & rstrSchemaFullName)

Setzt das SchemaInterface.

Parameter
[in]rstrSchemaFullNameDer vollständige Dateiname des Schemas; z.B. "C:/Pfad/MyGloBase.ini".
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.
Achtung
Wenn die Datei existiert, wird ein SchemaInterface instanziiert. Ein evtl. vorher vorhandeses SchemaInterface wird aus dem Speicher entfernt.

◆ updateAllHeader()

int glo::BaseMaker::updateAllHeader ( const std::string & rstrTargetHeaderPath) const

Es werden übergebenen Verzeichnis die einzelnen Header-Files angepasst, wenn vorhanden.
Übergibt updateHeader (...) an updateAllX (...).

Parameter
[in]rstrTargetHeaderPathDer Pfad, in welchen die Header-Files angepasst werden sollen wie z.B. "C:/Pfad/include/".
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ updateAllSource()

int glo::BaseMaker::updateAllSource ( const std::string & rstrTargetSourcePath) const

Es werden im übergebenen Verzeichnis die einzelnen Source-Files angepasst, wenn vorhanden.
Übergibt updateSource (...) an updateAllX (...).

Parameter
[in]rstrTargetSourcePathDer Pfad, in welchen die Source-Files angepasst werden sollen wie z.B. "C:/Pfad/source/".
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ updateAllX()

int glo::BaseMaker::updateAllX ( UPDATE_FUNCPTR pMemberFunction,
const std::string & rstrTargetPath ) const
protected

Es wird für jede ClassInfo aus dem m_spSchemaInterface eine Methode (pMemberFunction) aufgerufen, die eine speziefische Datei anpasst.

Parameter
[in]pMemberFunctionDie Methode zur Dateianpassung.
[in]rstrTargetPathDer Pfad, in dem die Dateien angepasst werden sollen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.
Siehe auch
updateAllHeader(const std::string&)const
updateAllSource(const std::string&)const

◆ updateHeader()

int glo::BaseMaker::updateHeader ( const std::string & rstrTargetHeaderPath,
const ClassInfo & rClassInfo ) const

Es wird ein Header-File einer Klasseninformation im übergebenen Verzeichnis angepasst, wenn vorhanden. Der Datei- und Klassenname sowie die einzelnen Attribut- und Methodenbezeichnungen werden aus der Klasseninformation ermittelt.

Parameter
[in]rstrTargetHeaderPathDer Pfad, in welchen das Header-File angepasst werden soll wie z.B. "C:/Pfad/include/".
[in]rClassInfoDie Klasseninformation mit den nötigen Informationen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ updateSource()

int glo::BaseMaker::updateSource ( const std::string & rstrTargetSourcePath,
const ClassInfo & rClassInfo ) const

Es wird ein Source-File einer Klasseninformation in übergebenen Verzeichnis angepasst, wenn vorhanden. Der Datei- und Klassenname sowie die einzelnen Attribut- und Methodenbezeichnungen werden aus der Klasseninformation ermittelt.

Parameter
[in]rstrTargetSourcePathDer Pfad, in welchen das Source-File angepasst werden soll wie z.B. "C:/Pfad/source/".
[in]rClassInfoDie Klasseninformation mit den nötigen Informationen.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

◆ writeTable()

int glo::BaseMaker::writeTable ( const std::string & rstrTargetTablePath,
const ClassInfo & rClassInfo,
bool bCreateNew ) const

Es wird eine Tabellendatei einer Klasseninformation in übergebenen Verzeichnis angelegt.

Parameter
[in]rstrTargetTablePathDer Pfad, in welchen die Tabelle angelegt werden soll wie z.B. "C:/Pfad/Data/".
[in]rClassInfoDie Klasseninformation mit der Tabellenbezeichnung.
[in]bCreateNewWenn true, wird eine vorhandene Datei überschrieben, ansonsten nicht.
Rückgabe
Ein Rückgabewert < 0 zeigt einen Fehler an.

Dokumentation der Datenelemente

◆ m_spSchemaInterface

std::shared_ptr< SchemaInterface > glo::BaseMaker::m_spSchemaInterface
private

Um Datentabellen, C++ Header- und Source-File generieren zu können, muß das Schema im Zugriff sein.

◆ m_strCommentBlockStartExt

std::string glo::BaseMaker::m_strCommentBlockStartExt
private

Ein Kommentarblock wird mit Slash-Sternchen eingeleitet und mit Sternchen-Slash abgeschlossen.
Ein hier abgelegter String wird den einleitenden Kommentarzeichen angefügt.

◆ m_strDokuAttributLine

std::string glo::BaseMaker::m_strDokuAttributLine
private

Eine Trennlinie aus '-' als Kommentar für die Attribute (Optik).

◆ m_strDokuCrossLine

std::string glo::BaseMaker::m_strDokuCrossLine
private

Eine Trennlinie aus '+' als Kommentar für die Header- und Source-Files (Optik).

◆ m_strDokuLine

std::string glo::BaseMaker::m_strDokuLine
private

Eine Trennlinie aus '-' als Kommentar für die Header- und Source-Files (Optik).

◆ m_strDokuStarLine

std::string glo::BaseMaker::m_strDokuStarLine
private

Eine Trennlinie aus '*' als Kommentar für die Header- und Source-Files (Optik).

◆ m_strOutputLine

std::string glo::BaseMaker::m_strOutputLine
private

Eine Trennlinie aus '-' für die Informationsausgabe.


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