public static void Close(this Solution sol, CloseOptions options) { var save = (options & CloseOptions.Save) == CloseOptions.Save; var wait = (options & CloseOptions.Wait) == CloseOptions.Wait; sol.Close(save); if (wait) WaitFor(null, () => sol.IsOpen == false, waitFor: TimeSpan.FromSeconds(20)); }
public void close(CloseOptions options, ICallback success, ICallback error) { QueueWithCancellation(() => { var dbFileName = options.Path; if (dbFileName == null) { error.Invoke("You must specify database path"); return(Task.CompletedTask); } if (!_openDBs.ContainsKey(dbFileName)) { error.Invoke("Specified db was not open"); return(Task.CompletedTask); } var dbInfo = _openDBs[dbFileName]; _openDBs.Remove(dbFileName); if (_sqliteAPI.Close(dbInfo.Handle) != SQLite.Net.Interop.Result.OK) { System.Diagnostics.Debug.WriteLine("SQLitePluginModule: Error closing database: " + dbInfo.Path); } success.Invoke("DB closed"); return(Task.CompletedTask); }); }
public static void Close(this Solution sol, CloseOptions options) { var save = (options & CloseOptions.Save) == CloseOptions.Save; var wait = (options & CloseOptions.Wait) == CloseOptions.Wait; sol.Close(save); if (wait) { WaitFor(null, () => sol.IsOpen == false, waitFor: TimeSpan.FromSeconds(20)); } }
public static BlockStream Read(Stream baseStream, Stream wrapper, Action wrapperFlush, CloseOptions closeOption) { var block = new BlockStream() { _readMode = true, _baseStream = baseStream, _pointerPosition = baseStream.Position, _wrapperFlush = wrapperFlush, _closeOption = closeOption, _wrapper = wrapper, _blockEndPosition = baseStream.ReadInt64(), }; block._length = block._blockEndPosition - sizeof(Int64) - block._pointerPosition; return(block); }
public static BlockStream Create(Stream baseStream, Stream wrapper, Action wrapperFlush, CloseOptions closeOption) { var block = new BlockStream() { _baseStream = baseStream, _pointerPosition = baseStream.Length, _wrapperFlush = wrapperFlush, _closeOption = closeOption, _wrapper = wrapper }; baseStream.WriteInt64(0); return(block); }