Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
dart::Flag Class Reference

Public Types

enum  FlagType {
  kBoolean , kInteger , kUint64 , kString ,
  kFlagHandler , kOptionHandler , kNumFlagTypes
}
 

Public Member Functions

 Flag (const char *name, const char *comment, void *addr, FlagType type)
 
 Flag (const char *name, const char *comment, FlagHandler handler)
 
 Flag (const char *name, const char *comment, OptionHandler handler)
 
void Print ()
 
bool IsUnrecognized () const
 

Public Attributes

const char * name_
 
const char * comment_
 
Utils::CStringUniquePtr string_value_
 
union { 
 
   void *   addr_ 
 
   bool *   bool_ptr_ 
 
   int *   int_ptr_ 
 
   uint64_t *   uint64_ptr_ 
 
   charp *   charp_ptr_ 
 
   FlagHandler   flag_handler_ 
 
   OptionHandler   option_handler_ 
 
};  
 
const FlagType type_
 
bool changed_ = false
 

Detailed Description

Definition at line 82 of file flags.cc.

Member Enumeration Documentation

◆ FlagType

Enumerator
kBoolean 
kInteger 
kUint64 
kString 
kFlagHandler 
kOptionHandler 
kNumFlagTypes 

Definition at line 84 of file flags.cc.

84 {
87 kUint64,
88 kString,
92 };
@ kUint64
Definition flags.cc:87
@ kNumFlagTypes
Definition flags.cc:91
@ kBoolean
Definition flags.cc:85
@ kFlagHandler
Definition flags.cc:89
@ kOptionHandler
Definition flags.cc:90
@ kString
Definition flags.cc:88
@ kInteger
Definition flags.cc:86

Constructor & Destructor Documentation

◆ Flag() [1/3]

dart::Flag::Flag ( const char *  name,
const char *  comment,
void *  addr,
FlagType  type 
)
inline

Definition at line 94 of file flags.cc.

95 : name_(name), comment_(comment), addr_(addr), type_(type) {}
const char * name_
Definition flags.cc:149
void * addr_
Definition flags.cc:157
const FlagType type_
Definition flags.cc:165
const char * comment_
Definition flags.cc:150
const char *const name

◆ Flag() [2/3]

dart::Flag::Flag ( const char *  name,
const char *  comment,
FlagHandler  handler 
)
inline

Definition at line 96 of file flags.cc.

97 : name_(name),
98 comment_(comment),
99 flag_handler_(handler),
FlagHandler flag_handler_
Definition flags.cc:162

◆ Flag() [3/3]

dart::Flag::Flag ( const char *  name,
const char *  comment,
OptionHandler  handler 
)
inline

Definition at line 101 of file flags.cc.

102 : name_(name),
103 comment_(comment),
104 option_handler_(handler),
OptionHandler option_handler_
Definition flags.cc:163

Member Function Documentation

◆ IsUnrecognized()

bool dart::Flag::IsUnrecognized ( ) const
inline

Definition at line 145 of file flags.cc.

145 {
146 return (type_ == kBoolean) && (bool_ptr_ == nullptr);
147 }
bool * bool_ptr_
Definition flags.cc:158

◆ Print()

void dart::Flag::Print ( )
inline

Definition at line 107 of file flags.cc.

107 {
108 if (IsUnrecognized()) {
109 OS::PrintErr("%s: unrecognized\n", name_);
110 return;
111 }
112 switch (type_) {
113 case kBoolean: {
114 OS::Print("%s: %s (%s)\n", name_, *this->bool_ptr_ ? "true" : "false",
115 comment_);
116 break;
117 }
118 case kInteger: {
119 OS::Print("%s: %d (%s)\n", name_, *this->int_ptr_, comment_);
120 break;
121 }
122 case kUint64: {
123 OS::Print("%s: %" Pu64 " (%s)\n", name_, *this->uint64_ptr_, comment_);
124 break;
125 }
126 case kString: {
127 if (*this->charp_ptr_ != nullptr) {
128 OS::Print("%s: '%s' (%s)\n", name_, *this->charp_ptr_, comment_);
129 } else {
130 OS::Print("%s: (null) (%s)\n", name_, comment_);
131 }
132 break;
133 }
134 case kOptionHandler:
135 case kFlagHandler: {
136 OS::Print("%s: (%s)\n", name_, comment_);
137 break;
138 }
139 default:
140 UNREACHABLE();
141 break;
142 }
143 }
#define UNREACHABLE()
Definition assert.h:248
int * int_ptr_
Definition flags.cc:159
uint64_t * uint64_ptr_
Definition flags.cc:160
charp * charp_ptr_
Definition flags.cc:161
bool IsUnrecognized() const
Definition flags.cc:145
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static void Print(const char *format,...) PRINTF_ATTRIBUTE(1
#define Pu64
Definition globals.h:417

Member Data Documentation

◆ [union]

union { ... } dart::Flag

◆ addr_

void* dart::Flag::addr_

Definition at line 157 of file flags.cc.

◆ bool_ptr_

bool* dart::Flag::bool_ptr_

Definition at line 158 of file flags.cc.

◆ changed_

bool dart::Flag::changed_ = false

Definition at line 166 of file flags.cc.

◆ charp_ptr_

charp* dart::Flag::charp_ptr_

Definition at line 161 of file flags.cc.

◆ comment_

const char* dart::Flag::comment_

Definition at line 150 of file flags.cc.

◆ flag_handler_

FlagHandler dart::Flag::flag_handler_

Definition at line 162 of file flags.cc.

◆ int_ptr_

int* dart::Flag::int_ptr_

Definition at line 159 of file flags.cc.

◆ name_

const char* dart::Flag::name_

Definition at line 149 of file flags.cc.

◆ option_handler_

OptionHandler dart::Flag::option_handler_

Definition at line 163 of file flags.cc.

◆ string_value_

Utils::CStringUniquePtr dart::Flag::string_value_
Initial value:
=
static CStringUniquePtr CreateCStringUniquePtr(char *str)
Definition utils.cc:257

Definition at line 154 of file flags.cc.

◆ type_

const FlagType dart::Flag::type_

Definition at line 165 of file flags.cc.

◆ uint64_ptr_

uint64_t* dart::Flag::uint64_ptr_

Definition at line 160 of file flags.cc.


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