123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright 2020 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef REMOTING_BASE_PROTOBUF_HTTP_REQUEST_CONFIG_H_
- #define REMOTING_BASE_PROTOBUF_HTTP_REQUEST_CONFIG_H_
- #include <memory>
- #include <string>
- #include "net/traffic_annotation/network_traffic_annotation.h"
- namespace google {
- namespace protobuf {
- class MessageLite;
- } // namespace protobuf
- } // namespace google
- namespace remoting {
- // Common configurations for unary and stream protobuf http requests. Caller
- // needs to set all fields in this struct unless otherwise documented.
- struct ProtobufHttpRequestConfig {
- explicit ProtobufHttpRequestConfig(
- const net::NetworkTrafficAnnotationTag& traffic_annotation);
- ~ProtobufHttpRequestConfig();
- // Runs DCHECK's on the fields to make sure all fields have been set up.
- void Validate() const;
- const net::NetworkTrafficAnnotationTag traffic_annotation;
- std::unique_ptr<google::protobuf::MessageLite> request_message;
- std::string path;
- bool authenticated = true;
- // Optional. Only needed when the request requires an API key.
- std::string api_key;
- };
- } // namespace remoting
- #endif // REMOTING_BASE_PROTOBUF_HTTP_REQUEST_CONFIG_H_
|