GlobalObjects
Lade ...
Suche ...
Keine Treffer
tcp::ClientReceiver Klassenreferenz

Klasse, welche über ein SOCKET mit einem Server kommunizieret und ihr Empfangsergebnis vom Typ Message, an ihren "Besitzer", welcher ein Client sein muss, liefert. Das Liefern an den "Besitzer" kann über Methode ClientReceiver::acceptMessage(AbstractMessage * pTcpMessage) in Unterklassen durch Überschreiben der Methode abgeändert werden. Mehr ...

#include <TcpClientReceiver.h>

Klassendiagramm für tcp::ClientReceiver:

Öffentliche Methoden

 ClientReceiver (Client *pParent, SOCKET Socket, unsigned int uiDataSize)
 
virtual ~ClientReceiver ()
 
virtual void cancel () override
 
bool connected () const
 
- Öffentliche Methoden geerbt von tcp::DataReceiver
 DataReceiver (TcpMain *pParent, SOCKET Socket, unsigned int uiDataSize)
 
virtual ~DataReceiver ()
 
unsigned int getDataSize () const
 
void setDataSize (unsigned int uiDataSize)
 
- Öffentliche Methoden geerbt von tcp::Receiver
 Receiver (TcpMain *pParent, SOCKET Socket)
 
virtual ~Receiver ()
 
- Öffentliche Methoden geerbt von tcp::ReceiverTransmitter
 ReceiverTransmitter (SOCKET Socket)
 
virtual ~ReceiverTransmitter ()
 
virtual void finishBreak () override
 
int getPeerName (std::string &rstrIPAdress, unsigned int &ruiPort) const
 
SOCKET Socket () const
 
virtual void takeABreak () override
 
- Öffentliche Methoden geerbt von eut::RepeatingThread
 RepeatingThread ()
 
virtual ~RepeatingThread ()
 
int getBreakCounter ()
 
bool isInExclusiveAccess () const
 
void setExclusiveAccess ()
 
void signalInput ()
 
virtual int start ()
 
RepeatingThread::STATUS status () const
 
bool testCancel ()
 
void unsetExclusiveAccess ()
 
void waitForInput ()
 

Geschützte Methoden

 ClientReceiver ()
 
 ClientReceiver (SOCKET)
 
 ClientReceiver (TcpMain *, SOCKET)
 
 ClientReceiver (TcpMain *, SOCKET, unsigned int)
 
virtual int acceptMessage (AbstractMessage *pTcpMessage) override
 
virtual void generateNewTcpMessage (AbstractMessage *&prTcpMessage, char *pszRawMsg, unsigned int uiRawMsgSize, unsigned int uiMessageID, int iActionCode, const std::string &rstrInfo) const override
 
virtual void generateNewTcpMessage (AbstractMessage *&prTcpMessage, char *pszTransmitData, unsigned int uiTransmitDataSize) const override
 
virtual void work () override
 
- Geschützte Methoden geerbt von tcp::DataReceiver
 DataReceiver ()
 
 DataReceiver (SOCKET)
 
 DataReceiver (TcpMain *, SOCKET)
 
void initStreamData ()
 
int processReceivedData (char *pszSentBuffer, unsigned int t_uiSentBufferSize)
 
- Geschützte Methoden geerbt von tcp::Receiver
 Receiver ()
 
 Receiver (SOCKET Socket)
 
- Geschützte Methoden geerbt von tcp::ReceiverTransmitter
 ReceiverTransmitter ()
 
- Geschützte Methoden geerbt von eut::RepeatingThread
ORDER getOrder ()
 
STATUS getStatus ()
 
void setStatus (STATUS eStatus)
 
void threadWork ()
 
void toOrder (ORDER eOrder)
 

Private Methoden

 ClientReceiver (const ClientReceiver &)
 
ClientReceiveroperator= (const ClientReceiver &)
 

Private Attribute

bool m_bHaveConnection
 

Weitere Geerbte Elemente

- Öffentliche Typen geerbt von eut::RepeatingThread
enum  EuTHREADERROR { EuTHREAD_ERR_NO_THREAD = -10301 , EuTHREAD_ERR_THREAD_ALREADY_WORKING = -10302 , EuTHREAD_ERR_THREAD_BREAK_COUNT_LESS_THAN_ZERO = -10303 , EuTHREAD_ERR_UNKNOWN = -10400 }
 Fehlerbereich = -10301 bis -10400 Mehr ...
 
enum  ORDER { eUNDEFINED , eDO_WORK , eEXIT }
 
enum  STATUS {
  eAT_THE_START , eWORKING , ePAUSING , eENDING ,
  eCOMPLETED
}
 
- Öffentliche Attribute geerbt von eut::RepeatingThread
std::string m_strDebugInfo
 
- Geschützte Attribute geerbt von tcp::DataReceiver
char * m_pszSentBuffer
 
char * m_szStreamBuffer
 
unsigned int m_uiDataSize
 
unsigned int m_uiStreamPosistion
 
unsigned int m_uiStreamSize
 
- Geschützte Attribute geerbt von tcp::Receiver
TcpMainm_pParentTcpMain
 
- Geschützte Attribute geerbt von tcp::ReceiverTransmitter
SOCKET m_Socket
 

Ausführliche Beschreibung

Klasse, welche über ein SOCKET mit einem Server kommunizieret und ihr Empfangsergebnis vom Typ Message, an ihren "Besitzer", welcher ein Client sein muss, liefert. Das Liefern an den "Besitzer" kann über Methode ClientReceiver::acceptMessage(AbstractMessage * pTcpMessage) in Unterklassen durch Überschreiben der Methode abgeändert werden.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ ClientReceiver() [1/6]

tcp::ClientReceiver::ClientReceiver ( )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ ClientReceiver() [2/6]

tcp::ClientReceiver::ClientReceiver ( SOCKET )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ ClientReceiver() [3/6]

tcp::ClientReceiver::ClientReceiver ( TcpMain * ,
SOCKET  )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ ClientReceiver() [4/6]

tcp::ClientReceiver::ClientReceiver ( TcpMain * ,
SOCKET ,
unsigned int  )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ ClientReceiver() [5/6]

tcp::ClientReceiver::ClientReceiver ( Client * pParent,
SOCKET Socket,
unsigned int uiDataSize )

Konstruktor mit Parameterübergabe.

Parameter
[in]pParentDas besitzende Elternobjekt.
[in]SocketDer Socket über den kommuniziert wird.
[in]uiDataSizeDie Paketgröße.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ ~ClientReceiver()

virtual tcp::ClientReceiver::~ClientReceiver ( )
virtual

Destruktor.

◆ ClientReceiver() [6/6]

tcp::ClientReceiver::ClientReceiver ( const ClientReceiver & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ acceptMessage()

virtual int tcp::ClientReceiver::acceptMessage ( AbstractMessage * pTcpMessage)
overrideprotectedvirtual

Leitet die übergebene Nachricht an seinen Client weiter, der die Nachricht nach der Verarbeitung auch löscht.
Der Client kann diese dann ggf. in Unterklassen weiter verarbeiten. Wenn die Bearbeitung in einer Unterklasse von ClientReceiver gewünscht wird, kann diese Methode auch überschrieben werden.

Parameter
[in]pTcpMessageDie empfangene Nachricht.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.
Achtung
Das übergebene Objekt darf von der aufrufenden Instanz nicht aus dem Speicher entfernt werden.
Siehe auch
Message

Implementiert tcp::DataReceiver.

◆ cancel()

virtual void tcp::ClientReceiver::cancel ( )
overridevirtual

Beendet den Thread.

Erneute Implementation von eut::RepeatingThread.

◆ connected()

bool tcp::ClientReceiver::connected ( ) const

Ist verbunden?

Rückgabe
Wenn true, hat der ClientReceiver einen SOCKET.

◆ generateNewTcpMessage() [1/2]

virtual void tcp::ClientReceiver::generateNewTcpMessage ( AbstractMessage *& prTcpMessage,
char * pszRawMsg,
unsigned int uiRawMsgSize,
unsigned int uiMessageID,
int iActionCode,
const std::string & rstrInfo ) const
overrideprotectedvirtual

Generiert eine Message aus übergebenen Parametern.

Parameter
[in,out]prTcpMessageZeiger auf neu generierte Message. Dieses Objekt übernimmt das entfernen der pszRawMsg aus dem Speicher.
[in]pszRawMsgDie Nachrichtendaten.
[in]uiRawMsgSizeDie Größe bzw. Länge der Nachrichtendaten.
[in]uiMessageIDEine eindeutige ID.
[in]iActionCodeDer ActionCode.
[in]rstrInfoEine zusätzliche Text-Info
Achtung
Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.
Ausnahmebehandlung
eut::ErrorNExceptionWenn aus den Parametern keine Message instantiiert werden kann, wird eine Exception geworfen.
Siehe auch
Message

Implementiert tcp::DataReceiver.

◆ generateNewTcpMessage() [2/2]

virtual void tcp::ClientReceiver::generateNewTcpMessage ( AbstractMessage *& prTcpMessage,
char * pszTransmitData,
unsigned int uiTransmitDataSize ) const
overrideprotectedvirtual

Generiert eine Message aus dem übergebenen Datenpuffer und dessen Größe.

Parameter
[in,out]prTcpMessageZeiger auf neu generierte Message. Dieses Objekt übernimmt das entfernen der pszTransmitData aus dem Speicher.
[in]pszTransmitDataDer Datenpuffer inkl. aller benötigten Informationen.
[in]uiTransmitDataSizeDie Größe bzw. Länge des zu sendenden Datenpuffers.
Achtung
Das gelieferte Objekt muss von der aufrufenden Instanz aus dem Speicher entfernt werden.
Ausnahmebehandlung
eut::ErrorNExceptionWenn aus den Daten keine Message instantiiert werden kann (weil z.B. der Header nicht stimmt), wird eine Exception geworfen.
Siehe auch
Message

Implementiert tcp::DataReceiver.

◆ operator=()

ClientReceiver & tcp::ClientReceiver::operator= ( const ClientReceiver & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ work()

virtual void tcp::ClientReceiver::work ( )
overrideprotectedvirtual

Nimmt von seinem Socket Streams entgegen (ist bis zu Empfang blockiert), macht aus den Daten eine Message welche in ClientReceiver::acceptMessage(AbstractMessage * pTcpMessage) weiter verarbeitet wird.

Implementiert eut::RepeatingThread.

Dokumentation der Datenelemente

◆ m_bHaveConnection

bool tcp::ClientReceiver::m_bHaveConnection
private

Hilfsvariable um zu kennzeichnen, ob schon Verbindung aufgebaut ist.


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