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 DeltaGrpcCollectionConfigSubscriptionFactory : public ConfigSubscriptionFactory {
10
public:
11
486
  std::string name() const override { return "envoy.config_subscription.delta_grpc_collection"; }
12
  SubscriptionPtr create(SubscriptionData& data) override;
13
};
14

            
15
class AggregatedGrpcCollectionConfigSubscriptionFactory : public ConfigSubscriptionFactory {
16
public:
17
486
  std::string name() const override {
18
486
    return "envoy.config_subscription.aggregated_grpc_collection";
19
486
  }
20
  SubscriptionPtr create(SubscriptionData& data) override;
21
};
22

            
23
class AdsCollectionConfigSubscriptionFactory : public ConfigSubscriptionFactory {
24
public:
25
486
  std::string name() const override { return "envoy.config_subscription.ads_collection"; }
26
  SubscriptionPtr create(SubscriptionData& data) override;
27
};
28

            
29
DECLARE_FACTORY(DeltaGrpcCollectionConfigSubscriptionFactory);
30
DECLARE_FACTORY(AggregatedGrpcCollectionConfigSubscriptionFactory);
31
DECLARE_FACTORY(AdsCollectionConfigSubscriptionFactory);
32

            
33
} // namespace Config
34
} // namespace Envoy