1
#include "source/extensions/access_loggers/grpc/config_utils.h"
2

            
3
#include "envoy/singleton/manager.h"
4

            
5
namespace Envoy {
6
namespace Extensions {
7
namespace AccessLoggers {
8
namespace GrpcCommon {
9

            
10
// Singleton registration via macro defined in envoy/singleton/manager.h
11
SINGLETON_MANAGER_REGISTRATION(grpc_access_logger_cache);
12

            
13
GrpcCommon::GrpcAccessLoggerCacheSharedPtr
14
39
getGrpcAccessLoggerCacheSingleton(Server::Configuration::CommonFactoryContext& context) {
15
39
  return context.singletonManager().getTyped<GrpcCommon::GrpcAccessLoggerCacheImpl>(
16
39
      SINGLETON_MANAGER_REGISTERED_NAME(grpc_access_logger_cache), [&context] {
17
31
        return std::make_shared<GrpcCommon::GrpcAccessLoggerCacheImpl>(
18
31
            context.clusterManager().grpcAsyncClientManager(), context.serverScope(),
19
31
            context.threadLocal(), context.localInfo());
20
31
      });
21
39
}
22
} // namespace GrpcCommon
23
} // namespace AccessLoggers
24
} // namespace Extensions
25
} // namespace Envoy