/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public override IBin Open(BinConfiguration config) { SaveAsStorage.SaveAsBin openedBin = new SaveAsStorage.SaveAsBin(base.Open(config) ); _binRecords.Put(config.Uri(), new SaveAsStorage.BinRecord(config, openedBin)); return(openedBin); }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public FileBin(BinConfiguration config) { bool ok = false; try { _path = new Sharpen.IO.File(config.Uri()).GetCanonicalPath(); _file = RandomAccessFileFactory.NewRandomAccessFile(_path, config.ReadOnly(), config .LockFile()); if (config.InitialLength() > 0) { Write(config.InitialLength() - 1, new byte[] { 0 }, 1); } ok = true; } catch (IOException e) { throw new Db4oIOException(e); } finally { if (!ok) { Close(); } } }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { IoAdapterStorage.IoAdapterBin bin = new IoAdapterStorage.IoAdapterBin(_io.Open(config .Uri(), config.LockFile(), config.InitialLength(), config.ReadOnly())); ((IBlockSize)Environments.My(typeof(IBlockSize))).Register(bin); return bin; }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { IoAdapterStorage.IoAdapterBin bin = new IoAdapterStorage.IoAdapterBin(_io.Open(config .Uri(), config.LockFile(), config.InitialLength(), config.ReadOnly())); ((IBlockSize)Environments.My(typeof(IBlockSize))).Register(bin); return(bin); }
protected override IBin ProduceBin(BinConfiguration config, int pageSize) { IBin bin = base.ProduceBin(config, pageSize); bin.Write(0, PagingMemoryStorageTestCase.Data, PagingMemoryStorageTestCase.Data.Length ); return bin; }
public void Run() { saveAsBin.Sync(); saveAsBin.Close(); try { File4.Copy(oldUri, newUri); } catch (Exception e) { this._enclosing.ReopenOldConfiguration(saveAsBin, oldConfiguration, newUri, e); } BinConfiguration newConfiguration = this._enclosing.PointToNewUri(oldConfiguration , newUri); try { IBin newBin = this._enclosing._storage.Open(newConfiguration); saveAsBin.DelegateTo(newBin); this._enclosing._binRecords.Remove(oldUri); this._enclosing._binRecords.Put(newUri, new SaveAsStorage.BinRecord(newConfiguration , saveAsBin)); } catch (Exception e) { this._enclosing.ReopenOldConfiguration(saveAsBin, oldConfiguration, newUri, e); } }
public IBin Open(BinConfiguration config) { IsolatedStorageFileBin bin = new IsolatedStorageFileBin(config, _store); AddToOpenBinsCollection(bin); RegisterForOnCloseEvent(bin); return bin; }
public IBin Open(BinConfiguration config) { IsolatedStorageFileBin bin = new IsolatedStorageFileBin(config, _store); AddToOpenBinsCollection(bin); RegisterForOnCloseEvent(bin); return(bin); }
private void ReopenOldConfiguration(SaveAsStorage.SaveAsBin saveAsBin, BinConfiguration config, string newUri, Exception e) { IBin safeBin = _storage.Open(config); saveAsBin.DelegateTo(safeBin); throw new Db4oException("Copying to " + newUri + " failed. Reopened " + config.Uri (), e); }
private IsolatedStorageFileStream OpenFile(BinConfiguration config, IsolatedStorageFile store) { _fullPath = config.Uri(); string path = config.Uri(); IsolatedStorageFileStream stream = new IsolatedStorageFileStream(path, FileModeFor(store, path), FileAccessFor(config), FileShareFor(config), store); Fill(stream, config.InitialLength(), 0); return stream; }
public _IRunnable_49(SaveAsStorage _enclosing, SaveAsStorage.SaveAsBin saveAsBin, string oldUri, string newUri, BinConfiguration oldConfiguration) { this._enclosing = _enclosing; this.saveAsBin = saveAsBin; this.oldUri = oldUri; this.newUri = newUri; this.oldConfiguration = oldConfiguration; }
private IsolatedStorageFileStream OpenFile(BinConfiguration config, IsolatedStorageFile store) { _fullPath = config.Uri(); string path = config.Uri(); IsolatedStorageFileStream stream = new IsolatedStorageFileStream(path, FileModeFor(store, path), FileAccessFor(config), FileShareFor(config), store); Fill(stream, config.InitialLength(), 0); return(stream); }
/// <summary>opens a Bin for the given URI.</summary> /// <remarks>opens a Bin for the given URI.</remarks> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public override IBin Open(BinConfiguration config) { IBin storage = base.Open(config); if (config.ReadOnly()) { return new ReadOnlyBin(new CachingStorage.NonFlushingCachingBin(storage, NewCache (), _pageCount, _pageSize)); } return new CachingBin(storage, NewCache(), _pageCount, _pageSize); }
protected override IBin Decorate(BinConfiguration config, IBin bin) { MsgExceptionHandlingTestCase.CloseAwareBin decorated = new MsgExceptionHandlingTestCase.CloseAwareBin (this, bin); lock (_openBins) { _openBins[decorated] = decorated; } return decorated; }
/// <summary>opens a Bin for the given URI.</summary> /// <remarks>opens a Bin for the given URI.</remarks> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public override IBin Open(BinConfiguration config) { IBin storage = base.Open(config); if (config.ReadOnly()) { return(new ReadOnlyBin(new CachingStorage.NonFlushingCachingBin(storage, NewCache (), _pageCount, _pageSize))); } return(new CachingBin(storage, NewCache(), _pageCount, _pageSize)); }
private IBin ProduceBin(BinConfiguration config) { IBin storage = Bin(config.Uri()); if (null != storage) { return storage; } IBin newStorage = new PagingMemoryBin(_pageSize, config.InitialLength()); _binsByUri[config.Uri()] = newStorage; return newStorage; }
private IBin AcquireBin(BinConfiguration config) { IBin storage = Bin(config.Uri()); if (null != storage) { return storage; } IBin newStorage = ProduceBin(config, _pageSize); _binsByUri[config.Uri()] = newStorage; return newStorage; }
private IBin ProduceStorage(BinConfiguration config) { IBin storage = Bin(config.Uri()); if (null != storage) { return storage; } MemoryBin newStorage = new MemoryBin(new byte[(int)config.InitialLength()], _growthStrategy ); _bins[config.Uri()] = newStorage; return newStorage; }
private IBin AcquireBin(BinConfiguration config) { IBin storage = Bin(config.Uri()); if (null != storage) { return(storage); } IBin newStorage = ProduceBin(config, _pageSize); _binsByUri[config.Uri()] = newStorage; return(newStorage); }
private IBin ProduceBin(BinConfiguration config) { var storage = Bin(config.Uri()); if (null != storage) { return(storage); } IBin newStorage = new PagingMemoryBin(_pageSize, config.InitialLength()); _binsByUri[config.Uri()] = newStorage; return(newStorage); }
protected override IBin Decorate(BinConfiguration config, IBin bin) { try { var file = new FileStream(_fileName, FileMode.Create); var @out = new StreamWriter(file); return new LoggingBin(bin, @out, _config); } catch(FileNotFoundException e) { throw new Db4oIOException(e); } }
private IBin ProduceStorage(BinConfiguration config) { IBin storage = Bin(config.Uri()); if (null != storage) { return(storage); } MemoryBin newStorage = new MemoryBin(new byte[(int)config.InitialLength()], _growthStrategy ); _bins[config.Uri()] = newStorage; return(newStorage); }
internal IsolatedStorageFileBin(BinConfiguration config, IsolatedStorageFile store) { Action cleanUp = Close; try { _fileStream = OpenFile(config, store); cleanUp = () => {}; } catch (IsolatedStorageException e) { ThrowMappedException(e, config.Uri(), store); } finally { cleanUp(); } }
public virtual void Test() { MockBin mock = new MockBin(); BinConfiguration binConfig = new BinConfiguration("uri", true, 42L, false); IBin storage = new NonFlushingStorage(new _IStorage_19(mock)).Open(binConfig); byte[] buffer = new byte[5]; storage.Read(1, buffer, 4); storage.Write(2, buffer, 3); mock.ReturnValueForNextCall(42); Assert.AreEqual(42, mock.Length()); storage.Sync(); storage.Close(); mock.Verify(new MethodCall[] { new MethodCall("open", new object[] { binConfig }) , new MethodCall("read", new object[] { 1L, buffer, 4 }), new MethodCall("write" , new object[] { 2L, buffer, 3 }), new MethodCall("length", new object[] { }), new MethodCall("close", new object[] { }) }); }
/// <summary> /// call this method to save the content of a currently /// open ObjectContainer session to a new file location. /// </summary> /// <remarks> /// call this method to save the content of a currently /// open ObjectContainer session to a new file location. /// Invocation will close the old file without a commit, /// keep the reference system in place and connect it to /// the file in the new location. If anything goes wrong /// during the copying operation or while opening it will /// be attempted to reopen the old file. In this case a /// Db4oException will be thrown. /// </remarks> /// <param name="oldUri">the path to the old open database file</param> /// <param name="newUri">the path to the new database file</param> public virtual void SaveAs(string oldUri, string newUri) { if (System.IO.File.Exists(newUri)) { throw new InvalidOperationException(newUri + " already exists"); } SaveAsStorage.BinRecord binRecord = (SaveAsStorage.BinRecord)_binRecords.Get(oldUri ); if (binRecord == null) { throw new InvalidOperationException(oldUri + " was never opened or was closed."); } BinConfiguration oldConfiguration = binRecord._binConfiguration; SaveAsStorage.SaveAsBin saveAsBin = binRecord._bin; IRunnable closure = new _IRunnable_49(this, saveAsBin, oldUri, newUri, oldConfiguration ); saveAsBin.ExchangeUnderlyingBin(closure); }
private static FileShare FileShareFor(BinConfiguration config) { return(config.LockFile() ? FileShare.None : FileShare.ReadWrite); }
/// <summary> /// opens a /// <see cref="IBin">IBin</see> /// on the specified URI (file system path). /// </summary> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { return new FileStorage.FileBin(config); }
internal BinRecord(BinConfiguration binConfiguration, SaveAsStorage.SaveAsBin bin ) { _binConfiguration = binConfiguration; _bin = bin; }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { return Decorate(config, _storage.Open(config)); }
protected override IBin Decorate(BinConfiguration config, IBin storage) { return(new NonFlushingBin(storage)); }
protected override IBin Decorate(BinConfiguration config, IBin bin) { ResetShutdownState(); return new ExceptionSimulatingStorage.ExceptionSimulatingBin(bin, _exceptionFactory , _triggerCondition); }
protected virtual IBin ProduceBin(BinConfiguration config, int pageSize) { return(new PagingMemoryBin(pageSize, config.InitialLength())); }
protected override IBin Decorate(BinConfiguration config, IBin bin) { var decorated = new CloseAwareBin (this, bin); lock (_openBins) { _openBins[decorated] = decorated; } return decorated; }
/// <summary> /// opens a /// <see cref="IBin">IBin</see> /// on the specified URI (file system path). /// </summary> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { return(new FileStorage.FileBin(config)); }
protected override IBin Decorate(BinConfiguration config, IBin bin) { return new LoggingBin(base.Decorate(config, bin)); }
protected virtual IBin Decorate(BinConfiguration config, IBin bin) { return bin; }
protected override IBin Decorate(BinConfiguration config, IBin bin) { return new MockBin(bin, password); }
/// <summary>opens a MemoryBin for the given URI (name can be freely chosen).</summary> /// <remarks>opens a MemoryBin for the given URI (name can be freely chosen).</remarks> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { IBin storage = ProduceStorage(config); return(config.ReadOnly() ? new ReadOnlyBin(storage) : storage); }
protected override IBin Decorate(BinConfiguration config, IBin storage) { return new NonFlushingStorage.NonFlushingBin(storage); }
protected virtual IBin Decorate(BinConfiguration config, IBin bin) { return(bin); }
private static FileAccess FileAccessFor(BinConfiguration config) { return(config.ReadOnly() ? FileAccess.Read : FileAccess.ReadWrite); }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { return(Decorate(config, _storage.Open(config))); }
/// <summary>opens a MemoryBin for the given URI (name can be freely chosen).</summary> /// <remarks>opens a MemoryBin for the given URI (name can be freely chosen).</remarks> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { IBin storage = ProduceStorage(config); return config.ReadOnly() ? new ReadOnlyBin(storage) : storage; }
private BinConfiguration PointToNewUri(BinConfiguration oldConfig, string newUri) { return new BinConfiguration(newUri, oldConfig.LockFile(), oldConfig.InitialLength (), oldConfig.ReadOnly()); }
public override IBin Open(BinConfiguration config) { Console.WriteLine("Called: LoggingStorage.Open(" + config + ")"); return base.Open(config); }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public override IBin Open(BinConfiguration config) { SaveAsStorage.SaveAsBin openedBin = new SaveAsStorage.SaveAsBin(base.Open(config) ); _binRecords.Put(config.Uri(), new SaveAsStorage.BinRecord(config, openedBin)); return openedBin; }
/// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public IBin Open(BinConfiguration config) { mock.Record(new MethodCall("open", new object[] { config })); return mock; }
/// <summary>opens a MemoryBin for the given URI (name can be freely chosen).</summary> /// <remarks>opens a MemoryBin for the given URI (name can be freely chosen).</remarks> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { IBin bin = AcquireBin(config); return(config.ReadOnly() ? new ReadOnlyBin(bin) : bin); }
private BinConfiguration PointToNewUri(BinConfiguration oldConfig, string newUri) { return(new BinConfiguration(newUri, oldConfig.LockFile(), oldConfig.InitialLength (), oldConfig.ReadOnly())); }
protected override IBin Decorate(BinConfiguration config, IBin bin) { return new MonitoredBin(bin); }
/// <summary>opens a MemoryBin for the given URI (name can be freely chosen).</summary> /// <remarks>opens a MemoryBin for the given URI (name can be freely chosen).</remarks> /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception> public virtual IBin Open(BinConfiguration config) { var bin = ProduceBin(config); return(config.ReadOnly() ? new ReadOnlyBin(bin) : bin); }