Moka controlers
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros
parameter.hh
Go to the documentation of this file.
1 /*
2  * lib-controler : Un contrôleur générique de scène 3D.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-controler
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 //******************************************************************************
25 #ifndef PARAMETER_HH
26 #define PARAMETER_HH
27 //******************************************************************************
30 //******************************************************************************
31 #include <iostream>
32 #include <list>
33 //******************************************************************************
45 //******************************************************************************
46 class CPrecompile;
47 
49 {
50 
51 public:
52 
54  CParameter(unsigned int ANbRef = 0);
55  CParameter(const CParameter & AParameter);
56  virtual ~CParameter();
57 
61  virtual CParameter * copy() const = 0;
63 
65  virtual void save(std::ostream &) = 0;
66  virtual void load(std::istream &) = 0;
67  virtual void reinit() = 0;
69 
71  virtual int getType() const = 0;
73 
75  void incNbRef(unsigned int AValue = 1);
76  void decNbRef(unsigned int AValue = 1);
77  unsigned int getNbRef() const;
79 
81  virtual void addPrecompileToUpdate (CPrecompile *);
82  virtual void removePrecompileToUpdate(CPrecompile *);
83 
84  virtual void putAllNeedToUpdate();
86 
87 private:
89  unsigned int FNbRef;
90 
92  std::list<CPrecompile *> FListPrecompile;
93 };
94 //******************************************************************************
95 #endif // PARAMETER_HH
96 //******************************************************************************