Home | History | Annotate | Download | only in src

Lines Matching defs:FlagValue

36 // * FlagRegistry owns CommandLineFlags owns FlagValue.
48 // FlagValue holds the current value of a flag. It's
49 // pseudo-templatized: every operation on a FlagValue is typed. It
55 // flag. It has a FlagValue for the flag's current value, but also
64 // A given FlagValue is owned by exactly one CommandLineFlag. A given
66 // has a lock; any operation that writes to a FlagValue or
81 // the innards of the FlagValue->CommandLineFlag->FlagRegistry class
184 // FlagValue
191 class FlagValue {
205 FlagValue(FlagType* valbuf, bool transfer_ownership_of_value);
206 ~FlagValue();
218 friend bool TryParseLocked(const CommandLineFlag*, FlagValue*,
225 bool Equal(const FlagValue& x) const;
226 FlagValue* New() const; // creates a new one with default value
227 void CopyFrom(const FlagValue& x);
239 FlagValue(const FlagValue&); // no copying!
240 void operator=(const FlagValue&);
246 struct FlagValue::FlagValueTraits<type> { \
263 // This could be a templated method of FlagValue, but doing so adds to the
270 FlagValue::FlagValue(FlagType* valbuf,
277 FlagValue::~FlagValue() {
292 bool FlagValue::ParseFrom(const char* value) {
370 string FlagValue::ToString() const {
398 bool FlagValue::Validate(const char* flagname,
428 const char* FlagValue::TypeName() const {
445 bool FlagValueFlagValue& x) const {
460 FlagValue* FlagValue::New() const {
462 case FV_BOOL: return new FlagValue(new bool(false), true);
463 case FV_INT32: return new FlagValue(new int32(0), true);
464 case FV_UINT32: return new FlagValue(new uint32(0), true);
465 case FV_INT64: return new FlagValue(new int64(0), true);
466 case FV_UINT64: return new FlagValue(new uint64(0), true);
467 case FV_DOUBLE: return new FlagValue(new double(0.0), true);
468 case FV_STRING: return new FlagValue(new string, true);
473 void FlagValue::CopyFrom(const FlagValue& x) {
502 FlagValue* current_val, FlagValue* default_val);
515 FlagValue::ValueType Type() const { return defvalue_->Type(); }
520 bool Validate(const FlagValue& value) const;
540 FlagValue* defvalue_; // Default value for flag
541 FlagValue* current_; // Current value for flag
554 FlagValue* current_val, FlagValue* default_val)
606 bool CommandLineFlag::Validate(const FlagValue& value) const {
800 if (flag->Type() != FlagValue::FV_BOOL) {
814 if (*v == NULL && flag->Type() == FlagValue::FV_BOOL) {
821 bool TryParseLocked(const CommandLineFlag* flag, FlagValue* flag_value,
824 FlagValue* tentative_value = flag_value->New();
1071 assert(flag->Type() != FlagValue::FV_BOOL);
1096 && flag->Type() == FlagValue::FV_STRING
1371 FlagValue ifv(new T, true);
1426 FlagValue* current,
1427 FlagValue* defvalue) {
1443 FlagValue* const current = new FlagValue(current_storage, false);
1444 FlagValue* const defvalue = new FlagValue(defvalue_storage, false);
1846 // We use an FlagValue to make the parsing easy.