RNA/UI - Reset Settings to Default Values
[blender.git] / source / kernel / gen_system / SYS_SingletonSystem.h
1 /*
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21  * All rights reserved.
22  *
23  * The Original Code is: all of this file.
24  *
25  * Contributor(s): none yet.
26  *
27  * ***** END GPL LICENSE BLOCK *****
28  * Unique instance of system class for system specific information / access
29  * Used by SYS_System
30  */
31 #ifndef __SINGLETONSYSTEM_H
32 #define __SINGLETONSYSTEM_H
33
34 #include "GEN_Map.h"
35 #include "STR_HashedString.h"
36 #include "GEN_DataCache.h"
37
38 class SYS_SingletonSystem
39 {
40 public:
41         static          SYS_SingletonSystem*    Instance();
42         static          void    Destruct();
43
44         int             SYS_GetCommandLineInt(const char* paramname,int defaultvalue);
45         float           SYS_GetCommandLineFloat(const char* paramname,float defaultvalue);
46         const char*     SYS_GetCommandLineString(const char* paramname,const char* defaultvalue);
47
48         void            SYS_WriteCommandLineInt(const char* paramname,int value);
49         void            SYS_WriteCommandLineFloat(const char* paramname,float value);
50         void            SYS_WriteCommandLineString(const char* paramname,const char* value);
51
52         SYS_SingletonSystem();
53
54 private:
55         static SYS_SingletonSystem*     _instance;
56         GEN_Map<STR_HashedString,int>   m_int_commandlineparms;
57         GEN_Map<STR_HashedString,float> m_float_commandlineparms;
58         GEN_Map<STR_HashedString,STR_String>    m_string_commandlineparms;
59 };
60
61 #endif //__SINGLETONSYSTEM_H
62