// Code generated by protoc-gen-slc. DO NOT EDIT.
package server

import (
	pb "bsm/full/module/ec/address/pb"
	"context"

	gwRuntime "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
	"google.golang.org/grpc"
	"google.golang.org/grpc/reflection"
)

type Server struct {
	Grpc      *grpc.Server
	Ctx       context.Context
	Mux       *gwRuntime.ServeMux
	grpcConns map[string]*grpc.ClientConn // 连接池
}

func New(grpcServ *grpc.Server) *Server {
	standalone := grpcServ == nil
	if standalone {
		grpcServ = grpc.NewServer()
	}

	srv := &Server{
		Ctx:       context.Background(),
		Grpc:      grpcServ,
		grpcConns: make(map[string]*grpc.ClientConn),
	}

	// register service to grpc.Server
	pb.RegisterLibraryServer(srv.Grpc, NewLibraryServer())

	if standalone {
		reflection.Register(srv.Grpc)
	}

	return srv
}
