tobicore  7.0.0
 All Classes Functions Variables Typedefs Enumerator Friends Groups Pages
ICSetClass.hpp
1 /*
2  Copyright (C) 2009-2011 EPFL (Ecole Polytechnique Fédérale de Lausanne)
3  Michele Tavella <michele.tavella@epfl.ch>
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 #ifndef ICCLASSES_HPP
20 #define ICCLASSES_HPP
21 
22 #include <string>
23 #include "ICClass.hpp"
24 #include "ICMapClass.hpp"
25 
36 class ICSetClass {
37  public:
39  ICSetClass(void);
41  virtual ~ICSetClass(void);
43  virtual ICClass* Add(ICClass* pclass);
45  virtual ICClass* Remove(ICLabel lclass);
47  virtual ICClass* Remove(unsigned int lclass);
49  virtual ICClass* Remove(ICClass* pclass);
51  virtual ICClass* Get(ICLabel lclass) const;
53  virtual ICClass* Get(unsigned int lclass) const;
55  virtual ICClass* Get(ICClass* pclass) const;
57  virtual bool Has(ICLabel lclass) const;
59  virtual bool Has(unsigned int lclass) const;
61  virtual bool Has(ICClass* pclass) const;
63  virtual unsigned int Size(void) const;
65  virtual bool Empty(void) const;
67  virtual void Clear(void);
69  virtual void Destroy(void);
71  virtual ICSetClassIter Begin(void);
73  virtual ICSetClassIter End(void);
75  virtual ICSetClassConstIter Begin(void) const;
77  virtual ICSetClassConstIter End(void) const;
78  protected:
79  ICMapClass _map;
80 };
81 
82 #endif