RealworldApp.cc
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00025 #include "RealworldApp.h"
00026
00027
00028 Define_Module(RealworldApp);
00029
00030 char* RealworldApp::encapsulate(cPacket *msg,
00031 unsigned int* length,
00032 sockaddr** addr,
00033 socklen_t* addrlen)
00034 {
00035 unsigned int payloadLen;
00036 *addr = 0;
00037 *addrlen = 0;
00038
00039
00040 char* payload = parser->encapsulatePayload(msg, &payloadLen);
00041 if (!payload )
00042 return NULL;
00043
00044 if(payloadLen > 0xffff) {
00045 opp_error("RealworldApp: Encapsulating packet failed: packet too long");
00046 }
00047 *length = payloadLen;
00048
00049 return payload;
00050 }
00051
00052 cPacket* RealworldApp::decapsulate(char* buf,
00053 uint32_t length,
00054 sockaddr* addr,
00055 socklen_t addrlen)
00056 {
00057 cPacket* payload = 0;
00058
00059 payload = parser->decapsulatePayload( buf, length );
00060 if (!payload) {
00061 EV << "[RealworldApp::decapsulate()]\n"
00062 << " Parsing of Payload failed, dropping packet"
00063 << endl;
00064 }
00065
00066 delete buf;
00067 return payload;
00068 delete addr;
00069 }
00070