package grpc_pool import ( "fmt" "time" "google.golang.org/grpc" ) // Options is configuration of the Pool of GRpc client type PoolHandlers struct { IdleTimeout time.Duration MaxIdle int MaxCapacity int } func (ph *PoolHandlers) Dial() (*grpc.ClientConn, interface{}, error) { return nil, nil, fmt.Errorf("GRPC Pool: Dial method is not implemented") } func (ph *PoolHandlers) GetIdleTimeout() time.Duration { return ph.IdleTimeout } func (ph *PoolHandlers) GetMaxIdle() int { return ph.MaxIdle } func (ph *PoolHandlers) GetMaxCapacity() int { return ph.MaxCapacity } // Validate validates the configuration func (ph *PoolHandlers) Validate() { if ph.IdleTimeout < 0 { ph.IdleTimeout = DefaultIdleTimeout } if ph.MaxIdle < 0 { ph.MaxIdle = DefaultMaxIdle } if ph.MaxCapacity <= 0 { ph.MaxCapacity = DefaultMaxCapacity } }