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);
}