LCOV - code coverage report
Current view: top level - source/common/http - request_id_extension_impl.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 10 13 76.9 %
Date: 2024-01-05 06:35:25 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include "source/common/http/request_id_extension_impl.h"
       2             : 
       3             : #include "source/common/config/utility.h"
       4             : 
       5             : namespace Envoy {
       6             : namespace Http {
       7             : 
       8             : absl::StatusOr<RequestIDExtensionSharedPtr> RequestIDExtensionFactory::fromProto(
       9             :     const envoy::extensions::filters::network::http_connection_manager::v3::RequestIDExtension&
      10             :         config,
      11         140 :     Server::Configuration::FactoryContext& context) {
      12         140 :   const std::string type{TypeUtil::typeUrlToDescriptorFullName(config.typed_config().type_url())};
      13         140 :   auto* factory =
      14         140 :       Registry::FactoryRegistry<Server::Configuration::RequestIDExtensionFactory>::getFactoryByType(
      15         140 :           type);
      16         140 :   if (factory == nullptr) {
      17           0 :     return absl::InvalidArgumentError(
      18           0 :         fmt::format("Didn't find a registered implementation for type: '{}'", type));
      19           0 :   }
      20             : 
      21         140 :   ProtobufTypes::MessagePtr message = Config::Utility::translateAnyToFactoryConfig(
      22         140 :       config.typed_config(), context.messageValidationVisitor(), *factory);
      23         140 :   return factory->createExtensionInstance(*message, context);
      24         140 : }
      25             : 
      26             : } // namespace Http
      27             : } // namespace Envoy

Generated by: LCOV version 1.15