RealworldApp Class Reference

Applicaton that communicates with a realword application via a socket. More...

#include <RealworldApp.h>

Inheritance diagram for RealworldApp:
RealworldConnector

List of all members.

Protected Member Functions

virtual char * encapsulate (cPacket *msg, unsigned int *length, sockaddr **addr, socklen_t *addrlen)
 Converts an IP datagram to a data block for sending it to the (realworld) network.
virtual cPacket * decapsulate (char *buf, uint32_t length, sockaddr *addr, socklen_t addrlen)
 Parses data received from the (realworld) network and converts it into a cMessage.
virtual bool isApp ()
 The Connector connects to an application, so this method to returns "true".

Detailed Description

Applicaton that communicates with a realword application via a socket.

Definition at line 33 of file RealworldApp.h.


Member Function Documentation

cPacket * RealworldApp::decapsulate ( char *  buf,
uint32_t  length,
sockaddr *  addr,
socklen_t  addrlen 
) [protected, virtual]

Parses data received from the (realworld) network and converts it into a cMessage.

Parameters:
buf A pointer to the data to be parsed
length The lenght of the buffer in bytes
addr Ignored (deleted)
addrlen Ignored
Returns:
The parsed message

Implements RealworldConnector.

Definition at line 52 of file RealworldApp.cc.

00056 {
00057     cPacket* payload = 0;
00058     // "Decode" packet: 16bit payload length|payload
00059     payload = parser->decapsulatePayload( buf, length );
00060     if (!payload) {
00061         EV << "[RealworldApp::decapsulate()]\n"
00062            << "    Parsing of Payload failed, dropping packet"
00063            << endl;
00064     }
00065 
00066     delete buf;
00067     return payload;
00068     delete addr; // FIXME: unreachable
00069 }

char * RealworldApp::encapsulate ( cPacket *  msg,
unsigned int *  length,
sockaddr **  addr,
socklen_t *  addrlen 
) [protected, virtual]

Converts an IP datagram to a data block for sending it to the (realworld) network.

Parameters:
msg A pointer to the message to be converted
length A pointer to an int that will hold the length of the converted data
addr Ignored (set to 0)
addrlen Ignored (set to 0)
Returns:
A pointer to the converted data

Implements RealworldConnector.

Definition at line 30 of file RealworldApp.cc.

00034 {
00035     unsigned int payloadLen;
00036     *addr = 0;
00037     *addrlen = 0;
00038 
00039     // parse payload
00040     char* payload = parser->encapsulatePayload(msg, &payloadLen);
00041     if (!payload )
00042         return NULL;
00043 
00044     if(payloadLen > 0xffff) {
00045         opp_error("RealworldApp: Encapsulating packet failed: packet too long");
00046     }
00047     *length = payloadLen;
00048 
00049     return payload;
00050 }

virtual bool RealworldApp::isApp (  )  [inline, protected, virtual]

The Connector connects to an application, so this method to returns "true".

Returns:
true

Reimplemented from RealworldConnector.

Definition at line 69 of file RealworldApp.h.

00069 {return true;}


The documentation for this class was generated from the following files:
Generated on Wed May 26 16:21:19 2010 for OverSim by  doxygen 1.6.3