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;}
1.7.1