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 #ifndef SK_COMMAND_LINE_FLAGS_H | 8 #ifndef SK_COMMAND_LINE_FLAGS_H |
9 #define SK_COMMAND_LINE_FLAGS_H | 9 #define SK_COMMAND_LINE_FLAGS_H |
10 | 10 |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 * --name=FALSE | 297 * --name=FALSE |
298 */ | 298 */ |
299 bool match(const char* string); | 299 bool match(const char* string); |
300 | 300 |
301 FlagTypes getFlagType() const { return fFlagType; } | 301 FlagTypes getFlagType() const { return fFlagType; } |
302 | 302 |
303 void resetStrings() { | 303 void resetStrings() { |
304 if (kString_FlagType == fFlagType) { | 304 if (kString_FlagType == fFlagType) { |
305 fStrings->reset(); | 305 fStrings->reset(); |
306 } else { | 306 } else { |
307 SkASSERT(!"Can only call resetStrings on kString_FlagType"); | 307 SkDEBUGFAIL("Can only call resetStrings on kString_FlagType"); |
308 } | 308 } |
309 } | 309 } |
310 | 310 |
311 void append(const char* string) { | 311 void append(const char* string) { |
312 if (kString_FlagType == fFlagType) { | 312 if (kString_FlagType == fFlagType) { |
313 fStrings->append(string); | 313 fStrings->append(string); |
314 } else { | 314 } else { |
315 SkASSERT(!"Can only append to kString_FlagType"); | 315 SkDEBUGFAIL("Can only append to kString_FlagType"); |
316 } | 316 } |
317 } | 317 } |
318 | 318 |
319 void setInt(int32_t value) { | 319 void setInt(int32_t value) { |
320 if (kInt_FlagType == fFlagType) { | 320 if (kInt_FlagType == fFlagType) { |
321 *fIntValue = value; | 321 *fIntValue = value; |
322 } else { | 322 } else { |
323 SkASSERT(!"Can only call setInt on kInt_FlagType"); | 323 SkDEBUGFAIL("Can only call setInt on kInt_FlagType"); |
324 } | 324 } |
325 } | 325 } |
326 | 326 |
327 void setDouble(double value) { | 327 void setDouble(double value) { |
328 if (kDouble_FlagType == fFlagType) { | 328 if (kDouble_FlagType == fFlagType) { |
329 *fDoubleValue = value; | 329 *fDoubleValue = value; |
330 } else { | 330 } else { |
331 SkASSERT(!"Can only call setDouble on kDouble_FlagType"); | 331 SkDEBUGFAIL("Can only call setDouble on kDouble_FlagType"); |
332 } | 332 } |
333 } | 333 } |
334 | 334 |
335 void setBool(bool value) { | 335 void setBool(bool value) { |
336 if (kBool_FlagType == fFlagType) { | 336 if (kBool_FlagType == fFlagType) { |
337 *fBoolValue = value; | 337 *fBoolValue = value; |
338 } else { | 338 } else { |
339 SkASSERT(!"Can only call setBool on kBool_FlagType"); | 339 SkDEBUGFAIL("Can only call setBool on kBool_FlagType"); |
340 } | 340 } |
341 } | 341 } |
342 | 342 |
343 SkFlagInfo* next() { return fNext; } | 343 SkFlagInfo* next() { return fNext; } |
344 | 344 |
345 const SkString& name() const { return fName; } | 345 const SkString& name() const { return fName; } |
346 | 346 |
347 const SkString& shortName() const { return fShortName; } | 347 const SkString& shortName() const { return fShortName; } |
348 | 348 |
349 const SkString& help() const { return fHelpString; } | 349 const SkString& help() const { return fHelpString; } |
350 | 350 |
351 SkString defaultValue() const { | 351 SkString defaultValue() const { |
352 SkString result; | 352 SkString result; |
353 switch (fFlagType) { | 353 switch (fFlagType) { |
354 case SkFlagInfo::kBool_FlagType: | 354 case SkFlagInfo::kBool_FlagType: |
355 result.printf("%s", fDefaultBool ? "true" : "false"); | 355 result.printf("%s", fDefaultBool ? "true" : "false"); |
356 break; | 356 break; |
357 case SkFlagInfo::kString_FlagType: | 357 case SkFlagInfo::kString_FlagType: |
358 return fDefaultString; | 358 return fDefaultString; |
359 case SkFlagInfo::kInt_FlagType: | 359 case SkFlagInfo::kInt_FlagType: |
360 result.printf("%i", fDefaultInt); | 360 result.printf("%i", fDefaultInt); |
361 break; | 361 break; |
362 case SkFlagInfo::kDouble_FlagType: | 362 case SkFlagInfo::kDouble_FlagType: |
363 result.printf("%2.2f", fDefaultDouble); | 363 result.printf("%2.2f", fDefaultDouble); |
364 break; | 364 break; |
365 default: | 365 default: |
366 SkASSERT(!"Invalid flag type"); | 366 SkDEBUGFAIL("Invalid flag type"); |
367 } | 367 } |
368 return result; | 368 return result; |
369 } | 369 } |
370 | 370 |
371 SkString typeAsString() const { | 371 SkString typeAsString() const { |
372 switch (fFlagType) { | 372 switch (fFlagType) { |
373 case SkFlagInfo::kBool_FlagType: | 373 case SkFlagInfo::kBool_FlagType: |
374 return SkString("bool"); | 374 return SkString("bool"); |
375 case SkFlagInfo::kString_FlagType: | 375 case SkFlagInfo::kString_FlagType: |
376 return SkString("string"); | 376 return SkString("string"); |
377 case SkFlagInfo::kInt_FlagType: | 377 case SkFlagInfo::kInt_FlagType: |
378 return SkString("int"); | 378 return SkString("int"); |
379 case SkFlagInfo::kDouble_FlagType: | 379 case SkFlagInfo::kDouble_FlagType: |
380 return SkString("double"); | 380 return SkString("double"); |
381 default: | 381 default: |
382 SkASSERT(!"Invalid flag type"); | 382 SkDEBUGFAIL("Invalid flag type"); |
383 return SkString(); | 383 return SkString(); |
384 } | 384 } |
385 } | 385 } |
386 | 386 |
387 private: | 387 private: |
388 SkFlagInfo(const char* name, const char* shortName, FlagTypes type, const ch
ar* helpString) | 388 SkFlagInfo(const char* name, const char* shortName, FlagTypes type, const ch
ar* helpString) |
389 : fName(name) | 389 : fName(name) |
390 , fShortName(shortName) | 390 , fShortName(shortName) |
391 , fFlagType(type) | 391 , fFlagType(type) |
392 , fHelpString(helpString) | 392 , fHelpString(helpString) |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 double* fDoubleValue; | 424 double* fDoubleValue; |
425 double fDefaultDouble; | 425 double fDefaultDouble; |
426 SkCommandLineFlags::StringArray* fStrings; | 426 SkCommandLineFlags::StringArray* fStrings; |
427 // Both for the help string and in case fStrings is empty. | 427 // Both for the help string and in case fStrings is empty. |
428 SkString fDefaultString; | 428 SkString fDefaultString; |
429 | 429 |
430 // In order to keep a linked list. | 430 // In order to keep a linked list. |
431 SkFlagInfo* fNext; | 431 SkFlagInfo* fNext; |
432 }; | 432 }; |
433 #endif // SK_COMMAND_LINE_FLAGS_H | 433 #endif // SK_COMMAND_LINE_FLAGS_H |
OLD | NEW |