| 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 #include "SkRTConf.h" | 8 #include "SkRTConf.h" |
| 9 #include "SkOSFile.h" | 9 #include "SkOSFile.h" |
| 10 | 10 |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 | 265 |
| 266 // need to explicitly instantiate the parsing function for every config type we
might have... | 266 // need to explicitly instantiate the parsing function for every config type we
might have... |
| 267 | 267 |
| 268 template bool SkRTConfRegistry::parse(const char *name, bool *value); | 268 template bool SkRTConfRegistry::parse(const char *name, bool *value); |
| 269 template bool SkRTConfRegistry::parse(const char *name, int *value); | 269 template bool SkRTConfRegistry::parse(const char *name, int *value); |
| 270 template bool SkRTConfRegistry::parse(const char *name, unsigned int *value); | 270 template bool SkRTConfRegistry::parse(const char *name, unsigned int *value); |
| 271 template bool SkRTConfRegistry::parse(const char *name, float *value); | 271 template bool SkRTConfRegistry::parse(const char *name, float *value); |
| 272 template bool SkRTConfRegistry::parse(const char *name, double *value); | 272 template bool SkRTConfRegistry::parse(const char *name, double *value); |
| 273 template bool SkRTConfRegistry::parse(const char *name, const char **value); | 273 template bool SkRTConfRegistry::parse(const char *name, const char **value); |
| 274 | 274 |
| 275 template <typename T> void SkRTConfRegistry::set(const char *name, T value) { | 275 template <typename T> void SkRTConfRegistry::set(const char *name, |
| 276 | 276 T value, |
| 277 bool warnIfNotFound) { |
| 277 SkTDArray<SkRTConfBase *> *confArray; | 278 SkTDArray<SkRTConfBase *> *confArray; |
| 278 if (!fConfs.find(name, &confArray)) { | 279 if (!fConfs.find(name, &confArray)) { |
| 279 SkDebugf("WARNING: Attempting to set configuration value \"%s\", but I'v
e never heard of that.\n", name); | 280 if (warnIfNotFound) { |
| 281 SkDebugf("WARNING: Attempting to set configuration value \"%s\"," |
| 282 " but I've never heard of that.\n", name); |
| 283 } |
| 280 return; | 284 return; |
| 281 } | 285 } |
| 282 | 286 SkASSERT(confArray != NULL); |
| 283 for (SkRTConfBase **confBase = confArray->begin(); confBase != confArray->en
d(); confBase++) { | 287 for (SkRTConfBase **confBase = confArray->begin(); confBase != confArray->en
d(); confBase++) { |
| 284 // static_cast here is okay because there's only one kind of child class
. | 288 // static_cast here is okay because there's only one kind of child class
. |
| 285 SkRTConf<T> *concrete = static_cast<SkRTConf<T> *>(*confBase); | 289 SkRTConf<T> *concrete = static_cast<SkRTConf<T> *>(*confBase); |
| 286 | 290 |
| 287 if (concrete) { | 291 if (concrete) { |
| 288 concrete->set(value); | 292 concrete->set(value); |
| 289 } | 293 } |
| 290 } | 294 } |
| 291 } | 295 } |
| 292 | 296 |
| 293 template void SkRTConfRegistry::set(const char *name, bool value); | 297 template void SkRTConfRegistry::set(const char *name, bool value, bool); |
| 294 template void SkRTConfRegistry::set(const char *name, int value); | 298 template void SkRTConfRegistry::set(const char *name, int value, bool); |
| 295 template void SkRTConfRegistry::set(const char *name, unsigned int value); | 299 template void SkRTConfRegistry::set(const char *name, unsigned int value, bool); |
| 296 template void SkRTConfRegistry::set(const char *name, float value); | 300 template void SkRTConfRegistry::set(const char *name, float value, bool); |
| 297 template void SkRTConfRegistry::set(const char *name, double value); | 301 template void SkRTConfRegistry::set(const char *name, double value, bool); |
| 298 template void SkRTConfRegistry::set(const char *name, char * value); | 302 template void SkRTConfRegistry::set(const char *name, char * value, bool); |
| 299 | 303 |
| 300 SkRTConfRegistry &skRTConfRegistry() { | 304 SkRTConfRegistry &skRTConfRegistry() { |
| 301 static SkRTConfRegistry r; | 305 static SkRTConfRegistry r; |
| 302 return r; | 306 return r; |
| 303 } | 307 } |
| 304 | 308 |
| 305 | 309 |
| 306 #ifdef SK_SUPPORT_UNITTEST | 310 #ifdef SK_SUPPORT_UNITTEST |
| 307 | 311 |
| 308 #ifdef SK_BUILD_FOR_WIN32 | 312 #ifdef SK_BUILD_FOR_WIN32 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 321 sk_setenv("skia_nonexistent_item", "132"); | 325 sk_setenv("skia_nonexistent_item", "132"); |
| 322 int result = 0; | 326 int result = 0; |
| 323 registryWithoutContents.parse("nonexistent.item", &result); | 327 registryWithoutContents.parse("nonexistent.item", &result); |
| 324 SkASSERT(result == 132); | 328 SkASSERT(result == 132); |
| 325 } | 329 } |
| 326 | 330 |
| 327 SkRTConfRegistry::SkRTConfRegistry(bool) | 331 SkRTConfRegistry::SkRTConfRegistry(bool) |
| 328 : fConfs(100) { | 332 : fConfs(100) { |
| 329 } | 333 } |
| 330 #endif | 334 #endif |
| OLD | NEW |