166
logger log.Logger,
167
metricsHandler metrics.Handler,
169
>
return DbConn{
170
>
dbKind: dbKind,
171
>
cfg: cfg,
172
>
resolver: r,
173
>
metrics: metricsHandler,
174
>
logger: logger,
175
>
}
176
>
}
177
178
// Get returns a db connection and increments a reference count.
179
// This method will create a new connection, if an existing connection
180
// does not exist
181
>
func (c *DbConn) Get() (sqlplugin.DB, error) {
factory.go
182
>
c.Lock()
183
>
defer c.Unlock()
184
>
if c.refCnt == 0 {
185
>
conn, err := NewSQLDB(c.dbKind, c.cfg, c.resolver, c.logger, c.metrics)
186
>
if err != nil {
187
return nil, err
188
}
190
}
192
>
return c, nil
193
}
194