async Task AddStoreAsync(string type) { if (_dataTreeAddresses.ContainsKey(type)) { return; } Task onHeadChange(MdLocator newLocation) => UpdateTypeStores(type, newLocation); var dataTree = await DataTreeFactory.CreateAsync(onHeadChange).ConfigureAwait(false); _dataTreeCache[type] = dataTree; _dataTreeAddresses[type] = dataTree.MdLocator; await _typeInfo.AddAsync(type, dataTree.MdLocator).ConfigureAwait(false); }
internal async Task InitSession(Func <IImDStore, Snapshotter> snapShotterFactory, bool inMem = true, bool mock = true) { if (!mock) { throw new InvalidOperationException("Not testing against live networks."); } var mockClient = new CredentialAuth(_appId, inMem); var session = (await mockClient.AuthenticateAsync()).Value; _networkDataOps = new NetworkDataOps(session); var snapshotter = snapShotterFactory == null ? null : snapShotterFactory(GetImdStore()); _dbFactory = new StreamDbFactory(_networkDataOps, snapshotter); _nodeFactory = _dbFactory.NodeFactory; _dataTreeFactory = new DataTreeFactory(_nodeFactory); }
public StreamDb(IStreamCollection streams, Network.IMdNodeFactory nodeFactory) { _streams = streams; _nodeFactory = nodeFactory; _dataTreeFactory = new DataTreeFactory(nodeFactory); }