#ifndef __PACKETFACTORY_H
#define __PACKETFACTORY_H

// Antonio Ospite 408/244

#include "Address.h"
#include "Info.h"
#include "Packet.h"
#include <vector>

// uso combinato del sigleton pattern
// e del factory pattern
// in questo caso l'uso del sigleton pattern
// fa in modo che la rete locale non
// possa essere partizionata.

class PacketFactory
{
public:
   static PacketFactory* instance();
   void add(const Address&);
   Packet* create(const Address&);

protected:
   PacketFactory();

private:
   static PacketFactory* pfinstance_;
   static int countnum_;
   vector< Address > addr_vect_;

};

#endif