OpenTTD
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes
TCPConnecter Class Reference

"Helper" class for creating TCP connections in a non-blocking manner More...

#include <tcp.h>

Inheritance diagram for TCPConnecter:
NetworkContentConnecter NetworkHTTPContentConnecter TCPClientConnecter TCPQueryConnecter

Public Member Functions

 TCPConnecter (const NetworkAddress &address)
 Create a new connecter for the given address. More...
 
virtual ~TCPConnecter ()
 Silence the warnings.
 
virtual void OnConnect (SOCKET s)
 Callback when the connection succeeded. More...
 
virtual void OnFailure ()
 Callback for when the connection attempt failed.
 

Static Public Member Functions

static void CheckCallbacks ()
 Check whether we need to call the callback, i.e. More...
 
static void KillAll ()
 Kill all connection attempts. More...
 

Protected Attributes

NetworkAddress address
 Address we're connecting to.
 

Private Member Functions

void Connect ()
 The actual connection function.
 

Static Private Member Functions

static void ThreadEntry (void *param)
 Entry point for the new threads. More...
 

Private Attributes

class ThreadObjectthread
 Thread used to create the TCP connection.
 
bool connected
 Whether we succeeded in making the connection.
 
bool aborted
 Whether we bailed out (i.e. connection making failed)
 
bool killed
 Whether we got killed.
 
SOCKET sock
 The socket we're connecting with.
 

Detailed Description

"Helper" class for creating TCP connections in a non-blocking manner

Definition at line 66 of file tcp.h.

Constructor & Destructor Documentation

◆ TCPConnecter()

TCPConnecter::TCPConnecter ( const NetworkAddress address)

Create a new connecter for the given address.

Parameters
addressthe (un)resolved address to connect to

Definition at line 30 of file tcp_connect.cpp.

References SmallVector< T, S >::Append(), Connect(), ThreadObject::New(), thread, and ThreadEntry().

Member Function Documentation

◆ CheckCallbacks()

void TCPConnecter::CheckCallbacks ( )
static

Check whether we need to call the callback, i.e.

whether we have connected or aborted and call the appropriate callback for that. It's done this way to ease on the locking that would otherwise be needed everywhere.

Definition at line 69 of file tcp_connect.cpp.

References aborted, SmallVector< T, S >::Begin(), connected, SmallVector< T, S >::End(), SmallVector< T, S >::Erase(), killed, OnConnect(), OnFailure(), and sock.

Referenced by NetworkBackgroundLoop().

◆ KillAll()

void TCPConnecter::KillAll ( )
static

Kill all connection attempts.

Definition at line 96 of file tcp_connect.cpp.

References SmallVector< T, S >::Begin(), and SmallVector< T, S >::End().

Referenced by NetworkClose().

◆ OnConnect()

virtual void TCPConnecter::OnConnect ( SOCKET  s)
inlinevirtual

Callback when the connection succeeded.

Parameters
sthe socket that we opened

Reimplemented in NetworkContentConnecter, TCPClientConnecter, TCPQueryConnecter, and NetworkHTTPContentConnecter.

Definition at line 91 of file tcp.h.

Referenced by CheckCallbacks().

◆ ThreadEntry()

void TCPConnecter::ThreadEntry ( void *  param)
staticprivate

Entry point for the new threads.

Parameters
paramthe TCPConnecter instance to call Connect on.

Definition at line 58 of file tcp_connect.cpp.

References Connect().

Referenced by TCPConnecter().


The documentation for this class was generated from the following files: