GlobalObjects
|
Mittels dieser Klasse wird die Kommunikation zwischen der Applikation, welche GlobalObjects nutzt und GlobalObjects abgewickelt. Mehr ...
#include <GloOrderMsg.h>
Öffentliche Methoden | |
OrderMsg (const eut::Blob &rBlob, EnStreamOrderDataType eStreamDataType, const std::map< unsigned long, ClassInfo * > *pSchemaInfoMap) | |
OrderMsg (const std::string &rsSchemaName, Communicator *pCommunicator, EnOrderType eOrderType, void *pOrderObject, void *pOrderResult, void *pFirstAdditionalInfo, void *pSecondAdditionalInfo) | |
OrderMsg (const std::string &rsSchemaName, EnOrderType eOrderType, void *pOrderObject, void *pFirstAdditionalInfo=nullptr) | |
virtual | ~OrderMsg () |
void | deleteFirstAdditionalInfo () |
void | deleteOrderObject () |
void | deleteOrderResult () |
void | deleteSecondAdditionalInfo () |
Communicator * | getCommunicator () const |
std::string | getCommunicatorClientName () const |
unsigned int | getCommunicatorID () const |
int | getErr () const |
void * | getFirstAdditionalInfo () const |
unsigned int | getOrderMsgID () const |
void * | getOrderObject () const |
void * | getOrderResult () const |
OrderMsg::EnOrderType | getOrderType () const |
std::string | getOrderTypeAsStr () const |
std::string | getSchemaName () const |
void * | getSecondAdditionalInfo () const |
OrderMsg::EnSendDirection | getSendDirection () const |
NUM_PTR | getThreadID () const |
bool | isProcessed () |
void * | ReleaseOrderResult () |
void | setCommunicator (Communicator *pCommunicator) |
void | setErr (int iErr) |
void | setFirstAdditionalInfo (void *pFirstAdditionalInfo) |
void | setOrderMsgID (unsigned int uiID) |
void | setOrderObject (void *pOrderObject) |
void | setOrderResult (void *pOrderResult) |
void | setOrderType (OrderMsg::EnOrderType eOrderType) |
void | setSecondAdditionalInfo (void *pSecondAdditionalInfo) |
void | setSendDirection (EnSendDirection eSendDirection) |
void | setThreadID (NUM_PTR ipThreadID) |
int | streamBlobInOrder (const eut::Blob &rBlob, EnStreamOrderDataType eStreamOrderDataType, const std::map< unsigned long, ClassInfo * > *pSchemaInfoMap) |
void | streamOrderInBlob (eut::Blob &rBlob, EnStreamOrderDataType eStreamOrderDataType) const |
virtual std::string | toString () const |
bool | willDestroyOrderObjectInDTor () const |
Öffentliche, statische Methoden | |
static std::string | getOrderTypeAsString (EnOrderType eOrderType) |
Öffentliche Attribute | |
std::string | m_strStatus |
Geschützte Methoden | |
OrderMsg () | |
template<typename T > | |
int | addStreamData0terminated (eut::Blob &rBlob, const T tData) const |
int | addStreamDataType (eut::Blob &rBlob, void *pData, EnStreamDataType eStreamDataType, std::map< ObjID, ObjID, std::less< ObjID > > &rReadyRecordMap) const |
void | deleteFirstAdditionalInfo (OrderMsg::EnOrderType eOrderType) |
void | deleteOrderObject (OrderMsg::EnOrderType eOrderType) |
void | deleteOrderResult (OrderMsg::EnOrderType eOrderType) |
void | deleteSecondAdditionalInfo (OrderMsg::EnOrderType eOrderType) |
int | setDataFromStream (const eut::Blob &rBlob, std::size_t &rnCurrentBlobPosition, std::size_t &rnBlobPosition, void *&prData, EnStreamDataType eStreamDataType, const std::map< unsigned long, ClassInfo * > *pSchemaInfoMap) |
Private Typen | |
enum | EnStreamDataType { eUNDEF_DATATYPE = 0 , eALLSET_ITER_RESULT , eALLSET_STRUCT , eBOOL , eCLASSINFO , eCLASSINFO_MAP , eCLIENTINFO_VECTOR , eCLIENTONFO , eCOMPARISION_QUERRY_STRUCT , eDATATYPE , eDATATYPELIMITS , eDATATYPELIMITS_VECTOR , eFLOAT , eLOCKSPEC_STRUCT , eNOTIFYNOTE_STRUCT , eOBJID , eOBJID_LIST , eOBJID_VECTOR , eOPENSPEC_STRUCT , eQUERRY_STRUCT , eRANGE_QUERRY_STRUCT , eRECORD , eRECORD_LIST , eRECORD_MAP , eSIGNED , eSTRING , eSTRING_VECTOR , eUNSIGNED_INT , eUNSIGNED_INTPTR , eUNSIGNED_LONG , eUNSIGNED_SIZE , eWATCHSPEC_STRUCT } |
Private Methoden | |
OrderMsg (const OrderMsg &) | |
OrderMsg & | operator= (const OrderMsg &) |
Private Attribute | |
bool | m_bDestroyOrderObject |
bool | m_bFirstAdditionalInfoModified |
bool | m_bOrderObjectModified |
bool | m_bProcessed |
bool | m_bSecondAdditionalInfoModified |
OrderMsg::EnSendDirection | m_eDirection |
OrderMsg::EnOrderType | m_eOrderType |
int | m_iErr |
NUM_PTR | m_ipThreadID |
Communicator * | m_pCommunicator |
void * | m_pFirstAdditionalInfo |
void * | m_pOrderObject |
void * | m_pOrderResult |
void * | m_pSecondAdditionalInfo |
std::string | m_sCommunicatorClientName |
std::string | m_sSchemaName |
unsigned int | m_uiCommunicatorID |
unsigned int | m_uiID |
Freundbeziehungen | |
class | CommunicaterThread |
Mittels dieser Klasse wird die Kommunikation zwischen der Applikation, welche GlobalObjects nutzt und GlobalObjects abgewickelt.
In der OrderMsg werden Anfragen, Aufträge an die Datenbank wie auch deren Ergebnisse transportiert.
Der Auftragstyp. Wenn erweitert wird, Methode OrderMsg::getOrderTypeAsString( EnOrderType ) anpassen!
Aufzählungswerte | |
---|---|
eUNDEF | Undefiniert |
eGET_ALL_BASES | Auftrag: Liefer alle Datenbanknamen. |
eGET_CLASSINFO_BY_CLASSID | Auftrag: Liefer die Klasseninformation einer Klasse mit übergebener Klassen-ID. |
eGET_CLASSINFO_BY_CLASSNAME | Auftrag: Liefer die Klasseninformation einer Klasse mit übergebenen Klassenbezeichnung. |
eGET_ALL_DEFAULT_LIMITS | Auftrag: Liefer alle Attribut-Limits. |
eGET_DATATYPE_LIMITS | Auftrag: Liefer die Limits eines Attributs. |
eGET_SUBCLASS_INFOS | Auftrag: Liefer die Klasseninformationen der direkten Unterklassen einer Klasse. |
eGET_BASECLASS_INFOS | Auftrag: Liefer die Klasseninformationen der direkten Oberklassen einer Klasse. |
eGET_ALL_SUBCLASS_INFOS | Auftrag: Liefer die Klasseninformationen alle Unterklassen einer Klasse. |
eGET_ALL_BASECLASS_INFOS | Auftrag: Liefer die Klasseninformationen alle Oberklassen einer Klasse. |
eGET_ALL_CLASS_INFOS | Auftrag: Liefer alle Klasseninformationen. |
eIS_KNOWN_CLASSID | Auftrag: Prüfe, ob eine Klassen-ID in der Datenbank bekannt ist. |
eIS_SUPER_CLASS_FROM | Auftrag: Prüfe, ob eine Klasse Oberklasse einer anderen Klassen ist. |
eGET_ALL_CLIENTS | Auftrag: Liefer alle Clients welche eine Datenbank geöffnet haben bzw. im Serverbetrieb sich mit dem GloServer verbunden haben. |
eOPEN_BASE | Auftrag: Öffne die Datenbank. |
eCLOSE_BASE | Auftrag: Schließe die Datenbank. |
eASSIGN | Auftrag: Melde das Objekt einer Klasse in der Datenbank an und liefer die Objekt-ID. |
eOPEN_ALLSET | Auftrag: Öffne einen AllSet. |
eCLOSE_ALLSET | Auftrag: Schließe einen AllSet. |
eGET_OBJID_WITH_OBJECT_FROM_ALLSET | Auftrag: Liefer eine Objekt-ID und das Objekt aus einem AllSet. |
eGET_OBJID_FROM_ALLSET | Auftrag: Liefer eine Objekt-ID aus einem AllSet. |
eSET_INDEX_FILTER_BY_SEARCHVALUE_IN_ALLSET | Auftrag: Setze einen Indexfilter im AllSet. |
eSET_INDEX_FILTER_BY_COMPARING_IN_ALLSET | Auftrag: Setze Indexfilter im AllSet. |
eSET_INDEX_FILTER_BY_RANGE_IN_ALLSET | Auftrag: Setze Indexfilter im AllSet. |
eREMOVE_INDEX_FILTER | Auftrag: Entferne einen evtl. forhandenen Indexfilter im AllSet. |
eGET_INDEXED_OBJIDS_BY_SEARCHVALUE_FROM_ALLSET | Auftrag: Liefer Objekt-IDs aus Indexabfrage aus AllSet. |
eGET_INDEXED_OBJIDS_BY_COMPARING_FROM_ALLSET | Auftrag: Liefer Objekt-IDs aus Indexabfrage aus AllSet. |
eGET_INDEXED_OBJIDS_BY_RANGE_FROM_ALLSET | Auftrag: Liefer Objekt-IDs aus Indexabfrage aus AllSet. |
eGET_ALLSET_SIZE | Auftrag: Liefer Anzahl der Objekte in einem AllSet. |
eSET_CURRENT_OBJECT_IN_ALLSET | Auftrag: Setze den Positionszeiger auf das Objekt mit einer Objekt-ID in einem AllSet. |
eSET_POSITION_IN_ALLSET | Auftrag: Setze den Positionszeiger in einem AllSet. |
eCHECK_OBJID_IN_ALLSET | Auftrag: Prüfe, ob Objekt-ID im AllSet ist. |
eGET | Auftrag: Liefer vollständigen Datensatz eines Objektes mit einer Objekt-ID aus der Datenbank. |
eGET_REC | Auftrag: Liefer einen Record des Objektes mit einer Objekt-ID aus der Datenbank. |
eREFRESH | Auftrag: Frische einen Datensatz eines Objektes mit einer Objekt-ID aus der Datenbank auf. |
eSTORE | Auftrag: Speicher Datensätze in der Datenbank. |
eIS_STORED | Auftrag: Prüfe, ob Objekt mit einer Objekt-ID in der Datenbank gespeichert ist. |
eDELETE | Auftrag: Lösche Datensätze in der Datenbank. |
eDELETE_MULTIPLE | Auftrag: Lösche Liste von Objekten, repesentiert durch ihre Objekt-ID, in der Datenbank. |
eLOCK | Auftrag: Sperre Objekte mit Objekt-ID in der Datenbank. |
eRELOCK | Auftrag: Sperre Objekte mit Objekt-ID in der Datenbank neu. |
eUNLOCK | Auftrag: Gebe Objekte mit Objekt-ID in der Datenbank frei. |
eIS_LOCKED | Auftrag: Prüfe, ob Objekte mit Objekt-ID in Datenbank gesperrt. |
eIS_ALLOWED | Auftrag: Prüfe bestimmte Aktion, die mit Objekten mit Objekt-ID in Datenbank erlaubt sind (in Bezug auf Sperren). |
eGET_PROCESSING_POSSIBILITIES | Auftrag: Liefer erlaubte Aktionen, die mit Objekten mit Objekt-ID in der Datenbank erlaubt sind (in Bezug auf Sperren). |
eWATCH_OBJECT | Auftrag: Überwache die Objekte mit Objekt-ID in der Datenbank und benachrichtige. |
eUNWATCH_OBJECT | Auftrag: Beende die Überwachung von Objekten mit Objekt-ID in der Datenbank. |
eWATCH_CLASS | Auftrag: Überwache einen AllSet in der Datenbank und benachrichtige. |
eUNWATCH_CLASS | Auftrag: Beende Überwachung von AllSet in Datenbank. |
eWATCH_CLIENT | Auftrag: Überwache die Anmeldung an einen GloServer und das Öffnen einer Datenbank von Clients und benachrichtige. |
eUNWATCH_CLIENT | Auftrag: Beende Überwachung von Clients. |
eWATCH_INDEX_READWRITE | Auftrag: Überwache die Neuindizierung einer Datenbank und benachrichtige. |
eUNWATCH_INDEX_READWRITE | Auftrag: Beende die Überwachung der Neuindizierung einer Datenbank. |
eBEGIN_TRANSACTION | Auftrag: Beginne Transaktion. |
eCOMMIT_TRANSACTION | Auftrag: Schließe Transaktion ab und führe Aktionen aus. |
eABORT_TRANSACTION | Auftrag: Breche Transaktion ab und führe Aktionen nicht aus. |
ePROCESS_TRANSACTION | Auftrag: Wird nur intern im Manager genutzt, verarbeitet eine Transaktion. |
eREINDEX_BASE | Auftrag: Reindiziere die Datenbank. |
eCOMPRESS_BASE | Auftrag: Komprimiert die Datenbank. |
eREPAIR_BASE | Auftrag: Repariere die Datenbank. |
eNOTIFY_CLIENT | Auftrag: Wird nur intern im Manager genutzt, initiiert Benachrichtigungen an Clients. |
eNOTIFY_OBJECT_AS_WRITTEN | Auftrag: Melde Objekte einer persistent Klasse als in der Datenbank geändert. |
ePROCESS_NOTIFY | Auftrag: Wird vom Manager, LockManager und TableReaderInterface genutzt, um den WatchNotifyManager zu beauftragen, Clients zu benachrichtigen, dass etwas passiert ist. |
eDELETE_COMMUNICATOR_WATCHES | Auftrag: Wird vom Manager genutzt, um den WatchNotifyManager zu beauftragen, alle ausstehenden Watches eines Communicators entfernen zu lassen. |
eNEW_CONNECTED_CLIENT | Auftrag: Wird nur intern vom GloServer genutzt, um den Manager zu informieren, dass sich ein neuer Client mit dem GloServer verbunden hat. |
eDISCONNECTED_CLIENT | Auftrag: Wird nur intern vom GloServer genutzt, um den Manager zu informieren, dass sich ein Client beim GloServer abgemeldet hat. |
Der Auftrag hat eine Senderichtung, welche mit dieser Enumeration gekennzeichnet wird.
Aufzählungswerte | |
---|---|
eTO_CLIENT_ANSWER | Der Auftrag ist eine Antwort bzw. ein Ergebnis an den Client. |
eTO_CLIENT_NOTIFY | Der Auftrag ist eine Benachrichtigung an den Client. |
eTO_SERVER | Ein Auftrag an den GloServer. |
eINTERN | Ein interner Auftrag z.B. vom GloServer an den Manager. |
|
private |
Zeigt an, welchen Typs die Auftrags- bzw. Ergebnisdaten sind.
Aufzählungswerte | |
---|---|
eUNDEF_DATATYPE | undefined |
eALLSET_ITER_RESULT | |
eALLSET_STRUCT | |
eBOOL | bool |
eCLASSINFO | |
eCLASSINFO_MAP | std::map< unsigned long, ClassInfo *, std::less<unsigned long> > * |
eCLIENTINFO_VECTOR | std::vector< ClientInfo > |
eCLIENTONFO | |
eCOMPARISION_QUERRY_STRUCT | |
eDATATYPE | |
eDATATYPELIMITS | |
eDATATYPELIMITS_VECTOR | std::vector< LimitRecord > * |
eFLOAT | double |
eLOCKSPEC_STRUCT | |
eNOTIFYNOTE_STRUCT | |
eOBJID | ObjID * |
eOBJID_LIST | std::list< ObjID > * |
eOBJID_VECTOR | std::vector< ObjID > |
eOPENSPEC_STRUCT | |
eQUERRY_STRUCT | |
eRANGE_QUERRY_STRUCT | |
eRECORD | |
eRECORD_LIST | std::list< Record * > * |
eRECORD_MAP | |
eSIGNED | int |
eSTRING | std::string |
eSTRING_VECTOR | std::vector< std::string > * |
eUNSIGNED_INT | unsigned int |
eUNSIGNED_INTPTR | NUM_PTR |
eUNSIGNED_LONG | unsigned long |
eUNSIGNED_SIZE | size_t |
eWATCHSPEC_STRUCT |
Aufträge werden mit den Auftragsdaten von einer beauftragenden Instanz versendet. Der gleiche Auftrag wird i.d.R. genutzt, um die Ergebnisdaten an die beauftragende Instanz zurück zu senden, dann ändert sich der Status von eORDERDATA to eRESULTDATA
Aufzählungswerte | |
---|---|
eORDERDATA | Der Auftrag ist noch nicht bearbeitet, hat Auftragsdaten. |
eRESULTDATA | Der Auftrag ist bearbeitet, hat Ergebnisdaten. |
|
protected |
Der Standard-Konstruktor steht nicht zur Verfügung.
glo::OrderMsg::OrderMsg | ( | const std::string & | rsSchemaName, |
Communicator * | pCommunicator, | ||
EnOrderType | eOrderType, | ||
void * | pOrderObject, | ||
void * | pOrderResult, | ||
void * | pFirstAdditionalInfo, | ||
void * | pSecondAdditionalInfo ) |
Konstruktor mit Parameterübergabe. Instanziiert einen Auftrag entweder mit Auftrags- oder Ergebnis-Daten und optionalen zusätzlichen Informationsdaten.
[in] | rsSchemaName | Die Schemabezeichnung bzw. Basename für den der Auftrag gilt. |
[in] | pCommunicator | Der beauftragende Kommunikator. |
[in] | eOrderType | Der Auftragstyp. |
[in] | pOrderObject | Roher Zeiger auf die Auftragsdaten (Typen siehe m_pOrderObject). |
[in] | pOrderResult | Roher Zeiger auf die Ergebnisdaten (Typen siehe m_pOrderResult). |
[in] | pFirstAdditionalInfo | Roher Zeiger auf eine erste zusätzliche Informationen (optional). |
[in] | pSecondAdditionalInfo | Roher Zeiger auf eine zweite zusätzliche Informationen (optional). |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
glo::OrderMsg::OrderMsg | ( | const std::string & | rsSchemaName, |
EnOrderType | eOrderType, | ||
void * | pOrderObject, | ||
void * | pFirstAdditionalInfo = nullptr ) |
Konstruktor mit Parameterübergabe. instanziiert einen Auftrag mit Auftragsdaten. Da ohne Kommunikator, für den 'internen' Gebrauch und nicht zur Kommunikation zwischen Client und Server bzw. Datenbank.
[in] | rsSchemaName | Die Schemabezeichnung bzw. Basename für wen der Auftrag ist. |
[in] | eOrderType | Der Auftragstyp. |
[in] | pOrderObject | Roher Zeiger auf die Auftragsdaten (Typen siehe m_pOrderObject). |
[in] | pFirstAdditionalInfo | Optionaler roher Zeiger auf zusätzliche Informationen. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
glo::OrderMsg::OrderMsg | ( | const eut::Blob & | rBlob, |
EnStreamOrderDataType | eStreamDataType, | ||
const std::map< unsigned long, ClassInfo * > * | pSchemaInfoMap ) |
Konstruktor mit Parameterübergabe. Setzt die Attribute aus dem übergebenen Blob.
[in] | rBlob | Der Auftrag als Blob. |
[in] | eStreamDataType | Auftrag oder Ergebnis. |
[in] | pSchemaInfoMap | Es müssen die Klasseninformationen übergeben werden, um Datensätze bauen zu können. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
|
virtual |
Desttruktor. Es werden, wenn vorhanden m_pOrderObject (siehe auch m_bDestroyOrderObject), m_pOrderResult und m_pFirstAdditionalInfo aus dem Speicher entfernt.
|
private |
Der Copy-Konstruktor steht nicht zur Verfügung.
|
protected |
Hängt einen Wert als 0-terminierten String an übergebenen Blob an.
[in,out] | rBlob | Das zu erweiternde Blob. |
[in] | tData | Der anzuhängende Wert. |
|
protected |
Hilfsmethode für OrderMsg::streamOrderInBlob (...); hängt an übergebenen Blob Daten an.
[in,out] | rBlob | Das zu erweiternde Blob. |
[in] | pData | Der anzuhängende Wert; wird je nach übergebenen OrderMsg::EnStreamDataType gecastet. |
[in] | eStreamDataType | Der Typ des anzuhängende Werts. |
[in] | rReadyRecordMap | Eine Map mit Objekt-IDs, welche schon im Blob sind. |
eut::ErrorNException | Bei einem unbehebbaren Fehler wird eine Exception geworfen. |
void glo::OrderMsg::deleteFirstAdditionalInfo | ( | ) |
Löscht die erste Zusatzinfo, wenn gesetzt, aus dem Speicher.
|
protected |
Löscht die erste Zusatzinfo, wenn gesetzt, aus dem Speicher.
[in] | eOrderType | Es wird die Zusatzinfo dem Ordertyp entsprechende gecastet und dann gelöscht. |
void glo::OrderMsg::deleteOrderObject | ( | ) |
Löscht die Auftragsdaten, wenn gesetzt, aus dem Speicher.
|
protected |
Löscht die Auftragsdaten, wenn gesetzt, aus dem Speicher.
[in] | eOrderType | Es werden die Auftragsdaten dem Ordertyp entsprechende gecastet und dann gelöscht. |
void glo::OrderMsg::deleteOrderResult | ( | ) |
Löscht die Ergebnisdaten, wenn gesetzt, aus dem Speicher.
|
protected |
Löscht die Ergebnisdaten, wenn gesetzt, aus dem Speicher.
[in] | eOrderType | Es werden die Ergebnisdaten dem Ordertyp entsprechende gecastet und dann gelöscht. |
void glo::OrderMsg::deleteSecondAdditionalInfo | ( | ) |
Löscht die zweite Zusatzinfo, wenn gesetzt, aus dem Speicher.
|
protected |
Löscht die zweite Zusatzinfo, wenn gesetzt, aus dem Speicher.
[in] | eOrderType | Es wird die Zusatzinfo dem Ordertyp entsprechende gecastet und dann gelöscht. |
Communicator * glo::OrderMsg::getCommunicator | ( | ) | const |
Liefert einen Zeiger auf den referenzierten Kommunikator.
std::string glo::OrderMsg::getCommunicatorClientName | ( | ) | const |
unsigned int glo::OrderMsg::getCommunicatorID | ( | ) | const |
int glo::OrderMsg::getErr | ( | ) | const |
void * glo::OrderMsg::getFirstAdditionalInfo | ( | ) | const |
Liefert einen rohen Zeiger auf eine evtl. vorhandene erste zusätzliche Informationen.
unsigned int glo::OrderMsg::getOrderMsgID | ( | ) | const |
void * glo::OrderMsg::getOrderObject | ( | ) | const |
Liefert einen rohen Zeiger auf evtl.. vorhandene Auftragsdaten.
void * glo::OrderMsg::getOrderResult | ( | ) | const |
Liefert einen rohen Zeiger auf evtl. vorhandene Ergebnisdaten.
OrderMsg::EnOrderType glo::OrderMsg::getOrderType | ( | ) | const |
std::string glo::OrderMsg::getOrderTypeAsStr | ( | ) | const |
Liefert den Auftragstyp als String.
|
static |
Liefert den Auftragstyp als String.
[in] | eOrderType | Der Auftragstyp. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
std::string glo::OrderMsg::getSchemaName | ( | ) | const |
void * glo::OrderMsg::getSecondAdditionalInfo | ( | ) | const |
Liefert einen rohen Zeiger auf eine evtl. vorhandene zweite zusätzliche Informationen.
OrderMsg::EnSendDirection glo::OrderMsg::getSendDirection | ( | ) | const |
NUM_PTR glo::OrderMsg::getThreadID | ( | ) | const |
bool glo::OrderMsg::isProcessed | ( | ) |
Prüft, ob der Auftrag verarbeitet wurde.
Der Zuweisungsoperator steht nicht zur Verfügung.
void * glo::OrderMsg::ReleaseOrderResult | ( | ) |
Liefert einen rohen Zeiger auf die Ergebnisdaten, wenn gesetzt.
void glo::OrderMsg::setCommunicator | ( | Communicator * | pCommunicator | ) |
Setzt den Kommunikator.
[in] | pCommunicator | Der Kommunikator. |
|
protected |
Hilfsmethode für OrderMsg::streamBlobInOrder (...); analysiert übergebenes Blob und setzt m_pOrderObject, m_pOrderResult oder m_pFirstAdditionalInfo.
[in,out] | rBlob | Das auszuwertende Blob. |
[in,out] | rnCurrentBlobPosition | Der aktuelle Zeiger im Blob. |
[in,out] | rnBlobPosition | Der resultierende Zeiger im Blob. |
[in,out] | prData | Roher Zeiger auf m_pOrderObject, m_pOrderResult oder m_pFirstAdditionalInfo. Hier kommen die Daten rein. |
[in] | eStreamDataType | Der Typ des zu ermittelnden Werts. |
[in] | pSchemaInfoMap | Es müssen die Klasseninformationen übergeben werden, um ggf. Datensätze bauen zu können. |
eut::ErrorNException | Bei einem unbehebbaren Fehler wird eine Exception geworfen. |
void glo::OrderMsg::setErr | ( | int | iErr | ) |
void glo::OrderMsg::setFirstAdditionalInfo | ( | void * | pFirstAdditionalInfo | ) |
Setzt die erste zusätzliche Informationen.
[in] | pFirstAdditionalInfo | Die erste zusätzliche Information. |
void glo::OrderMsg::setOrderMsgID | ( | unsigned int | uiID | ) |
Setzt die eindeutige Auftragsnummer.
[in] | uiID | Die eindeutige Auftragsnummer. |
void glo::OrderMsg::setOrderObject | ( | void * | pOrderObject | ) |
Setzt die Auftragsdaten neu.
[in] | pOrderObject | Roher Zeiger auf die Auftragsdaten (Typen siehe m_pOrderObject). |
void glo::OrderMsg::setOrderResult | ( | void * | pOrderResult | ) |
Setzt die Ergebnisdaten.
[in] | pOrderResult | Roher Zeiger auf die Ergebnisdaten (Typen siehe m_pOrderResult). |
void glo::OrderMsg::setOrderType | ( | OrderMsg::EnOrderType | eOrderType | ) |
void glo::OrderMsg::setSecondAdditionalInfo | ( | void * | pSecondAdditionalInfo | ) |
Setzt die zweite zusätzliche Informationen.
[in] | pSecondAdditionalInfo | Die zweite zusätzliche Information. |
void glo::OrderMsg::setSendDirection | ( | EnSendDirection | eSendDirection | ) |
void glo::OrderMsg::setThreadID | ( | NUM_PTR | ipThreadID | ) |
Setzt die ThreadID des Erstellers des Auftrags.
[in] | ipThreadID | Die ThreadID. |
int glo::OrderMsg::streamBlobInOrder | ( | const eut::Blob & | rBlob, |
EnStreamOrderDataType | eStreamOrderDataType, | ||
const std::map< unsigned long, ClassInfo * > * | pSchemaInfoMap ) |
Setzt seine Daten aus übergebenen Blob.
[in] | rBlob | Das Blob mit den Daten. |
[in] | eStreamOrderDataType | Auftrag oder Ergebnis. |
[in] | pSchemaInfoMap | Es müssen die Klasseninformationen übergeben werden, um Datensätze bauen zu können. |
void glo::OrderMsg::streamOrderInBlob | ( | eut::Blob & | rBlob, |
EnStreamOrderDataType | eStreamOrderDataType ) const |
Füllt ein übergebenes Blob mit seinen Daten.
[in,out] | rBlob | Das zu füllende Blob. |
[in] | eStreamOrderDataType | Auftrag oder Ergebnis. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
|
virtual |
Liefert OrderMsg::m_strStatus.
bool glo::OrderMsg::willDestroyOrderObjectInDTor | ( | ) | const |
Liefert m_bDestroyOrderObject.
|
friend |
|
private |
I.d.R. wird das Objekt hinter m_pOrderObject im Destruktor aus dem Speicher entfernt. Dieses Attribut ist per default true. Wenn false, wird m_pOrderObject nicht im Destruktor aus dem Speicher entfernt.
|
private |
Zusätzliche Informationen können während der Existenz eines Auftrags einmalig geändert werden. Damit OrderMsg::deleteFirstAdditionalInfo() weiß was es löschen soll, wird dieses Attribut automatisch in OrderMsg::setFirstAdditionalInfo (...) gesetzt.
|
private |
Ein Auftragsobjekt kann während der Existenz eines Auftrags einmalig geändert werden. Damit OrderMsg::deleteOrderObject() weiß was es löschen soll, wird dieses Attribut automatisch in OrderMsg::setOrderObject (...) gesetzt.
|
private |
Wird true, wenn der Auftrag verarbeitet ist.
|
private |
Zusätzliche Informationen können während der Existenz eines Auftrags einmalig geändert werden. Damit OrderMsg::deleteSecondAdditionalInfo() weiß was es löschen soll, wird dieses Attribut automatisch in OrderMsg::setSecondAdditionalInfo (...) gesetzt.
|
private |
Senderichtung.
|
private |
Der Auftragstyp.
|
private |
Ein Fehlercode; wird i.d.R. in der 'Antwort' gesetzt.
|
private |
Die ThreadID des Erstellers des Auftrags.
|
private |
Für den Rückruf, wenn Auftrag erledigt bzw. der Empfänger für eine Benachrichtigungen.
|
private |
Roher Zeiger auf erste zusätzliche Informationen.
Mögliche Typen:
int
LockSpecification
long
OpenSpecification
ReaderInfo
std::string
WatchSpecification
/sa m_pSecondAdditionalInfo
|
private |
Roher Zeiger auf die Auftragsdaten
Mögliche Typen:
AllSetStruct
ClassInfoAttribute::Type
ObjID
TransactionManager::CommunicatorTransactionStack
WatchNotifyManager::NotifyInfo
int
std::list< Manager::ObjIdWithDepends * >
std::list<ObjID>
std::list<ObjID>
std::map< ObjID, Record *, std::less<ObjID> >
std::string
unsigned long
|
private |
Roher Zeiger auf die Ergebnisdaten.
Mögliche Typen:
bool ClassInfo LimitRecord NotifyNote ObjID Record std::list<Record*> std::map< unsigned long, ClassInfo *, std::less<unsigned long> > std::vector<ClientInfo> std::vector<LimitRecord> std::vector<std::string> unsigned long ClientInfo
|
private |
Roher Zeiger auf zweite zusätzliche Informationen.
|
private |
Jeder Kommunikator kann einen Namen haben. Weil der Kommunikator ggf. nicht mehr gültig sein kann, wird hier der Name nochmals festgehalten.
|
private |
Die Schemabezeichnung bzw. der Datenbankname für den der Auftrag ist.
std::string glo::OrderMsg::m_strStatus |
Hier kann für Debug-Zwecke etwas reingeschrieben werden.
|
private |
Eine eindeutige ID des Kommunikator. Weil der Kommunikator ggf. nicht mehr gültig sein kann, wird hier die ID nochmals festgehalten.
|
private |
Jeder Auftrag bekommt eine eindeutige Auftragsnummer. Ist notwendig um eine Antwort, welche die gleiche Auftragsnummer hat, einem Auftrag zuzuordnen.