public TitanicMMFArray(ITitanicArrayConfig <T> config) { this.config = config; TSize = GetSizeInBytes(config.DataSerializer); Length = config.Capacity; var stream = File.Open( config.BackingStoreFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.Read ); #if MONO //TODO try stream.SetLength(config.Capacity * TSize); for (long b = 0; b < config.Capacity * TSize; b++) { stream.WriteByte(0); } stream.Seek(0, SeekOrigin.Begin); #endif mmf = MemoryMappedFile.CreateFromFile( stream, null, config.Capacity * TSize, MemoryMappedFileAccess.ReadWrite, HandleInheritability.None, false ); mmva = mmf.CreateViewAccessor(); }
public override ITitanicArray <byte> CreateArray(ITitanicArrayConfig <byte> c = null) { return(c == null ? new TitanicMMFArray <byte>() : new TitanicMMFArray <byte>(c) ); }
public override ITitanicArray <double> CreateArray(ITitanicArrayConfig <double> c = null) { return(c == null ? new TitanicFileArray <double>() : new TitanicFileArray <double>(c) ); }
public TitanicSQLiteArray(ITitanicArrayConfig <T> config, int cacheSizeKB = 2000) { this.config = config; TSize = GetSizeInBytes(config.DataSerializer); SQLiteConnection.CreateFile(config.BackingStoreFileName); sqConnection = new SQLiteConnection( "Data Source=" + config.BackingStoreFileName + ";Version=3" + ";Synchronous=OFF" + ";Journal Mode=OFF" + ";Cache Size=-" + cacheSizeKB ); sqConnection.Open(); string sql = "CREATE TABLE IF NOT EXISTS array (" + "i INTEGER PRIMARY KEY ASC," + "v BLOB" + ");" ; using (SQLiteCommand command = new SQLiteCommand(sql, sqConnection)) { command.ExecuteNonQuery(); } }
public TitanicFileArray(ITitanicArrayConfig <T> config, int cacheSize = 2000) { this.config = config; store = File.Open(config.BackingStoreFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.Read); itemSize = GetSizeInBytes(config.DataSerializer); buffer = new byte[itemSize]; InitializeFile(); cache = new LRUCache <long, T>(cacheSize); }
public TitanicLiteDBArray(ITitanicArrayConfig <T> config, int cacheSizePages = 5000) { this.config = config; TSize = GetSizeInBytes(config.DataSerializer); db = new LiteDatabase( "Filename=" + config.BackingStoreFileName + ";Journal=false" + ";Cache Size=" + cacheSizePages ); collection = db.GetCollection("array"); }
public TitanicIMArray(ITitanicArrayConfig <T> config) { this.config = config; TSize = GetSizeInBytes(config.DataSerializer); pixelsPerItem = IntCeil(TSize, bytesPerPixel); long maxPixels = config.Capacity * pixelsPerItem; FindDimensions(maxPixels, out Width, out Height); MagickNET.SetTempDirectory(Path.GetDirectoryName(config.BackingStoreFileName)); im = new MagickImage(MagickColor.FromRgba(0, 0, 0, 0), Width, Height); pixels = im.GetPixels(); }
void CreateArray(ITitanicArrayConfig <long> config) { //return new TitanicFileArray<long>(config); data = new TitanicMMFArray <long>(config); }
public abstract ITitanicArray <T> CreateArray(ITitanicArrayConfig <T> c = null);
public TitanicRaptorDBArray(ITitanicArrayConfig <T> config) { this.config = config; TSize = GetSizeInBytes(config.DataSerializer); rdb = RaptorDB <long> .Open(config.BackingStoreFileName, false); }