DummyPacketParser Class Reference

#include <DummyPacketParser.h>

Inheritance diagram for DummyPacketParser:

PacketParser List of all members.

Detailed Description

Implements a PacketParser.

As the name implies, You don't want to use this except for testing purposes


Public Member Functions

virtual char * encapsulatePayload (cMessage *msg, unsigned int *length)
 Convert a cMessage to a data block for sending it to the tun device.
virtual cMessage * decapsulatePayload (char *buf, unsigned int length)
 Parses a block of data received from the tun device.


Member Function Documentation

cMessage * DummyPacketParser::decapsulatePayload ( char *  buf,
unsigned int  length 
) [virtual]

Parses a block of data received from the tun device.

Pure virtual function, has to be implemented by inherited classes.

Parameters:
buf The data to be parsed
length The length of the data
Returns:
A cMessage containing the parsed data

Implements PacketParser.

00024 {
00025     ev << "Creating payload: len = " << length << ".\n";
00026     char* payload = new char[length+1];
00027     snprintf(payload, length, "%s", buf);
00028     cMessage *msg = new cMessage();
00029     msg->addPar("payload").setStringValue(payload);
00030     msg->setByteLength( length );
00031     char* name = new char[64];
00032     snprintf(name, 64, "%s", payload);
00033     msg->setName( name );
00034     delete payload;
00035     delete name;
00036     return msg;
00037 }

char * DummyPacketParser::encapsulatePayload ( cMessage *  msg,
unsigned int *  length 
) [virtual]

Convert a cMessage to a data block for sending it to the tun device.

Pure virtual function, has to be implemented by inherited classes.

Parameters:
msg A pointer to the message to be converted
length A pointer to an integer that will hold the length of the data
Returns:
A pointer to the converted data

Implements PacketParser.

00007 {
00008     const char* payload;
00009     int parnum;
00010     if( (parnum = msg->findPar("payload")) != -1 ) {
00011         payload = msg->par(parnum).stringValue();
00012     } else if (strlen(msg->name())) {
00013         payload = msg->name();
00014     } else {
00015         payload = "DummyParser DummyMessage";
00016     }
00017     *length = strlen(payload) + 1;
00018     char* buf = new char[*length];
00019     strcpy(buf, payload);
00020     return buf;
00021 }


The documentation for this class was generated from the following files:
Generated on Fri Dec 15 17:50:30 2006 for ITM OverSim by  doxygen 1.4.7