1
#pragma once
2

            
3
#include "envoy/config/trace/v3/skywalking.pb.h"
4
#include "envoy/config/trace/v3/skywalking.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 SkyWalking {
12

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

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

            
28
} // namespace SkyWalking
29
} // namespace Tracers
30
} // namespace Extensions
31
} // namespace Envoy