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 47 48 49
| class Strock
{
public:
void addArticle(size_t colis, size_t boite, article const& art)
{
/* création d'un objet de stock temporaire */
StockItem temp(colis, boite, art);
/* on vérifie que l'objet de stock n'existe pas */
if(arts.find(temp)!=arts.end())
throw ArticleExists();
arts.insert(temp);
}
void removeArt(size_t colis, size_t boite)
{
StockItem temp(colis, boite);
/* cherchons l'objet de stock correspondant */
std::set<StockItem>::const_iterator it = arts.find(temp);
/* si on l'a trouvé, on le supprime */
if(it!=arts.end())
arts.erase(it);
}
/* récupérons l'article correspondant à un objet de stock */
article const& findArticle(size_t colis, size_t boite) const
{
StockItem temp(colis, boite);
/* cherchons l'objet de stock correspondant */
std::set<StockItem>::const_iterator it = arts.find(temp);
/* si on l'a trouvé, on renvoie l'article */
if(it!=arts.end())
return (*it).art;
/* sinon on lance une exception */
throw NotFound();
}
/* permet de savoir si un objet de stock existe */
bool exists(size_t colis, size_t boite) const
{
StockItem temp(colis, boite);
return arts.find(colis,boite)!=arts.end();
}
/* on peut vider le stock */
void clear()
{
arts.clear();
}
/* il y a peut etre des comportements sympa à rajouter ;) */
private:
/* un conteneur d'objet de stock */
std::set<StockItem> arts;
}; |
Partager