1
#pragma once
2

            
3
#include "envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.h"
4
#include "envoy/http/request_id_extension.h"
5
#include "envoy/server/request_id_extension_config.h"
6

            
7
namespace Envoy {
8
namespace Http {
9
/**
10
 * Request ID Utilities factory that reads the configuration from proto.
11
 */
12
class RequestIDExtensionFactory {
13
public:
14
  /**
15
   * Read a RequestIDExtension definition from proto and create it or return an
16
   * error status.
17
   */
18
  static absl::StatusOr<RequestIDExtensionSharedPtr> fromProto(
19
      const envoy::extensions::filters::network::http_connection_manager::v3::RequestIDExtension&
20
          config,
21
      Server::Configuration::FactoryContext& context);
22
};
23

            
24
} // namespace Http
25
} // namespace Envoy