grpc
third_party
abseil-cpp
absl
flags
internal
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
{
23
ABSL_NAMESPACE_BEGIN
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.
31
using
FlagFastTypeId
=
absl::base_internal::FastTypeIdType
;
32
33
// Options that control SetCommandLineOptionWithMode.
34
enum
FlagSettingMode
{
35
// update the flag's value unconditionally (can call this multiple times).
36
SET_FLAGS_VALUE
,
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".
39
SET_FLAG_IF_DEFAULT
,
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.
43
SET_FLAGS_DEFAULT
44
};
45
46
// Options that control ParseFrom: Source of a value.
47
enum
ValueSource
{
48
// Flag is being set by value specified on a command line.
49
kCommandLine
,
50
// Flag is being set by value specified in the code.
51
kProgrammaticChange
,
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().
56
class
FlagStateInterface
{
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
65
ABSL_NAMESPACE_END
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