createPoolDispatch function

  1. @visibleForTesting
int createPoolDispatch({
  1. required bool supportsPoolCreateWithOptions,
  2. required String connectionString,
  3. required int maxSize,
  4. required int poolCreate(
    1. String connectionString,
    2. int maxSize
    ),
  5. required int poolCreateWithOptions(
    1. String connectionString,
    2. int maxSize, {
    3. String? optionsJson,
    }),
  6. PoolOptions? options,
})

Pure routing used by OdbcPoolFactory.createPool, testable without FFI.

Implementation

@visibleForTesting
int createPoolDispatch({
  required bool supportsPoolCreateWithOptions,
  required String connectionString,
  required int maxSize,
  required int Function(String connectionString, int maxSize) poolCreate,
  required int Function(
    String connectionString,
    int maxSize, {
    String? optionsJson,
  }) poolCreateWithOptions,
  PoolOptions? options,
}) {
  if (options == null || !options.hasAnyOption) {
    return poolCreate(connectionString, maxSize);
  }
  if (!supportsPoolCreateWithOptions) {
    return poolCreate(connectionString, maxSize);
  }
  return poolCreateWithOptions(
    connectionString,
    maxSize,
    optionsJson: options.toJson(),
  );
}