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

Der Server, welcher mit Client's kommuniziert. Mehr ...

#include <GloServer.h>

Klassendiagramm für glo::Server:

Klassen

class  TcpServerReceiverTransmitter
 Ein spezieller ServerReceiverTransmitter für den Server. Sein ServerReceiver ist vom abgeleiteten Typ TcpServerReceiver und er kann Aufträge versenden. Mehr ...
 

Öffentliche Methoden

 Server (const std::string &rsSchemaPath, const std::vector< std::string > &rKnownSchemesVector, unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, unsigned int uiDataSize, unsigned long ulMaxClients, int iSecTimeOut)
 
virtual ~Server ()
 
virtual void cancel () override
 
virtual tcp::Server::ServerReceiverTransmittergenerateNewServerReceiverTransmitter (tcp::Server *pParent, SOCKET nSocket, unsigned int uiDataSize) const override
 
void getAllClients (std::vector< ClientInfo > &rClientInfoVector) const
 
void getAllKnownBases (std::vector< std::string > &rKnownBasesVector) const
 
std::string getSchemaPath () const
 
ShowLevel getShowLevel ()
 
virtual void insertNewClient (Server::ServerReceiverTransmitter *pNewServerReceiverTransmitter) override
 
virtual void processClientMessage (tcp::AbstractMessage *pTcpMessage) override
 
virtual int removeClient (SOCKET nSocket) override
 
void setActionVisualiser (ManagerActionVisualiser *pActionVisualiser)
 
void setShowLevel (ShowLevel ulLevel)
 
- Öffentliche Methoden geerbt von tcp::Server
 Server (unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, unsigned int uiDataSize, unsigned long ulMaxClients, int iSecTimeOut)
 
int acceptClientMessage (AbstractMessage *pTcpMessage)
 
- Öffentliche Methoden geerbt von tcp::TcpMain
 TcpMain (unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, int iSecTimeOut)
 
 TcpMain (unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, unsigned int uiDataSize, int iSecTimeOut)
 
virtual ~TcpMain ()
 
unsigned int getDataSize () const
 
SOCKET getMainSocket () const
 
unsigned int getPortNum () const
 
virtual void setDataSize (unsigned int uiDataSize)
 
void setTimeOutSec (int iSecTimeOut)
 
int TimeOutSec ()
 
- Öffentliche Methoden geerbt von eut::RepeatingThread
 RepeatingThread ()
 
virtual ~RepeatingThread ()
 
virtual void finishBreak ()
 
int getBreakCounter ()
 
bool isInExclusiveAccess () const
 
void setExclusiveAccess ()
 
void signalInput ()
 
virtual int start ()
 
RepeatingThread::STATUS status () const
 
virtual void takeABreak ()
 
bool testCancel ()
 
void unsetExclusiveAccess ()
 
void waitForInput ()
 

Geschützte Methoden

 Server ()
 Dieser Konstruktor steht nicht zur Verfügung.
 
 Server (unsigned int, int, int, int, int)
 Dieser Konstruktor steht nicht zur Verfügung.
 
 Server (unsigned int, int, int, int, unsigned int, int)
 Dieser Konstruktor steht nicht zur Verfügung.
 
 Server (unsigned int, int, int, int, unsigned int, unsigned long, int)
 Dieser Konstruktor steht nicht zur Verfügung.
 
- Geschützte Methoden geerbt von tcp::Server
 Server ()
 
 Server (unsigned int, int, int, int, int)
 
 Server (unsigned int, int, int, int, unsigned int, int)
 
void clearClientMap ()
 
Server::ServerReceiverTransmittergetClient (SOCKET Socket)
 
unsigned long getMaxClients () const
 
virtual int send (Message *pTcpMessage) override
 
virtual int send (SOCKET ClientSocket, char *pszRawMsg, unsigned int uiRawMsgSize, unsigned int uiMessageID=0, int iActionCode=0, const std::string &rstrInfo="")
 
void setClientMapReceiverValid (bool bValid)
 
virtual void work () override
 
- Geschützte Methoden geerbt von tcp::TcpMain
 TcpMain ()
 
void setWSACleanup () const
 
int startWinsock () const
 
- Geschützte Methoden geerbt von eut::RepeatingThread
ORDER getOrder ()
 
STATUS getStatus ()
 
void setStatus (STATUS eStatus)
 
void threadWork ()
 
void toOrder (ORDER eOrder)
 

Private Methoden

 Server (const Server &)
 
Serveroperator= (const Server &)
 

Private Attribute

Managerm_pGloManager
 

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::Server
std::map< SOCKET, ServerReceiverTransmitter *, std::less< SOCKET > > m_ClientMap
 
ServerAcceptReceiverm_pAcceptReceiver
 
- Geschützte Attribute geerbt von tcp::TcpMain
int m_iAdressFamily
 
int m_iProtocol
 
int m_iSecTimeOut
 
int m_iSocketType
 
SOCKET m_MainSocket
 
unsigned int m_uiDataSize
 
unsigned int m_uiServerPort
 

Ausführliche Beschreibung

Der Server, welcher mit Client's kommuniziert.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ Server() [1/6]

glo::Server::Server ( )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ Server() [2/6]

glo::Server::Server ( unsigned int ,
int ,
int ,
int ,
int  )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ Server() [3/6]

glo::Server::Server ( unsigned int ,
int ,
int ,
int ,
unsigned int ,
int  )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ Server() [4/6]

glo::Server::Server ( unsigned int ,
int ,
int ,
int ,
unsigned int ,
unsigned long ,
int  )
protected

Dieser Konstruktor steht nicht zur Verfügung.

◆ Server() [5/6]

glo::Server::Server ( const std::string & rsSchemaPath,
const std::vector< std::string > & rKnownSchemesVector,
unsigned int uiPort,
int iAdressFamily,
int iSocketType,
int iProtocol,
unsigned int uiDataSize,
unsigned long ulMaxClients,
int iSecTimeOut )

Der Konstruktor startet den Server.

Parameter
[in]rsSchemaPathDas Verzeichnis in dem die Schemata für den Manager liegen.
[in]rKnownSchemesVectorDie bekannten Schematas für den Manager.
[in]uiPortDer Port des Servers.
[in]iAdressFamilyDie Socket-AdressFamily um einen Socket zu instanziieren (i.d.R. AF_INET).
[in]iSocketTypeDer Socket-Typ (i.d.R. SOCK_STREAM).
[in]iProtocolDas Socket-Protokol (i.d.R. 0).
[in]uiDataSizeDie Paketgröße.
[in]ulMaxClientsDie maximale Anzahl von Clients, die sich verbinden dürfen.
[in]iSecTimeOutDie Zeit bis ein Warten auf eine Verbindung bzw. warten auf Daten abgebrochen wird.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ ~Server()

virtual glo::Server::~Server ( )
virtual

Destruktor.

Erneute Implementation von tcp::Server.

◆ Server() [6/6]

glo::Server::Server ( const Server & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ cancel()

virtual void glo::Server::cancel ( )
overridevirtual

Wenn der Thread beendet wirde, wird diese virtuale Methode aufgerufen. Hier wird die MsgQueue aufgeräumt.

Zu beachten
Diese Methode gibt es nur, wenn nicht mit POSIX-Threads kompiliert (defined (__PTHREADS)).

Erneute Implementation von tcp::Server.

◆ generateNewServerReceiverTransmitter()

virtual tcp::Server::ServerReceiverTransmitter * glo::Server::generateNewServerReceiverTransmitter ( tcp::Server * pParent,
SOCKET nSocket,
unsigned int uiDataSize ) const
overridevirtual

Liefert hier einen TcpServerReceiverTransmitter mit tcp::Transmitter und TcpServerReceiver.

Parameter
[in]pParentServer oder Unterklasse.
[in]nSocketSocket des neuen Clients.
[in]uiDataSizeDie Packetgröße.
Rückgabe
Der TcpServerReceiverTransmitter.

Erneute Implementation von tcp::Server.

◆ getAllClients()

void glo::Server::getAllClients ( std::vector< ClientInfo > & rClientInfoVector) const

Liefert alle verbundenen Clients.

Parameter
[in,out]rClientInfoVectorDie angemeldeten Clients mit ihrer Kommunikator-ID und der Bezeichnung der geöffneten Datenbank.

◆ getAllKnownBases()

void glo::Server::getAllKnownBases ( std::vector< std::string > & rKnownBasesVector) const

Kopiert die Bezeichnungen aller bekannten Schemata bzw. Datenbanken, in den übergebenen Vector.

Parameter
[in,out]rKnownBasesVectorDie Bezeichnungen aller bekannten Schemata bzw. Datenbanken.

◆ getSchemaPath()

std::string glo::Server::getSchemaPath ( ) const

Liefert den Datei-Pfad wo die Schemadatei zu finden ist.

Rückgabe
Vollständige Pfadbezeichnung (z.B. "C:/Pfad/").

◆ getShowLevel()

ShowLevel glo::Server::getShowLevel ( )

Liefert den aktuellen Anzeigelevel im Manager.

Rückgabe
Der Anzeigelevel.
Siehe auch
Manager::ShowLevel()

◆ insertNewClient()

virtual void glo::Server::insertNewClient ( Server::ServerReceiverTransmitter * pNewServerReceiverTransmitter)
overridevirtual

Ruft zuerst die selbige Methode in der Oberklasse auf. Wenn erfolgreich, wird der Manager darüber informiert, dass sich ein neuer Client mit dem Server verbunden hat.

Parameter
[in]pNewServerReceiverTransmitterDer neue Client-Socket ist in diesem Objekt.

Erneute Implementation von tcp::Server.

◆ operator=()

Server & glo::Server::operator= ( const Server & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ processClientMessage()

virtual void glo::Server::processClientMessage ( tcp::AbstractMessage * pTcpMessage)
overridevirtual

Lässt den Manager anzeigen, was da für ein TCP-Nachricht eingegangen ist und gibt dann an Unterklassenmethode gleichen Namens ab.

Wenn eine ServerMessage übergeben wurde und deren ActionCode == ERR_WRONG_STREAMTYPE wird der Socket der ServerMessage geschlossen (siehe ServerMessage::closeSocket() ).

Parameter
[in]pTcpMessageDie zu verarbeitende Nachricht vom Client.

Erneute Implementation von tcp::Server.

◆ removeClient()

virtual int glo::Server::removeClient ( SOCKET nSocket)
overridevirtual

Ruft zuerst die selbige Methode in der Oberklasse auf. Wenn erfolgreich, wird der Manager darüber informiert, dass sich ein Client vom Server abgemeldet hat.

Parameter
[in]nSocketDer Socket, welcher geschlossen werden soll.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

Erneute Implementation von tcp::Server.

◆ setActionVisualiser()

void glo::Server::setActionVisualiser ( ManagerActionVisualiser * pActionVisualiser)

Setzt den Aktions-Visualisierer im Manager.

Parameter
[in]pActionVisualiserDer Aktions-Visualisierer.
Achtung
Der übergebene Aktions-Visualisierer geht 'in den Besitz' des Manager über, darf also von der aufrufenden Instanz nicht aus dem Speicher entfernt werden, das macht jetzt der Manager.
Siehe auch
Manager::setActionVisualiser (...)

◆ setShowLevel()

void glo::Server::setShowLevel ( ShowLevel ulLevel)

Setzt im Manager den Anzeigelevel.

Parameter
[in]ulLevelDer Anzeigelevel.
Siehe auch
Manager::setShowLevel(ShowLevel)

Dokumentation der Datenelemente

◆ m_pGloManager

Manager* glo::Server::m_pGloManager
private

Wird hier referenziert um einen Aktions-Visualisierer zu übergeben und die TCP-Aktionen anzeigen zu können (wenn denn so eingestellt).


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