Protected Member Functions

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.

{
    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.

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.

{
    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".

Returns:
true

Reimplemented from RealworldConnector.

Definition at line 69 of file RealworldApp.h.

{return true;}


The documentation for this class was generated from the following files: