Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Static Public Member Functions | Friends | List of all members
dart::Flags Class Reference

#include <flags.h>

Static Public Member Functions

static bool Register_bool (bool *addr, const char *name, bool default_value, const char *comment)
 
static int Register_int (int *addr, const char *name, int default_value, const char *comment)
 
static uint64_t Register_uint64_t (uint64_t *addr, const char *name, uint64_t default_value, const char *comment)
 
static const char * Register_charp (charp *addr, const char *name, const char *default_value, const char *comment)
 
static bool RegisterFlagHandler (FlagHandler handler, const char *name, const char *comment)
 
static bool RegisterOptionHandler (OptionHandler handler, const char *name, const char *comment)
 
static char * ProcessCommandLineFlags (int argc, const char **argv)
 
static FlagLookup (const char *name)
 
static bool IsSet (const char *name)
 
static bool Initialized ()
 
static void Cleanup ()
 
static void PrintJSON (JSONStream *js)
 
static bool SetFlag (const char *name, const char *value, const char **error)
 

Friends

void Dart_TestParseFlags ()
 

Detailed Description

Definition at line 36 of file flags.h.

Member Function Documentation

◆ Cleanup()

void dart::Flags::Cleanup ( )
static

Definition at line 185 of file flags.cc.

185 {
186 ASSERT(initialized_);
187 initialized_ = false;
188}
#define ASSERT(E)

◆ Initialized()

static bool dart::Flags::Initialized ( )
inlinestatic

Definition at line 72 of file flags.h.

72{ return initialized_; }

◆ IsSet()

bool dart::Flags::IsSet ( const char *  name)
static

Definition at line 179 of file flags.cc.

179 {
180 Flag* flag = Lookup(name);
181 return (flag != nullptr) && (flag->type_ == Flag::kBoolean) &&
182 (flag->bool_ptr_ != nullptr) && (*flag->bool_ptr_ == true);
183}
@ kBoolean
Definition flags.cc:85
static Flag * Lookup(const char *name)
Definition flags.cc:169
FlutterSemanticsFlag flag
const char *const name

◆ Lookup()

Flag * dart::Flags::Lookup ( const char *  name)
static

Definition at line 169 of file flags.cc.

169 {
170 for (intptr_t i = 0; i < num_flags_; i++) {
171 Flag* flag = flags_[i];
172 if (strcmp(flag->name_, name) == 0) {
173 return flag;
174 }
175 }
176 return nullptr;
177}

◆ PrintJSON()

void dart::Flags::PrintJSON ( JSONStream js)
static

Definition at line 554 of file flags.cc.

554 {
555 JSONObject jsobj(js);
556 jsobj.AddProperty("type", "FlagList");
557 JSONArray jsarr(&jsobj, "flags");
558 for (intptr_t i = 0; i < num_flags_; ++i) {
559 PrintFlagToJSONArray(&jsarr, flags_[i]);
560 }
561}

◆ ProcessCommandLineFlags()

char * dart::Flags::ProcessCommandLineFlags ( int  argc,
const char **  argv 
)
static

Definition at line 433 of file flags.cc.

434 {
435 if (initialized_) {
436 return Utils::StrDup("Flags already set");
437 }
438
439 qsort(flags_, num_flags_, sizeof flags_[0], CompareFlagNames);
440
441 const char* const kPrefix = "--";
442 const intptr_t kPrefixLen = strlen(kPrefix);
443
444 int i = 0;
445 while ((i < number_of_vm_flags) &&
446 IsValidFlag(vm_flags[i], kPrefix, kPrefixLen)) {
447 const char* option = vm_flags[i] + kPrefixLen;
448 Parse(option);
449 i++;
450 }
451
452 if (!FLAG_ignore_unrecognized_flags) {
453 int unrecognized_count = 0;
454 TextBuffer error(64);
455 for (intptr_t j = 0; j < num_flags_; j++) {
456 Flag* flag = flags_[j];
457 if (flag->IsUnrecognized()) {
458 if (unrecognized_count == 0) {
459 error.Printf("Unrecognized flags: %s", flag->name_);
460 } else {
461 error.Printf(", %s", flag->name_);
462 }
463 unrecognized_count++;
464 }
465 }
466 if (unrecognized_count > 0) {
467 return error.Steal();
468 }
469 }
470 if (FLAG_print_flags) {
471 PrintFlags();
472 }
473
474 initialized_ = true;
475 return nullptr;
476}
static char * StrDup(const char *s)
const uint8_t uint32_t uint32_t GError ** error
static bool IsValidFlag(const char *name, const char *prefix, intptr_t prefix_length)
Definition flags.cc:419

◆ Register_bool()

bool dart::Flags::Register_bool ( bool *  addr,
const char *  name,
bool  default_value,
const char *  comment 
)
static

Definition at line 210 of file flags.cc.

213 {
214 Flag* flag = Lookup(name);
215 if (flag != nullptr) {
216 ASSERT(flag->IsUnrecognized());
217 return default_value;
218 }
219 flag = new Flag(name, comment, addr, Flag::kBoolean);
220 AddFlag(flag);
221 return default_value;
222}

◆ Register_charp()

const char * dart::Flags::Register_charp ( charp addr,
const char *  name,
const char *  default_value,
const char *  comment 
)
static

Definition at line 248 of file flags.cc.

251 {
252 ASSERT(Lookup(name) == nullptr);
253 Flag* flag = new Flag(name, comment, addr, Flag::kString);
254 AddFlag(flag);
255 return default_value;
256}
@ kString
Definition flags.cc:88

◆ Register_int()

int dart::Flags::Register_int ( int addr,
const char *  name,
int  default_value,
const char *  comment 
)
static

Definition at line 224 of file flags.cc.

227 {
228 ASSERT(Lookup(name) == nullptr);
229
230 Flag* flag = new Flag(name, comment, addr, Flag::kInteger);
231 AddFlag(flag);
232
233 return default_value;
234}
@ kInteger
Definition flags.cc:86

◆ Register_uint64_t()

uint64_t dart::Flags::Register_uint64_t ( uint64_t *  addr,
const char *  name,
uint64_t  default_value,
const char *  comment 
)
static

Definition at line 236 of file flags.cc.

239 {
240 ASSERT(Lookup(name) == nullptr);
241
242 Flag* flag = new Flag(name, comment, addr, Flag::kUint64);
243 AddFlag(flag);
244
245 return default_value;
246}
@ kUint64
Definition flags.cc:87

◆ RegisterFlagHandler()

bool dart::Flags::RegisterFlagHandler ( FlagHandler  handler,
const char *  name,
const char *  comment 
)
static

Definition at line 258 of file flags.cc.

260 {
261 ASSERT(Lookup(name) == nullptr);
262 Flag* flag = new Flag(name, comment, handler);
263 AddFlag(flag);
264 return false;
265}

◆ RegisterOptionHandler()

bool dart::Flags::RegisterOptionHandler ( OptionHandler  handler,
const char *  name,
const char *  comment 
)
static

Definition at line 267 of file flags.cc.

269 {
270 ASSERT(Lookup(name) == nullptr);
271 Flag* flag = new Flag(name, comment, handler);
272 AddFlag(flag);
273 return false;
274}

◆ SetFlag()

bool dart::Flags::SetFlag ( const char *  name,
const char *  value,
const char **  error 
)
static

Definition at line 478 of file flags.cc.

478 {
479 Flag* flag = Lookup(name);
480 if (flag == nullptr) {
481 *error = "Cannot set flag: flag not found";
482 return false;
483 }
484 if (!SetFlagFromString(flag, value)) {
485 *error = "Cannot set flag: invalid value";
486 return false;
487 }
488 return true;
489}

Friends And Related Symbol Documentation

◆ Dart_TestParseFlags

void Dart_TestParseFlags ( )
friend

The documentation for this class was generated from the following files: