public void DatabaseShutdown2(FbShutdownOnlineMode mode, FbShutdownType type, int seconds) { StartSpb = new ServiceParameterBuffer(); StartSpb.Append(IscCodes.isc_action_svc_properties); StartSpb.Append(IscCodes.isc_spb_dbname, Database); StartSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode)); switch (type) { case FbShutdownType.ForceShutdown: StartSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds); break; case FbShutdownType.AttachmentsShutdown: StartSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds); break; case FbShutdownType.TransactionsShutdown: StartSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds); break; } Open(); StartTask(); Close(); }
public async Task DatabaseShutdown2Async(FbShutdownOnlineMode mode, FbShutdownType type, int seconds, CancellationToken cancellationToken = default) { EnsureDatabase(); await OpenAsync(cancellationToken).ConfigureAwait(false); var startSpb = new ServiceParameterBuffer2(); startSpb.Append(IscCodes.isc_action_svc_properties); startSpb.Append2(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding); startSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode)); switch (type) { case FbShutdownType.ForceShutdown: startSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds); break; case FbShutdownType.AttachmentsShutdown: startSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds); break; case FbShutdownType.TransactionsShutdown: startSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds); break; } await StartTaskAsync(startSpb, cancellationToken).ConfigureAwait(false); await CloseAsync(cancellationToken).ConfigureAwait(false); }
private async Task DatabaseShutdown2Impl(FbShutdownOnlineMode mode, FbShutdownType type, int seconds, AsyncWrappingCommonArgs async) { EnsureDatabase(); await Open(async).ConfigureAwait(false); var startSpb = new ServiceParameterBuffer(); startSpb.Append(IscCodes.isc_action_svc_properties); startSpb.Append(IscCodes.isc_spb_dbname, Database, SpbFilenameEncoding); startSpb.Append(IscCodes.isc_spb_prp_shutdown_mode, FbShutdownOnlineModeToIscCode(mode)); switch (type) { case FbShutdownType.ForceShutdown: startSpb.Append(IscCodes.isc_spb_prp_force_shutdown, seconds); break; case FbShutdownType.AttachmentsShutdown: startSpb.Append(IscCodes.isc_spb_prp_attachments_shutdown, seconds); break; case FbShutdownType.TransactionsShutdown: startSpb.Append(IscCodes.isc_spb_prp_transactions_shutdown, seconds); break; } await StartTask(startSpb, async).ConfigureAwait(false); await Close(async).ConfigureAwait(false); }
public Task DatabaseShutdown2Async(FbShutdownOnlineMode mode, FbShutdownType type, int seconds, CancellationToken cancellationToken = default) => DatabaseShutdown2Impl(mode, type, seconds, new AsyncWrappingCommonArgs(true, cancellationToken));
public void DatabaseShutdown2(FbShutdownOnlineMode mode, FbShutdownType type, int seconds) => DatabaseShutdown2Impl(mode, type, seconds, new AsyncWrappingCommonArgs(false)).GetAwaiter().GetResult();