20 #include "CrFwClientSocket.h" 23 #include "FwSmConstants.h" 24 #include "FwSmConfig.h" 26 #include "FwPrConfig.h" 28 #include "FwPrConstants.h" 30 #include "CrFwInStreamUserPar.h" 31 #include "CrFwCmpData.h" 44 #include <sys/types.h> 45 #include <sys/socket.h> 46 #include <netinet/in.h> 52 #define h_addr h_addr_list[0] 72 struct sockaddr_in serv_addr;
73 struct hostent* server;
88 sockfd = socket(AF_INET, SOCK_STREAM, 0);
90 perror(
"CrFwClientSocketInitAction, Socket Creation");
96 if ((flags = fcntl(
sockfd, F_GETFL, 0)) < 0) {
97 perror(
"CrFwClientSocketInitAction, Set socket attributes");
101 if (fcntl(
sockfd, F_SETFL, flags | O_NONBLOCK) < 0) {
102 perror(
"CrFwClientSocketInitAction, Set socket attributes");
108 if (server == NULL) {
109 perror(
"CrFwClientSocketInitAction, Get host name");
114 bzero((
char*) &serv_addr,
sizeof(serv_addr));
115 serv_addr.sin_family = AF_INET;
116 bcopy((
char*)server->h_addr,
117 (
char*)&serv_addr.sin_addr.s_addr,
118 (
long unsigned int)server->h_length);
119 serv_addr.sin_port = (
unsigned short int)htons(
portno);
121 if (connect(
sockfd,(
struct sockaddr*) &serv_addr,
sizeof(serv_addr)) < 0) {
122 if (errno != EINPROGRESS) {
123 perror(
"CrFwClientSocketInitAction, Connect Socket");
145 perror(
"CrFwClientSocketShutdownAction, Incorrect caller type");
191 perror(
"CrFwClientSocketConfigAction, Incorrect caller type");
213 printf(
"CrFwClientSocketPoll: ERROR reading from socket\n");
224 printf(
"CrFwClientSocketPoll: invalid packet received from socket\n");
237 if (src == pcktSrc) {
239 memcpy(pckt, readBuffer, readBuffer[0]);
262 printf(
"CrFwClientSocketIsPcktAvail: ERROR reading from socket\n");
274 printf(
"CrFwClientSocketIsPcktAvail: invalid packet received from socket\n");
287 n = write(
sockfd, pckt, len);
293 printf(
"CrFwClientSocketPcktHandover: error writing to socket\n");
void CrFwOutStreamDefConfigAction(FwPrDesc_t prDesc)
Default configuration action for an OutStream.
Type for the Framework Component Data (FCD).
void CrFwClientSocketConfigAction(FwPrDesc_t prDesc)
Configuration action for the client socket.
Interface through which framework components access the current time.
static unsigned char * readBuffer
The Read Buffer.
CrFwOutcome_t outcome
The outcome of an action or check executed by a state machine or by one of its procedures.
CrFwPckt_t CrFwClientSocketPcktCollect(CrFwDestSrc_t src)
Function implementing the Packet Collect Operation for the client socket.
static char * hostName
The host name.
CrFwDestSrc_t CrFwPcktGetSrc(CrFwPckt_t pckt)
Return the source of the command or report encapsulated in a packet.
void CrFwClientSocketPoll()
Poll the client socket to check whether a new packet has arrived.
unsigned char CrFwDestSrc_t
Type used for the command or report destination and source.
static int sockfd
The file descriptor for the socket.
CrFwPckt_t CrFwPcktMake(CrFwPcktLength_t pcktLength)
Make function for command or report packets.
#define CR_FW_INSTREAM_TYPE
Type identifier for the InStream components.
Interface for creating and accessing a report or command packet.
Definition of the InStream component.
int CrFwBool_t
Type used for boolean values (1 represent "true" and 0 represents "false").
Header file to define all invariant publicly available constants and types for the CORDET Framework...
static unsigned int pcktMaxLength
The maximum size of an incoming packet.
Interface for reporting an error detected by a framework component.
void CrFwInStreamDefInitAction(FwPrDesc_t prDesc)
Default initialization action for an InStream.
CrFwPcktLength_t CrFwPcktGetLength(CrFwPckt_t pckt)
Return the length (in number of bytes) of a packet.
CrFwBool_t CrFwClientSocketPcktHandover(CrFwPckt_t pckt)
Function implementing the hand-over operation for the client socket.
void CrFwClientSocketInitCheck(FwPrDesc_t prDesc)
Initialization check for the client socket.
static unsigned short portno
The port number.
unsigned short int CrFwPcktLength_t
Type for the packet length.
CrFwPcktLength_t CrFwPcktGetMaxLength()
Return the maximum length of a packet in number of bytes.
void CrFwClientSocketSetHost(char *name)
Set the host name of the server.
Definition of the utility functions for the CORDET Framework.
void CrFwOutStreamDefShutdownAction(FwSmDesc_t smDesc)
Default shutdown action for an OutStream.
void CrFwOutStreamDefInitAction(FwPrDesc_t prDesc)
Default initialization action for an OutStream.
void CrFwInStreamDefShutdownAction(FwSmDesc_t smDesc)
Default shutdown action for an InStream.
void CrFwClientSocketInitAction(FwPrDesc_t prDesc)
Initialization action for the client socket.
Definition of Base Component.
char * CrFwPckt_t
Type for packets (see CrFwPckt.h).
FwSmDesc_t CrFwInStreamMake(CrFwInstanceId_t i)
Factory function to retrieve the i-th InStream State Machine instance.
CrFwTypeId_t typeId
The type identifier of the framework component.
void CrFwInStreamDefConfigAction(FwPrDesc_t prDesc)
Default configuration action for an InStream.
void CrFwInStreamPcktAvail(FwSmDesc_t smDesc)
Query the middleware for available packets and collect them if they are available.
#define CR_FW_OUTSTREAM_TYPE
Type identifier for the OutStream components.
void CrFwClientSocketShutdownAction(FwSmDesc_t smDesc)
Shutdown action for the client socket.
void CrFwClientSocketSetPort(unsigned short n)
Set the port number for the socket.
CrFwBool_t CrFwClientSocketIsPcktAvail(CrFwDestSrc_t src)
Function implementing the Packet Available Check Operation for the client socket. ...