#include <EtherAppSrv.h>
List of all members.
Detailed Description
Server-side process EtherAppCli.
Member Function Documentation
void EtherAppSrv::finish |
( |
| ) |
[protected, virtual] |
{
recordScalar("packets sent", packetsSent);
recordScalar("packets rcvd", packetsReceived);
recordScalar("end-to-end delay mean", eedStats.getMean());
recordScalar("end-to-end delay stddev", eedStats.getStddev());
recordScalar("end-to-end delay min", eedStats.getMin());
recordScalar("end-to-end delay max", eedStats.getMax());
}
void EtherAppSrv::handleMessage |
( |
cMessage * |
msg | ) |
[protected, virtual] |
{
EV << "Received packet `" << msg->getName() << "'\n";
packetsReceived++;
simtime_t lastEED = simTime() - msg->getCreationTime();
eedVector.record(lastEED);
eedStats.collect(lastEED);
EtherAppReq *req = check_and_cast<EtherAppReq *>(msg);
Ieee802Ctrl *ctrl = check_and_cast<Ieee802Ctrl *>(req->removeControlInfo());
MACAddress srcAddr = ctrl->getSrc();
long requestId = req->getRequestId();
long replyBytes = req->getResponseBytes();
char msgname[30];
strcpy(msgname,msg->getName());
delete msg;
delete ctrl;
int k = 0;
strcat(msgname,"-resp-");
char *s = msgname+strlen(msgname);
while (replyBytes>0)
{
int l = replyBytes>MAX_REPLY_CHUNK_SIZE ? MAX_REPLY_CHUNK_SIZE : replyBytes;
replyBytes -= l;
sprintf(s,"%d",k);
EV << "Generating packet `" << msgname << "'\n";
EtherAppResp *datapacket = new EtherAppResp(msgname, IEEE802CTRL_DATA);
datapacket->setRequestId(requestId);
datapacket->setByteLength(l);
sendPacket(datapacket, srcAddr);
packetsSent++;
k++;
}
}
void EtherAppSrv::initialize |
( |
| ) |
[protected, virtual] |
void EtherAppSrv::registerDSAP |
( |
int |
dsap | ) |
[protected] |
Referenced by initialize().
{
EV << getFullPath() << " registering DSAP " << dsap << "\n";
Ieee802Ctrl *etherctrl = new Ieee802Ctrl();
etherctrl->setDsap(dsap);
cMessage *msg = new cMessage("register_DSAP", IEEE802CTRL_REGISTER_DSAP);
msg->setControlInfo(etherctrl);
send(msg, "out");
}
void EtherAppSrv::sendPacket |
( |
cMessage * |
datapacket, |
|
|
const MACAddress & |
destAddr |
|
) |
| [protected] |
Referenced by handleMessage().
{
Ieee802Ctrl *etherctrl = new Ieee802Ctrl();
etherctrl->setSsap(localSAP);
etherctrl->setDsap(remoteSAP);
etherctrl->setDest(destAddr);
datapacket->setControlInfo(etherctrl);
send(datapacket, "out");
}
Member Data Documentation
The documentation for this class was generated from the following files: