OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2013 Google, Inc. | 2 * Copyright 2013 Google, Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 | 8 |
9 #ifndef SkRTConf_DEFINED | 9 #ifndef SkRTConf_DEFINED |
10 #define SkRTConf_DEFINED | 10 #define SkRTConf_DEFINED |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
45 protected: | 45 protected: |
46 void doPrint(char *s) const; | 46 void doPrint(char *s) const; |
47 | 47 |
48 T fValue; | 48 T fValue; |
49 T fDefault; | 49 T fDefault; |
50 SkString fDescription; | 50 SkString fDescription; |
51 }; | 51 }; |
52 | 52 |
53 #ifdef SK_DEVELOPER | 53 #ifdef SK_DEVELOPER |
54 #define SK_CONF_DECLARE(confType, varName, confName, defaultValue, description) static SkRTConf<confType> varName(confName, defaultValue, description) | 54 #define SK_CONF_DECLARE(confType, varName, confName, defaultValue, description) static SkRTConf<confType> varName(confName, defaultValue, description) |
55 #define SK_CONF_SET(confname, value) skRTConfRegistry().set(confname, value) | 55 #define SK_CONF_SET(confname, value) \ |
reed1
2013/11/06 15:02:21
at some point we should clean-up the readability o
| |
56 skRTConfRegistry().set(confname, value, true) | |
57 /* SK_CONF_TRY_SET() is like SK_CONF_SET(), but doesn't complain if | |
58 confname can't be found. This is useful if the SK_CONF_DECLARE is | |
59 inside a source file whose linkage is dependent on the system. */ | |
60 #define SK_CONF_TRY_SET(confname, value) \ | |
61 skRTConfRegistry().set(confname, value, false) | |
56 #else | 62 #else |
57 #define SK_CONF_DECLARE(confType, varName, confName, defaultValue, description) static confType varName = defaultValue | 63 #define SK_CONF_DECLARE(confType, varName, confName, defaultValue, description) static confType varName = defaultValue |
58 #define SK_CONF_SET(confname, value) (void) confname, (void) value | 64 #define SK_CONF_SET(confname, value) (void) confname, (void) value |
65 #define SK_CONF_TRY_SET(confname, value) (void) confname, (void) value | |
59 #endif | 66 #endif |
60 | 67 |
61 /** \class SkRTConfRegistry | 68 /** \class SkRTConfRegistry |
62 A class that maintains a systemwide registry of all runtime configuration | 69 A class that maintains a systemwide registry of all runtime configuration |
63 parameters. Mainly used for printing them out and handling multiply-defined | 70 parameters. Mainly used for printing them out and handling multiply-defined |
64 knobs. | 71 knobs. |
65 */ | 72 */ |
66 | 73 |
67 class SkRTConfRegistry { | 74 class SkRTConfRegistry { |
68 public: | 75 public: |
69 SkRTConfRegistry(); | 76 SkRTConfRegistry(); |
70 void printAll(const char *fname = NULL) const; | 77 void printAll(const char *fname = NULL) const; |
71 void printNonDefault(const char *fname = NULL) const; | 78 void printNonDefault(const char *fname = NULL) const; |
72 const char *configFileLocation() const; | 79 const char *configFileLocation() const; |
73 void possiblyDumpFile() const; | 80 void possiblyDumpFile() const; |
74 void validate() const; | 81 void validate() const; |
75 template <typename T> void set(const char *confname, T value); | 82 template <typename T> void set(const char *confname, |
83 T value, | |
84 bool warnIfNotFound = true); | |
76 #ifdef SK_SUPPORT_UNITTEST | 85 #ifdef SK_SUPPORT_UNITTEST |
77 static void UnitTest(); | 86 static void UnitTest(); |
78 #endif | 87 #endif |
79 private: | 88 private: |
80 template<typename T> friend class SkRTConf; | 89 template<typename T> friend class SkRTConf; |
81 | 90 |
82 void registerConf(SkRTConfBase *conf); | 91 void registerConf(SkRTConfBase *conf); |
83 template <typename T> bool parse(const char *name, T* value); | 92 template <typename T> bool parse(const char *name, T* value); |
84 | 93 |
85 SkTDArray<SkString *> fConfigFileKeys, fConfigFileValues; | 94 SkTDArray<SkString *> fConfigFileKeys, fConfigFileValues; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
175 // static_cast here is okay because there's only one kind of child class. | 184 // static_cast here is okay because there's only one kind of child class. |
176 const SkRTConf<T> *child_pointer = static_cast<const SkRTConf<T> *>(conf); | 185 const SkRTConf<T> *child_pointer = static_cast<const SkRTConf<T> *>(conf); |
177 return child_pointer && | 186 return child_pointer && |
178 fName == child_pointer->fName && | 187 fName == child_pointer->fName && |
179 fDescription == child_pointer->fDescription && | 188 fDescription == child_pointer->fDescription && |
180 fValue == child_pointer->fValue && | 189 fValue == child_pointer->fValue && |
181 fDefault == child_pointer->fDefault; | 190 fDefault == child_pointer->fDefault; |
182 } | 191 } |
183 | 192 |
184 #endif | 193 #endif |
OLD | NEW |