// gen1.cpp code // This file implements functionality for the generator module #include class Generator: public cSimpleModule { // This is a macro; it expands to constructor definition. Module_Class_Members(Generator, cSimpleModule, 8192); // 8192 - estimated stack size needs // The following redefined virtual function implements the // module functionality. virtual void activity(); }; // The module class needs to be registered with OMNeT++ Define_Module(Generator); void Generator::activity() { while(1) { cMessage *msg = receive(); if (msg != NULL) { double temp; double p1 = par("prob"); // create message cMessage *msg = new cMessage("packet"); temp = (double)rand()/RAND_MAX; if (temp < p1) { ev << "Generate data packet\n"; msg -> setKind(1); } else { ev << "Generate voice packet\n"; msg -> setKind(0); send(msg, "out"); wait(10); } } else { wait(10); } } }