setQuota method

Future<QuotaResult> setQuota({
  1. required Map<String, int> resourceLimits,
  2. String quotaRoot = '""',
})

Sets the quota resourceLimits for the the user / quotaRoot.

Optionally define the quotaRoot which defaults to "". Note that the server needs to support the QUOTA capability.

Implementation

Future<QuotaResult> setQuota({
  required Map<String, int> resourceLimits,
  String quotaRoot = '""',
}) {
  final quotaRootParameter = quotaRoot.contains(' ')
      ? '"$quotaRoot"'
      : quotaRoot;
  final buffer = StringBuffer()
    ..write('SETQUOTA ')
    ..write(quotaRootParameter)
    ..write(' (')
    ..write(
      resourceLimits.entries
          .map((entry) => '${entry.key} ${entry.value}')
          .join(' '),
    )
    ..write(')');
  final cmd = Command(
    buffer.toString(),
    writeTimeout: defaultWriteTimeout,
    responseTimeout: defaultResponseTimeout,
  );
  final parser = QuotaParser();

  return sendCommand<QuotaResult>(cmd, parser);
}