#ifndef __LAN_H
#define __LAN_H

// Antonio Ospite 408/244

#include <vector>
#include <queue>

class Node;
class Packet;

class Lan
{
   public:
      Lan( int );
      Lan(const vector < Node *>&  );
      Lan( int, const vector < Node *>&  );
      ~Lan();
      void addNode( Node* );
      int bandWidth() const;
      bool enqueue(const Packet* );
      void doWork();
      
   private:
      bool deliverPacket();  
      vector< Node * > nodesVect_;
      queue< const Packet * > packetQueue_;
      int max_bandwidth_; // numero massimo di pacchetti
      int used_bandwidth_;
};

#endif