//------------------------------------------------------------- // file: fifo1.h // (part of Fifo1 - an OMNeT++ demo simulation) //------------------------------------------------------------- #ifndef __FIFO_H #define __FIFO_H #include // FF2AbstractFifo : abstract base class for single-server queues class FF2AbstractFifo : public cSimpleModule { public: Module_Class_Members(FF2AbstractFifo,cSimpleModule,16384); cMessage *msgServiced1; cMessage *msgServiced2; cMessage *endServiceMsg1; cMessage *endServiceMsg2; cMessage *recordHistogram; cQueue queue; cLongHistogram hist; virtual void activity(); virtual void finish(); // hook functions to (re)define behaviour virtual void arrival(cMessage *msg) {} virtual simtime_t startService(cMessage *msg) = 0; virtual void endService(cMessage *msg) = 0; }; // FF2PacketFifo : double-server queue with given service time class FF2PacketFifo : public FF2AbstractFifo { public: Module_Class_Members(FF2PacketFifo,FF2AbstractFifo,16384); virtual simtime_t startService(cMessage *msg); virtual void endService(cMessage *msg); }; #endif