1
#pragma once
2

            
3
#include "envoy/config/trace/v3/zipkin.pb.h"
4
#include "envoy/config/trace/v3/zipkin.pb.validate.h"
5

            
6
#include "source/extensions/tracers/common/factory_base.h"
7

            
8
namespace Envoy {
9
namespace Extensions {
10
namespace Tracers {
11
namespace Zipkin {
12

            
13
/**
14
 * Config registration for the zipkin tracer. @see TracerFactory.
15
 */
16
class ZipkinTracerFactory : public Common::FactoryBase<envoy::config::trace::v3::ZipkinConfig> {
17
public:
18
  ZipkinTracerFactory();
19

            
20
private:
21
  // FactoryBase
22
  Tracing::DriverSharedPtr
23
  createTracerDriverTyped(const envoy::config::trace::v3::ZipkinConfig& proto_config,
24
                          Server::Configuration::TracerFactoryContext& context) override;
25
};
26

            
27
} // namespace Zipkin
28
} // namespace Tracers
29
} // namespace Extensions
30
} // namespace Envoy