diff --git a/src/Contact3.hpp b/src/Contact3.hpp new file mode 100644 index 0000000..97762b0 --- /dev/null +++ b/src/Contact3.hpp @@ -0,0 +1,43 @@ +#ifndef CONTACT3_hpp +#define CONTACT3_hpp +#include +#include +#include + +#include "Personne3.hpp" + +namespace reseau2{ + class Contact { + public: + virtual std::list getValue() = 0; + virtual void ajtContact(const Personne& p) = 0; + virtual ~Contact() = default; + }; + + class ListeContact : public Contact { + std::list personnes; + public: + std::list getValue() override; + void ajtContact(const Personne& p) override; + }; + + class LiaisonPersonne { + const Personne* envoyeur; + const Personne* destinataire; + public: + LiaisonPersonne(const Personne *envoyeur, const Personne *destinataire); + const Personne *getEnvoyeur() const; + const Personne *getDestinataire() const; + }; + + class Conteneur : public Contact { + Personne* pers; + std::list personnes; + public: + Conteneur(Personne *pers); + std::list getValue() override; + void ajtContact(const Personne& p) override; + }; +} + +#endif