abseil-cpp/absl/flags/internal/commandlineflag.h
Go to the documentation of this file.
1 //
2 // Copyright 2019 The Abseil Authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // https://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef ABSL_FLAGS_INTERNAL_COMMANDLINEFLAG_H_
17 #define ABSL_FLAGS_INTERNAL_COMMANDLINEFLAG_H_
18 
19 #include "absl/base/config.h"
20 #include "absl/base/internal/fast_type_id.h"
21 
22 namespace absl {
24 namespace flags_internal {
25 
26 // An alias for flag fast type id. This value identifies the flag value type
27 // similarly to typeid(T), without relying on RTTI being available. In most
28 // cases this id is enough to uniquely identify the flag's value type. In a few
29 // cases we'll have to resort to using actual RTTI implementation if it is
30 // available.
32 
33 // Options that control SetCommandLineOptionWithMode.
35  // update the flag's value unconditionally (can call this multiple times).
37  // update the flag's value, but *only if* it has not yet been updated
38  // with SET_FLAGS_VALUE, SET_FLAG_IF_DEFAULT, or "FLAGS_xxx = nondef".
40  // set the flag's default value to this. If the flag has not been updated
41  // yet (via SET_FLAGS_VALUE, SET_FLAG_IF_DEFAULT, or "FLAGS_xxx = nondef")
42  // change the flag's current value to the new default value as well.
44 };
45 
46 // Options that control ParseFrom: Source of a value.
48  // Flag is being set by value specified on a command line.
50  // Flag is being set by value specified in the code.
52 };
53 
54 // Handle to FlagState objects. Specific flag state objects will restore state
55 // of a flag produced this flag state from method CommandLineFlag::SaveState().
57  public:
58  virtual ~FlagStateInterface();
59 
60  // Restores the flag originated this object to the saved state.
61  virtual void Restore() const = 0;
62 };
63 
64 } // namespace flags_internal
66 } // namespace absl
67 
68 #endif // ABSL_FLAGS_INTERNAL_COMMANDLINEFLAG_H_
absl::flags_internal::FlagSettingMode
FlagSettingMode
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:34
absl::flags_internal::kProgrammaticChange
@ kProgrammaticChange
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:51
absl::flags_internal::FlagFastTypeId
absl::base_internal::FastTypeIdType FlagFastTypeId
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:31
absl::flags_internal::FlagStateInterface::Restore
virtual void Restore() const =0
absl::flags_internal::SET_FLAG_IF_DEFAULT
@ SET_FLAG_IF_DEFAULT
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:39
ABSL_NAMESPACE_END
#define ABSL_NAMESPACE_END
Definition: third_party/abseil-cpp/absl/base/config.h:171
ABSL_NAMESPACE_BEGIN
#define ABSL_NAMESPACE_BEGIN
Definition: third_party/abseil-cpp/absl/base/config.h:170
absl::flags_internal::FlagStateInterface
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:56
absl::base_internal::FastTypeIdType
const void * FastTypeIdType
Definition: abseil-cpp/absl/base/internal/fast_type_id.h:39
absl::flags_internal::FlagStateInterface::~FlagStateInterface
virtual ~FlagStateInterface()
Definition: abseil-cpp/absl/flags/internal/commandlineflag.cc:22
absl::flags_internal::SET_FLAGS_VALUE
@ SET_FLAGS_VALUE
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:36
absl::flags_internal::ValueSource
ValueSource
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:47
absl::flags_internal::SET_FLAGS_DEFAULT
@ SET_FLAGS_DEFAULT
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:43
absl::flags_internal::kCommandLine
@ kCommandLine
Definition: abseil-cpp/absl/flags/internal/commandlineflag.h:49
absl
Definition: abseil-cpp/absl/algorithm/algorithm.h:31


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:59