⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.h

📁 一个linux下的各种组播路由算法编程
💻 H
字号:
/*****************************************************************************
***                      Author: Hussein F. Salama                         ***
***                       Date: September 9, 1994                          ***
***                            File: event.h                               ***
***   C++ classes Event, EventListEntry and TheEventlist to be used in a   ***
***   discrete event simulator for computer networks                       ***  
*****************************************************************************/

#ifndef EVENT_H
#define EVENT_H

#include <stdlib.h>
#include "data.h"

#define top    0
#define bottom 1

class Event {   //An event to be executed by the discrete event simulator

   public:
        int     type;              //event type 
                                   // = 1 traffic arriving at a node from
                                   //     another node
                                   // = 2 traffic leaving the queue of a node 
                                   // = 3 traffic arriving at a node from a
                                   //     source
        double  time;              //time of event
        void *pointer;     //can point to the source, the node, or the adjacency
                           //list entry that owns that event.
        Data    *data;     // holds a pointer to the event data packet
        Event() {};
        Event(void *p, int n, double tt, Data *dd) {
               pointer = p; data = dd; time = tt; type = n;
        };
}; //Event

class EventListEntry { // An element of a linked list of event pointers

   public:
      Event *event;         //pointer to the event
      EventListEntry *next;   //pointer to the next event list entry
      EventListEntry *prev;   //pointer to the previous entry in the event list
      EventListEntry() { prev = next = NULL; event = new Event; }; 
      EventListEntry(void *ptr, int type, double t, Data *d) { 
          prev = next = NULL; event = new Event(ptr, type, t, d);
      }; 
      ~EventListEntry() { delete event; };
}; //EventListEntry

class TheEventList { // A linked list of event pointers

   private:
      EventListEntry *eventListHead, *eventListTail;  
               //pointers to the head and tail entries of the event list 

   public:
      TheEventList() { eventListHead = eventListTail = NULL; };
      EventListEntry *head() { return(eventListHead); };
      void head(EventListEntry *h) { eventListHead = h; };
      EventListEntry *tail() { return(eventListTail); };
      void tail(EventListEntry *t) { eventListTail = t; };
      void  deleteEvent();              //remove an event from the event list
      void addEventTop(EventListEntry *e); //add an event to the event list
                                           //search the list top down
      void addEventBottom(EventListEntry *e); //add an event to the event list
                                              //search the list bottom up
      void insertEvent(int mode,void *ptr, int n, double t, Data *d);
                                        //create an event and insert it in the
                                        //event list
      void clear();
  
}; //TheEventList

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -