Go to the documentation of this file.
23 #include "absl/strings/escaping.h"
24 #include "absl/strings/match.h"
25 #include "absl/strings/str_cat.h"
31 namespace metadata_detail {
34 if (!
out_.empty())
out_.append(
", ");
44 [
key](
const std::pair<Slice, Slice>& p) {
45 return p.first.as_string_view() == key;
53 if (p.first.as_string_view() ==
key) {
54 if (!
out.has_value()) {
55 out = p.second.as_string_view();
69 auto value_string =
value.as_string_view();
70 if (value_string ==
"application/grpc") {
76 }
else if (value_string.empty()) {
79 on_error(
"invalid value",
value);
98 switch (content_type) {
99 case ValueType::kApplicationGrpc:
100 return "application/grpc";
104 return "<discarded-invalid-value>";
112 on_error(
"invalid value",
value);
133 if (
value ==
"trailers") {
136 on_error(
"invalid value",
value);
143 case ValueType::kTrailers:
146 return "<discarded-invalid-value>";
152 if (
value ==
"http") {
154 }
else if (
value ==
"https") {
173 switch (content_type) {
179 return "<discarded-invalid-value>";
186 auto value_string =
value.as_string_view();
187 if (value_string ==
"POST") {
189 }
else if (value_string ==
"PUT") {
191 }
else if (value_string ==
"GET") {
194 on_error(
"invalid value",
value);
213 switch (content_type) {
221 return "<discarded-invalid-value>";
229 if (!algorithm.has_value()) {
230 on_error(
"invalid value",
value);
240 on_error(
"not an integer",
value);
260 if (
value.length() <
sizeof(
double)) {
261 on_error(
"too short",
value);
268 value.length() -
sizeof(
double));
275 return "not sent on wire";
277 return "not seen by server";
void StrAppend(std::string *dest, const AlphaNum &a)
absl::optional< Duration > ParseTimeout(const Slice &text)
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
absl::optional< grpc_compression_algorithm > ParseCompressionAlgorithm(absl::string_view algorithm)
grpc_compression_algorithm
static StaticSlice FromStaticString(const char *s)
bool StartsWith(absl::string_view text, absl::string_view prefix) noexcept
std::string CEscape(absl::string_view src)
static Timeout FromDuration(Duration duration)
static MutableSlice CreateUninitialized(size_t length)
ABSL_NAMESPACE_BEGIN ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type *out)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error)
static Slice FromCopiedString(const char *s)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
static Slice FromCopiedBuffer(const char *p, size_t len)
static const std::string & DisplayValue(const std::string &x)
static const char * DisplayValue(MementoType content_type)
static constexpr Duration NegativeInfinity()
static std::string DisplayValue(ValueType x)
static constexpr Duration Milliseconds(int64_t millis)
ABSL_NAMESPACE_BEGIN Time Now()
static std::string DisplayValue(ValueType x)
static StaticSlice Encode(ValueType x)
union grpc_slice::grpc_slice_data data
static constexpr Timestamp InfFuture()
static constexpr Duration Infinity()
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:39