1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| class MailManager
{
public:
/* le type ID est une manière pour toi d'identifier n'importe quel
* mail de manière unique... à toi de déterminer le meilleur moyen
* d'y arriver ;)
*/
void addMail(Id const & id, Mail const & mail)
{
/* je me base sur l'idée qu'on a une std::map, mais, à la
* réflexion, un boost multi_index serait très certainement plus
* intéressant :D
*/
items_.insert(std::make_pair(id,mail));
}
std::map<Id,Mail>::const_iterator begin() const
{
returns items_.begin();
}
std::map<Id,Mail>::const_iterator end() const
{
returns items_.end();
}
void remove(Id const & id)
{
items_.erase(items_.find(id));
}
void remove(std::map<Id,Mail>::const_iterator &)
{
items_.erase(it);
}
std::map<Id,Mail>::const_iterator find(Id const & id) const
{
return items_.find(id);
}
void clear()
{
items_.clear();
}
/* il faudra sans doute prévoir d'autres manières de trouver
* des mails : sur base de l'expéditeur, du récepteur, du message,
* du titre ou que sais-je :D
*/
private:
std::map<Id, Mail> items_;
}; |
Partager