github.com/polarismesh/polaris@v1.17.8/service/options.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package service 19 20 import ( 21 "github.com/polarismesh/polaris/cache" 22 "github.com/polarismesh/polaris/namespace" 23 "github.com/polarismesh/polaris/service/batch" 24 "github.com/polarismesh/polaris/service/healthcheck" 25 "github.com/polarismesh/polaris/store" 26 ) 27 28 type InitOption func(s *Server) 29 30 func WithNamespaceSvr(svr namespace.NamespaceOperateServer) InitOption { 31 return func(s *Server) { 32 s.namespaceSvr = svr 33 } 34 } 35 36 func WithHealthCheckSvr(svr *healthcheck.Server) InitOption { 37 return func(s *Server) { 38 s.healthServer = svr 39 } 40 } 41 42 func WithStorage(storage store.Store) InitOption { 43 return func(s *Server) { 44 s.storage = storage 45 } 46 } 47 48 func WithCacheManager(cacheOpt *cache.Config, c *cache.CacheManager) InitOption { 49 return func(s *Server) { 50 if cacheOpt.Open { 51 log.Infof("[Naming][Server] cache is open, can access the client api function") 52 s.caches = c 53 } 54 } 55 } 56 57 func WithBatchController(c *batch.Controller) InitOption { 58 return func(s *Server) { 59 s.bc = c 60 } 61 }