1*3f982cf4SFabien Sanglard // Copyright 2019 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard // Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard // found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglard #ifndef UTIL_JSON_JSON_VALUE_H_ 6*3f982cf4SFabien Sanglard #define UTIL_JSON_JSON_VALUE_H_ 7*3f982cf4SFabien Sanglard 8*3f982cf4SFabien Sanglard #include "absl/strings/string_view.h" 9*3f982cf4SFabien Sanglard #include "absl/types/optional.h" 10*3f982cf4SFabien Sanglard #include "json/value.h" 11*3f982cf4SFabien Sanglard 12*3f982cf4SFabien Sanglard #define JSON_EXPAND_FIND_CONSTANT_ARGS(s) (s), ((s) + sizeof(s) - 1) 13*3f982cf4SFabien Sanglard 14*3f982cf4SFabien Sanglard namespace openscreen { 15*3f982cf4SFabien Sanglard 16*3f982cf4SFabien Sanglard absl::optional<int> MaybeGetInt(const Json::Value& message, 17*3f982cf4SFabien Sanglard const char* first, 18*3f982cf4SFabien Sanglard const char* last); 19*3f982cf4SFabien Sanglard 20*3f982cf4SFabien Sanglard absl::optional<absl::string_view> MaybeGetString(const Json::Value& message); 21*3f982cf4SFabien Sanglard 22*3f982cf4SFabien Sanglard absl::optional<absl::string_view> MaybeGetString(const Json::Value& message, 23*3f982cf4SFabien Sanglard const char* first, 24*3f982cf4SFabien Sanglard const char* last); 25*3f982cf4SFabien Sanglard 26*3f982cf4SFabien Sanglard } // namespace openscreen 27*3f982cf4SFabien Sanglard 28*3f982cf4SFabien Sanglard #endif // UTIL_JSON_JSON_VALUE_H_ 29