CORDET Framework - C2 Implementation
|
Implementation of interface to control the client socket. More...
Go to the source code of this file.
Macros | |
#define | h_addr h_addr_list[0] /* for backward compatibility */ |
Functions | |
void | CrFwClientSocketInitAction (FwPrDesc_t prDesc) |
Initialization action for the client socket. More... | |
void | CrFwClientSocketShutdownAction (FwSmDesc_t smDesc) |
Shutdown action for the client socket. More... | |
void | CrFwClientSocketInitCheck (FwPrDesc_t prDesc) |
Initialization check for the client socket. More... | |
void | CrFwClientSocketConfigAction (FwPrDesc_t prDesc) |
Configuration action for the client socket. More... | |
void | CrFwClientSocketPoll () |
Poll the client socket to check whether a new packet has arrived. More... | |
CrFwPckt_t | CrFwClientSocketPcktCollect (CrFwDestSrc_t src) |
Function implementing the Packet Collect Operation for the client socket. More... | |
CrFwBool_t | CrFwClientSocketIsPcktAvail (CrFwDestSrc_t src) |
Function implementing the Packet Available Check Operation for the client socket. More... | |
CrFwBool_t | CrFwClientSocketPcktHandover (CrFwPckt_t pckt) |
Function implementing the hand-over operation for the client socket. More... | |
void | CrFwClientSocketSetPort (unsigned short n) |
Set the port number for the socket. More... | |
void | CrFwClientSocketSetHost (char *name) |
Set the host name of the server. More... | |
Variables | |
static unsigned short | portno = 0 |
The port number. | |
static char * | hostName = NULL |
The host name. | |
static int | sockfd = 0 |
The file descriptor for the socket. | |
static unsigned int | pcktMaxLength |
The maximum size of an incoming packet. | |
static unsigned char * | readBuffer |
The Read Buffer. | |
Implementation of interface to control the client socket.
This file is part of the CORDET Framework.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
For information on alternative licensing, please contact P&P Software GmbH.
Definition in file tests/CrFwClientSocket.c.
void CrFwClientSocketConfigAction | ( | FwPrDesc_t | prDesc | ) |
Configuration action for the client socket.
This action clears the Read Buffer and executes the Configuration Action of the base InStream (function CrFwInStreamDefConfigAction
)
prDesc | the configuration procedure descriptor. |
Definition at line 180 of file tests/CrFwClientSocket.c.
void CrFwClientSocketInitAction | ( | FwPrDesc_t | prDesc | ) |
Initialization action for the client socket.
If the client socket has already been initialized, this function calls the Initialization Action of the base InStream/OutStream and then returns. If the client socket has not yet been initialized, this action:
prDesc | the initialization procedure descriptor. |
Definition at line 70 of file tests/CrFwClientSocket.c.
void CrFwClientSocketInitCheck | ( | FwPrDesc_t | prDesc | ) |
Initialization check for the client socket.
The check is successful if: the maximum length of a packet (as retrieved from CrFwPcktGetMaxLength
) is smaller than 256; and the port number and server host name have been set.
prDesc | the initialization procedure descriptor. |
Definition at line 157 of file tests/CrFwClientSocket.c.
CrFwBool_t CrFwClientSocketIsPcktAvail | ( | CrFwDestSrc_t | pcktSrc | ) |
Function implementing the Packet Available Check Operation for the client socket.
This function implements the following logic:
packetSource
, the function returns 1.packetSource
, the function performs a non-blocking read on the socket.packetSource
, the function returns 0.packetSource
, the function stores it in the Read Buffer and then returns 1.pcktSrc | the source associated to the InStream |
Definition at line 249 of file tests/CrFwClientSocket.c.
CrFwPckt_t CrFwClientSocketPcktCollect | ( | CrFwDestSrc_t | pcktSrc | ) |
Function implementing the Packet Collect Operation for the client socket.
If the packet in the Read Buffer has a source attribute equal to pcktSrc
, this function:
CrFwPcktMake
If the Read Buffer holds a packet from a source other then pcktSrc
, this function returns NULL. Note that the logic of the client socket module guarantees that the Read Buffer will always be full when this function is called.
pcktSrc | the source associated to the InStream |
Definition at line 231 of file tests/CrFwClientSocket.c.
CrFwBool_t CrFwClientSocketPcktHandover | ( | CrFwPckt_t | pckt | ) |
Function implementing the hand-over operation for the client socket.
This function performs a non-blocking write on the socket and, if it succeeds, it returns 1; otherwise, it returns 0.
pckt | the packet to be written to the socket |
Definition at line 283 of file tests/CrFwClientSocket.c.
void CrFwClientSocketPoll | ( | ) |
Poll the client socket to check whether a new packet has arrived.
This function should be called periodically by an external scheduler. If there is a pending packet (i.e. of the Read Buffer is full), its source is determined, and then function CrFwInStreamPcktAvail
is called on the InStream associated to that packet source. If there is no pending packet (i.e. if the Read Buffer is empty), a non-blocking read is performed on the socket to check whether a packet is available at the socket. If a packet is available, it is placed into the Read Buffer, its source is determined, and then function CrFwInStreamPcktAvail
is called on the InStream associated to that packet source. In a realistic implementation, the source of the incoming packet would be determined from the packet itself (which holds its source in its header). This implementation is intended for use with the test cases of CrFwSocketTestCase.h
and then the incoming packets are routed to the 6-th InStream.
Definition at line 197 of file tests/CrFwClientSocket.c.
void CrFwClientSocketSetHost | ( | char * | name | ) |
Set the host name of the server.
If a local socket is being created, the host name should be set to "localhost".
name | the host number. |
Definition at line 306 of file tests/CrFwClientSocket.c.
void CrFwClientSocketSetPort | ( | unsigned short | n | ) |
Set the port number for the socket.
The port number must be an integer greater than 2000.
n | the port number. |
Definition at line 301 of file tests/CrFwClientSocket.c.
void CrFwClientSocketShutdownAction | ( | FwSmDesc_t | smDesc | ) |
Shutdown action for the client socket.
If the client socket has already been shut down, this function calls the Shutdown Action of the base InStream/OutStream and then returns. If the client socket has not yet been shut down, this action executes the Shutdown Action of the base InStream/OutStream, releases the Read Buffer, and closes the socket.
smDesc | the InStream or OutStream State Machine descriptor. |
Definition at line 137 of file tests/CrFwClientSocket.c.