#ifndef __NODE_H
#define __NODE_H

// Antonio Ospite 408/244

#include "Address.h"
#include "Packet.h"
#include "PacketFactory.h"

class Node
{
public:
   Node(const Address&,PacketFactory* );
   virtual ~Node();
   const Address& getAddress() const;
   bool accept( const Packet& ) const;
   Packet *send();
   void suspend(const int );

private:
   virtual void handle( const Packet& ) const; 
   Address node_address_;
   PacketFactory* pf_;
   int suspended_for_;
};   
    

#endif