#include "PrintServer.h"
#include <iostream>

// costruttore simile a quello di Node
// assegna al PrintServer un tipo di default
// Il PS di default gestisce documenti ASCII
PrintServer:: PrintServer( const Address& addr, PacketFactory* pf)
: Node(addr, pf), current_type_("ASCII")
{
   cout << "Costruisco un Printserver " << current_type_ << endl;
}

//costruttore con il quele e' possibile assegnare
// esplicitamente il tipo al PrintServer
PrintServer:: PrintServer( const Address& addr, PacketFactory* pf, const PrintServerType& type)
: Node(addr, pf), current_type_( type )
{
   cout << "Costruisco un Printserver " << current_type_ << endl;
}

PrintServer:: ~PrintServer()
{
   cout << "Distruggo un PrintServer " << current_type_ << endl;
}

void PrintServer:: handle( const Packet& packet ) const
{
   // un nodo generico ed un PrintSrver differiscono
   // per il metodo di inoltro, il PS puo' anche essere
   // di tipi diversi( ASCII, Postscipt, ecc ).
   // questo e' solo un esempio, una PS potrebbe
   // trattare il pacchetto in modo piu' specifico.
   cout << "Pacchetto " << packet.getInfo()
        << " processato da " << getAddress() 
	<< ": Printserver " << current_type_ << endl;
}