00001 /***********************************************************************************/ 00002 /** \file Receiver.h 00003 ** \brief Header File zur Klasse Receiver 00004 ************************************************************************************* 00005 ** Autor: Christian Roesch 00006 ** 00007 ** Erstelldatum: 03.04.2002 00008 ** letzte Aenderung: 03.04.2002 00009 ************************************************************************************* 00010 ** Diese Klasse ist für das Empfangen und zusammensetzen der Nachrichten zuständig. 00011 ************************************************************************************/ 00012 00013 #ifndef _Receiver_H 00014 #define _Receiver_H 00015 00016 // includes 00017 #include <stdio.h> 00018 #include <conio.h> 00019 #include <vector> 00020 00021 #include "..\common\RNPacket.h" 00022 #include "..\common\RNSocket.h" 00023 #include "..\common\MessageGeneric.h" 00024 00025 //! Typdefinition für den Buffer der Fragmente 00026 typedef std::vector <MessageCharFragment*> FragVec; 00027 00028 // Klassen-Deklaration 00029 00030 /***********************************************************************************/ 00031 /** \brief Receiver ist der Empfänger 00032 ************************************************************************************* 00033 ** Diese Klasse empfängt die CharFragments und setzt sie wieder zu einem gesamten 00034 ** Text zusammen. Dieser wird dann natürlich ausgegeben. 00035 ************************************************************************************/ 00036 00037 class Receiver 00038 { 00039 public: 00040 Receiver(int iPort); 00041 ~Receiver(void); 00042 00043 void run(void); 00044 00045 protected: 00046 00047 private: 00048 00049 int findPacketNr(FragVec &pmcfvecSrc, DWORD dwPacketNr); 00050 void showFrags(FragVec &pmcfvecSrc, bool bShow=true); 00051 00052 static RNPRESULT StaticMessageHandler( void* pvoidUserContext, 00053 void* pvoidPacket, 00054 WORD wSize); 00055 00056 RNPRESULT MessageHandler( void* pvoidPacket, 00057 WORD wSize); 00058 00059 00060 //! Buffer für alle neu erhaltenen Textfragmente 00061 FragVec m_pmcfvecNew; 00062 00063 //! Buffer für die bereits geordneten Textfragmente 00064 FragVec m_pmcfvecOrdered; 00065 00066 //! Port, das für die Verbindung genutzt wird 00067 int m_iPort; 00068 }; 00069 00070 #endif//_Receiver_H 00071 00072 class Receiver; 00073 00074 00075 /************************************************************************************ 00076 ** Ende der Datei: Receiver.h 00077 ************************************************************************************/