Applicaton that communicates with a realword application via a socket. More...
#include <RealworldApp.h>
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". |
Applicaton that communicates with a realword application via a socket.
Definition at line 33 of file RealworldApp.h.
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.
buf | A pointer to the data to be parsed | |
length | The lenght of the buffer in bytes | |
addr | Ignored (deleted) | |
addrlen | Ignored |
Implements RealworldConnector.
Definition at line 52 of file RealworldApp.cc.
{ cPacket* payload = 0; // "Decode" packet: 16bit payload length|payload payload = parser->decapsulatePayload( buf, length ); if (!payload) { EV << "[RealworldApp::decapsulate()]\n" << " Parsing of Payload failed, dropping packet" << endl; } delete buf; return payload; delete addr; // FIXME: unreachable }
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.
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) |
Implements RealworldConnector.
Definition at line 30 of file RealworldApp.cc.
{ unsigned int payloadLen; *addr = 0; *addrlen = 0; // parse payload char* payload = parser->encapsulatePayload(msg, &payloadLen); if (!payload ) return NULL; if(payloadLen > 0xffff) { opp_error("RealworldApp: Encapsulating packet failed: packet too long"); } *length = payloadLen; return payload; }
virtual bool RealworldApp::isApp | ( | ) | [inline, protected, virtual] |
The Connector connects to an application, so this method to returns "true".
Reimplemented from RealworldConnector.
Definition at line 69 of file RealworldApp.h.
{return true;}