INET Framework for OMNeT++/OMNEST
inet::TcpServerThreadBase Class Referenceabstract

Abstract base class for server processes to be used with TcpServerHostApp. More...

#include <TcpServerHostApp.h>

Inheritance diagram for inet::TcpServerThreadBase:
inet::TcpSocket::ICallback inet::TcpEchoAppThread inet::TcpGenericServerThread inet::TcpSinkAppThread

Public Member Functions

 TcpServerThreadBase ()
 
virtual ~TcpServerThreadBase ()
 
virtual void init (TcpServerHostApp *hostmodule, TcpSocket *socket)
 
virtual TcpSocketgetSocket ()
 
virtual TcpServerHostAppgetHostModule ()
 
virtual void established ()=0
 Called when connection is established. More...
 
virtual void dataArrived (Packet *msg, bool urgent)=0
 
virtual void timerExpired (cMessage *timer)=0
 
virtual void peerClosed ()
 
virtual void failure (int code)
 
virtual void statusArrived (TcpStatusInfo *status)
 
- Public Member Functions inherited from inet::TcpSocket::ICallback
virtual ~ICallback ()
 

Protected Member Functions

virtual void socketDataArrived (TcpSocket *socket, Packet *msg, bool urgent) override
 Notifies about data arrival, packet ownership is transferred to the callee. More...
 
virtual void socketAvailable (TcpSocket *socket, TcpAvailableInfo *availableInfo) override
 
virtual void socketEstablished (TcpSocket *socket) override
 
virtual void socketPeerClosed (TcpSocket *socket) override
 
virtual void socketClosed (TcpSocket *socket) override
 
virtual void socketFailure (TcpSocket *socket, int code) override
 
virtual void socketStatusArrived (TcpSocket *socket, TcpStatusInfo *status) override
 
virtual void socketDeleted (TcpSocket *socket) override
 
virtual void refreshDisplay () const override
 

Protected Attributes

TcpServerHostApphostmod
 
TcpSocketsock
 

Detailed Description

Abstract base class for server processes to be used with TcpServerHostApp.

Subclasses need to be registered using the Register_Class() macro.

See also
TcpServerHostApp

Constructor & Destructor Documentation

◆ TcpServerThreadBase()

inet::TcpServerThreadBase::TcpServerThreadBase ( )
inline
86 { sock = nullptr; hostmod = nullptr; }

◆ ~TcpServerThreadBase()

virtual inet::TcpServerThreadBase::~TcpServerThreadBase ( )
inlinevirtual
87 { delete sock; }

Member Function Documentation

◆ dataArrived()

virtual void inet::TcpServerThreadBase::dataArrived ( Packet msg,
bool  urgent 
)
pure virtual

◆ established()

virtual void inet::TcpServerThreadBase::established ( )
pure virtual

Called when connection is established.

To be redefined.

Implemented in inet::TcpEchoAppThread, inet::TcpSinkAppThread, and inet::TcpGenericServerThread.

◆ failure()

virtual void inet::TcpServerThreadBase::failure ( int  code)
inlinevirtual
127 { hostmod->removeThread(this); }

◆ getHostModule()

virtual TcpServerHostApp* inet::TcpServerThreadBase::getHostModule ( )
inlinevirtual
100 { return hostmod; }

◆ getSocket()

virtual TcpSocket* inet::TcpServerThreadBase::getSocket ( )
inlinevirtual

◆ init()

virtual void inet::TcpServerThreadBase::init ( TcpServerHostApp hostmodule,
TcpSocket socket 
)
inlinevirtual

◆ peerClosed()

virtual void inet::TcpServerThreadBase::peerClosed ( )
inlinevirtual
121 { getSocket()->close(); }

◆ refreshDisplay()

void inet::TcpServerThreadBase::refreshDisplay ( ) const
overrideprotectedvirtual

Reimplemented in inet::TcpSinkAppThread.

156 {
157  getDisplayString().setTagArg("t", 0, TcpSocket::stateName(sock->getState()));
158 }

◆ socketAvailable()

virtual void inet::TcpServerThreadBase::socketAvailable ( TcpSocket socket,
TcpAvailableInfo availableInfo 
)
inlineoverrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

74 { socket->accept(availableInfo->getNewSocketId()); }

◆ socketClosed()

virtual void inet::TcpServerThreadBase::socketClosed ( TcpSocket socket)
inlineoverrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

77 { hostmod->threadClosed(this); }

◆ socketDataArrived()

virtual void inet::TcpServerThreadBase::socketDataArrived ( TcpSocket socket,
Packet packet,
bool  urgent 
)
inlineoverrideprotectedvirtual

Notifies about data arrival, packet ownership is transferred to the callee.

Implements inet::TcpSocket::ICallback.

73 { dataArrived(msg, urgent); }

◆ socketDeleted()

void inet::TcpServerThreadBase::socketDeleted ( TcpSocket socket)
overrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

148 {
149  if (socket == sock) {
150  sock = nullptr;
151  hostmod->socketDeleted(socket);
152  }
153 }

◆ socketEstablished()

virtual void inet::TcpServerThreadBase::socketEstablished ( TcpSocket socket)
inlineoverrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

75 { established(); }

◆ socketFailure()

virtual void inet::TcpServerThreadBase::socketFailure ( TcpSocket socket,
int  code 
)
inlineoverrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

78 { failure(code); }

◆ socketPeerClosed()

virtual void inet::TcpServerThreadBase::socketPeerClosed ( TcpSocket socket)
inlineoverrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

76 { peerClosed(); }

◆ socketStatusArrived()

virtual void inet::TcpServerThreadBase::socketStatusArrived ( TcpSocket socket,
TcpStatusInfo status 
)
inlineoverrideprotectedvirtual

Implements inet::TcpSocket::ICallback.

79 { statusArrived(status); }

◆ statusArrived()

virtual void inet::TcpServerThreadBase::statusArrived ( TcpStatusInfo status)
inlinevirtual
134 {}

◆ timerExpired()

virtual void inet::TcpServerThreadBase::timerExpired ( cMessage *  timer)
pure virtual

Member Data Documentation

◆ hostmod

TcpServerHostApp* inet::TcpServerThreadBase::hostmod
protected

Referenced by socketDeleted().

◆ sock


The documentation for this class was generated from the following files:
inet::TcpServerThreadBase::sock
TcpSocket * sock
Definition: TcpServerHostApp.h:70
inet::TcpServerThreadBase::failure
virtual void failure(int code)
Definition: TcpServerHostApp.h:127
inet::TcpSocket::stateName
static const char * stateName(TcpSocket::State state)
Returns name of socket state code returned by getState().
Definition: TcpSocket.cc:372
inet::TcpServerHostApp::threadClosed
virtual void threadClosed(TcpServerThreadBase *thread)
Definition: TcpServerHostApp.cc:135
inet::TcpServerThreadBase::dataArrived
virtual void dataArrived(Packet *msg, bool urgent)=0
inet::TcpServerHostApp::socketDeleted
virtual void socketDeleted(TcpSocket *socket) override
Definition: TcpServerHostApp.h:46
inet::TcpSocket::getState
TcpSocket::State getState() const
Returns the socket state, one of NOT_BOUND, CLOSED, LISTENING, CONNECTING, CONNECTED,...
Definition: TcpSocket.h:218
inet::TcpServerThreadBase::peerClosed
virtual void peerClosed()
Definition: TcpServerHostApp.h:121
inet::TcpServerHostApp::removeThread
virtual void removeThread(TcpServerThreadBase *thread)
Definition: TcpServerHostApp.cc:125
inet::TcpServerThreadBase::getSocket
virtual TcpSocket * getSocket()
Definition: TcpServerHostApp.h:95
inet::TcpServerThreadBase::established
virtual void established()=0
Called when connection is established.
inet::TcpServerThreadBase::statusArrived
virtual void statusArrived(TcpStatusInfo *status)
Definition: TcpServerHostApp.h:134
inet::TcpServerThreadBase::hostmod
TcpServerHostApp * hostmod
Definition: TcpServerHostApp.h:69
inet::TcpSocket::close
void close() override
Closes the local end of the connection.
Definition: TcpSocket.cc:161