Oberklasse für alle Receiver, welche über ein SOCKET kommunizieren und ihr Empfangsergebnis, ein von AbstractMessage abgeleiteter Typ , an ihren "Besitzer" liefert.
Da eine Nachricht zusammengesetzt sein kann (ist ja ein Stream, welcher ggf. in Häppchen geliefert wird), wird hier ein Puffer etapliert, welche solange Daten enthält, solnge der Stream nicht vollständig ist.
Mehr ...
#include <TcpDataReceiver.h>
Oberklasse für alle Receiver, welche über ein SOCKET kommunizieren und ihr Empfangsergebnis, ein von AbstractMessage abgeleiteter Typ , an ihren "Besitzer" liefert.
Da eine Nachricht zusammengesetzt sein kann (ist ja ein Stream, welcher ggf. in Häppchen geliefert wird), wird hier ein Puffer etapliert, welche solange Daten enthält, solnge der Stream nicht vollständig ist.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby
◆ DataReceiver() [1/5]
tcp::DataReceiver::DataReceiver |
( |
| ) |
|
|
protected |
Dieser Konstruktor steht nicht zur Verfügung.
◆ DataReceiver() [2/5]
tcp::DataReceiver::DataReceiver |
( |
SOCKET | | ) |
|
|
protected |
Dieser Konstruktor steht nicht zur Verfügung.
◆ DataReceiver() [3/5]
tcp::DataReceiver::DataReceiver |
( |
TcpMain * | , |
|
|
SOCKET | ) |
|
protected |
Dieser Konstruktor steht nicht zur Verfügung.
◆ DataReceiver() [4/5]
tcp::DataReceiver::DataReceiver |
( |
TcpMain * | pParent, |
|
|
SOCKET | Socket, |
|
|
unsigned int | uiDataSize ) |
Konstruktor mit Parameterübergabe.
- Parameter
-
[in] | pParent | Das besitzende Elternobjekt. |
[in] | Socket | Socket über den kommuniziert wird. |
[in] | uiDataSize | Die Paketgröße. |
- Ausnahmebehandlung
-
◆ ~DataReceiver()
virtual tcp::DataReceiver::~DataReceiver |
( |
| ) |
|
|
virtual |
Destruktor. Es werden die einzelnen Buffer aufgeräumt.
◆ DataReceiver() [5/5]
Der Copy-Konstruktor steht nicht zur Verfügung.
◆ acceptMessage()
◆ generateNewTcpMessage() [1/2]
virtual void tcp::DataReceiver::generateNewTcpMessage |
( |
AbstractMessage *& | prTcpAbstractMessage, |
|
|
char * | pszRawMsg, |
|
|
unsigned int | uiRawMsgSize, |
|
|
unsigned int | uiMessageID, |
|
|
int | iActionCode, |
|
|
const std::string & | rstrInfo ) const |
|
protectedpure virtual |
Generiert in Unterklassen eine von AbstractMessage abgeleitete Nachricht aus übergebenen Parametern.
- Parameter
-
[in,out] | prTcpAbstractMessage | Zeiger auf neu generierte Nachricht. Dieses Objekt übernimmt das entfernen der pszRawMsg aus dem Speicher. |
[in] | pszRawMsg | Die Nachrichtendaten. |
[in] | uiRawMsgSize | Die Größe bzw. Länge der Nachrichtendaten. |
[in] | uiMessageID | Eine eindeutige ID. |
[in] | iActionCode | Der ActionCode. |
[in] | rstrInfo | Eine zusätzliche Text-Info |
- Achtung
- Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.
- Siehe auch
- AbstractMessage, Message, ServerAcceptMessage, ServerMessage
Implementiert in tcp::ClientReceiver und tcp::ServerReceiver.
◆ generateNewTcpMessage() [2/2]
virtual void tcp::DataReceiver::generateNewTcpMessage |
( |
AbstractMessage *& | prTcpAbstractMessage, |
|
|
char * | pszTransmitData, |
|
|
unsigned int | uiTransmitDataSize ) const |
|
protectedpure virtual |
Generiert in Unterklassen eine von AbstractMessage abgeleitete Nachricht aus dem übergebenen Datenpuffer und dessen Größe.
- Parameter
-
[in,out] | prTcpAbstractMessage | Zeiger auf neu generierte Nachricht. Dieses Objekt übernimmt das entfernen der pszTransmitData aus dem Speicher. |
[in] | pszTransmitData | Der Datenpuffer inkl. aller benötigten Informationen. |
[in] | uiTransmitDataSize | Die Größe bzw. Länge des zu sendenden Datenpuffers. |
- Achtung
- Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.
- Siehe auch
- AbstractMessage, Message, ServerAcceptMessage, ServerMessage
Implementiert in tcp::ClientReceiver und tcp::ServerReceiver.
◆ getDataSize()
unsigned int tcp::DataReceiver::getDataSize |
( |
| ) |
const |
Liefert die Paketgröße.
- Rückgabe
- s.o.
◆ initStreamData()
void tcp::DataReceiver::initStreamData |
( |
| ) |
|
|
protected |
Initialisiert die Stream-Daten (setzt alles auf Null).
◆ operator=()
Der Zuweisungsoperator steht nicht zur Verfügung.
◆ processReceivedData()
int tcp::DataReceiver::processReceivedData |
( |
char * | pszSentBuffer, |
|
|
unsigned int | t_uiSentBufferSize ) |
|
protected |
Verarbeitet die empfangenen Daten und baut daraus eine Nachricht (abgeleitet von AbstractMessage durch Aufruf der Methode generateNewTcpMessage (...) ) und liefert diese über acceptMessage (...) an seinen Besitzer weiter.
- Parameter
-
[in] | pszSentBuffer | Der empfangene Buffer |
[in] | t_uiSentBufferSize | Die Größe des mpfangene Buffers |
- Rückgabe
- Eine Rückgabe < 0 zeigt einen Fehler an.
◆ setDataSize()
void tcp::DataReceiver::setDataSize |
( |
unsigned int | uiDataSize | ) |
|
Setzt die Paketgröße.
- Parameter
-
[in] | uiDataSize | Die Paketgröße. |
◆ m_pszSentBuffer
char* tcp::DataReceiver::m_pszSentBuffer |
|
protected |
Der empfangene Buffer in einem Empfangs-Schritt. Wird in den m_szStreamBuffer übertragen. Wenn die Größe des erwarteten Datenpakets noch nicht erreicht ist, wird der nächste empfangene Buffer an m_szStreamBuffer angehängt.
◆ m_szStreamBuffer
char* tcp::DataReceiver::m_szStreamBuffer |
|
protected |
◆ m_uiDataSize
unsigned int tcp::DataReceiver::m_uiDataSize |
|
protected |
◆ m_uiStreamPosistion
unsigned int tcp::DataReceiver::m_uiStreamPosistion |
|
protected |
Die aktuelle Streamposition.
◆ m_uiStreamSize
unsigned int tcp::DataReceiver::m_uiStreamSize |
|
protected |
Die Streamgröße (aus dem Header).
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: