#include <DummyPacketParser.h>
Inheritance diagram for DummyPacketParser:
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. |
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.
buf | The data to be parsed | |
length | The length of the 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.
msg | A pointer to the message to be converted | |
length | A pointer to an integer that will hold the length of the 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 }