public void AttachDb(string dbPath) { WriterLock(() => { var metadataPath = DbMetadata.GetMetadataPath(dbPath); var metaData = metadataPath.LoadFromFile <DbMetadata>(); InitDbFromMetadata(metaData.Name, metaData); }); }
private void InitDbFromMetadata(string name, DbMetadata metaData) { _dbNames[name] = metaData.DbMetadataPath; Serialize(); var db = new Db(metaData); _loadedDbs[name] = db; db.SaveMetadata(); }
public IDb CreateDb(string directoryPath, string name) { return(WriterLock(() => { var dirInfo = new DirectoryInfo(Path.Combine(directoryPath, name)); if (!dirInfo.Exists) { dirInfo.Create(); } var metaData = new DbMetadata { Name = name, DbPath = dirInfo.FullName, Id = Guid.NewGuid() }; InitDbFromMetadata(name, metaData); return GetDb(name); })); }
public Db(DbMetadata metadata) : base(TimeSpan.FromSeconds(30)) { MetadataInternal = metadata; Directory.CreateDirectory(MeasurementDirectory); }