UdpMasterListener Class Reference

Master UDP listener on the Server. More...

#include <UdpMasterListener.h>

Collaboration diagram for UdpMasterListener:

Collaboration graph
[legend]

List of all members.

Signals

void Listening ()
void ClientAddressSet ()

Public Member Functions

 UdpMasterListener (int server_port=gServerUdpPort)
virtual ~UdpMasterListener ()
void run ()
 Implements the Thread Loop. To start the thread, call start() ( DO NOT CALL run() ).
void stop ()
 Stops the execution of the Thread.
int releasePort (int id)

Private Slots

void testRecieve ()

Private Member Functions

void sendToPoolPrototype (int id)
int isNewAddress (uint32_t address, uint16_t port)
 Check if address is already handled, if not add to array.

Static Private Member Functions

static void bindUdpSocket (QUdpSocket &udpsocket, int port)
 Binds a QUdpSocket. It chooses the available (active) interface.

Private Attributes

QUdpSocket mUdpMasterSocket
 The UDP socket.
QHostAddress mPeerAddress
 The Peer Address.
JackTripWorkermJTWorker
 Class that will be used as prototype.
QThreadPool mThreadPool
 The Thread Pool.
int mServerPort
int mBasePort
uint32_t mActiveAddress [gMaxThreads][2]
 Active addresses pool numbers (32 bits IPv4 numbers).
QHash< uint32_t, uint16_tmActiveAddresPortPair
volatile bool mStopped
 Boolean stop the execution of the thread.
int mTotalRunningThreads
 Number of Threads running in the pool.


Detailed Description

Master UDP listener on the Server.

This creates a server that will listen on the well know port (the server port) and will spawn JackTrip threads into the Thread pool. Clients request a connection.


Constructor & Destructor Documentation

UdpMasterListener::UdpMasterListener ( int  server_port = gServerUdpPort  ) 

UdpMasterListener::~UdpMasterListener (  )  [virtual]


Member Function Documentation

void UdpMasterListener::run (  ) 

Implements the Thread Loop. To start the thread, call start() ( DO NOT CALL run() ).

Todo:
Get number of channels in the client from header

Todo:
Add the port number in the comparison

void UdpMasterListener::stop (  )  [inline]

Stops the execution of the Thread.

int UdpMasterListener::releasePort ( int  id  ) 

Todo:
Check if we really need to return an argument here

void UdpMasterListener::testRecieve (  )  [inline, private, slot]

void UdpMasterListener::Listening (  )  [signal]

void UdpMasterListener::ClientAddressSet (  )  [signal]

void UdpMasterListener::bindUdpSocket ( QUdpSocket &  udpsocket,
int  port 
) [static, private]

Binds a QUdpSocket. It chooses the available (active) interface.

Parameters:
udpsocket a QUdpSocket
port Port number

void UdpMasterListener::sendToPoolPrototype ( int  id  )  [private]

Todo:
temp default to 1 channel

int UdpMasterListener::isNewAddress ( uint32_t  address,
uint16_t  port 
) [private]

Check if address is already handled, if not add to array.

Parameters:
IPv4 address as a number
Returns:
-1 if address is busy, id number if not

Todo:
Add the port number in the comparison, i.e., compart IP/port pair


Member Data Documentation

The UDP socket.

QHostAddress UdpMasterListener::mPeerAddress [private]

The Peer Address.

Class that will be used as prototype.

QThreadPool UdpMasterListener::mThreadPool [private]

The Thread Pool.

Active addresses pool numbers (32 bits IPv4 numbers).

volatile bool UdpMasterListener::mStopped [private]

Boolean stop the execution of the thread.

Number of Threads running in the pool.


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