1
#pragma once
2

            
3
#include "envoy/config/subscription_factory.h"
4
#include "envoy/registry/registry.h"
5

            
6
namespace Envoy {
7
namespace Config {
8

            
9
class GrpcConfigSubscriptionFactory : public ConfigSubscriptionFactory {
10
public:
11
490
  std::string name() const override { return "envoy.config_subscription.grpc"; }
12
  SubscriptionPtr create(SubscriptionData& data) override;
13
};
14

            
15
class DeltaGrpcConfigSubscriptionFactory : public ConfigSubscriptionFactory {
16
public:
17
490
  std::string name() const override { return "envoy.config_subscription.delta_grpc"; }
18
  SubscriptionPtr create(SubscriptionData& data) override;
19
};
20

            
21
class AdsConfigSubscriptionFactory : public ConfigSubscriptionFactory {
22
public:
23
490
  std::string name() const override { return "envoy.config_subscription.ads"; }
24
  SubscriptionPtr create(SubscriptionData& data) override;
25
};
26

            
27
DECLARE_FACTORY(GrpcConfigSubscriptionFactory);
28
DECLARE_FACTORY(DeltaGrpcConfigSubscriptionFactory);
29
DECLARE_FACTORY(AdsConfigSubscriptionFactory);
30

            
31
} // namespace Config
32
} // namespace Envoy