src/node/drop-tail-queue.h
changeset 4198 7e0ff1be867a
parent 3525 4b8ef7da0ac3
equal deleted inserted replaced
4197:3aca059abe63 4198:7e0ff1be867a
    42    */
    42    */
    43   DropTailQueue ();
    43   DropTailQueue ();
    44 
    44 
    45   virtual ~DropTailQueue();
    45   virtual ~DropTailQueue();
    46 
    46 
       
    47   /**
       
    48    * Enumeration of the modes supported in the class.
       
    49    *
       
    50    */
       
    51   enum Mode {
       
    52     ILLEGAL,     /**< Mode not set */
       
    53     PACKETS,     /**< Use number of packets for maximum queue size */
       
    54     BYTES,       /**< Use number of bytes for maximum queue size */  
       
    55   };
       
    56 
       
    57   /**
       
    58    * Set the operating mode of this device.
       
    59    *
       
    60    * \param mode The operating mode of this device.
       
    61    *
       
    62    */
       
    63   void SetMode (DropTailQueue::Mode mode);
       
    64 
       
    65   /**
       
    66    * Get the encapsulation mode of this device.
       
    67    *
       
    68    * \returns The encapsulation mode of this device.
       
    69    */
       
    70   DropTailQueue::Mode  GetMode (void);
       
    71 
    47 private:
    72 private:
    48   virtual bool DoEnqueue (Ptr<Packet> p);
    73   virtual bool DoEnqueue (Ptr<Packet> p);
    49   virtual Ptr<Packet> DoDequeue (void);
    74   virtual Ptr<Packet> DoDequeue (void);
    50   virtual Ptr<const Packet> DoPeek (void) const;
    75   virtual Ptr<const Packet> DoPeek (void) const;
    51 
    76 
    52 private:
       
    53   std::queue<Ptr<Packet> > m_packets;
    77   std::queue<Ptr<Packet> > m_packets;
    54   uint32_t m_maxPackets;
    78   uint32_t m_maxPackets;
       
    79   uint32_t m_maxBytes;
       
    80   uint32_t m_bytesInQueue;
       
    81   Mode     m_mode;
    55 };
    82 };
    56 
    83 
    57 }; // namespace ns3
    84 }; // namespace ns3
    58 
    85 
    59 #endif /* DROPTAIL_H */
    86 #endif /* DROPTAIL_H */