Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public StreamDb(IStreamCollection streams, Network.IMdNodeFactory nodeFactory)
 {
     _streams         = streams;
     _nodeFactory     = nodeFactory;
     _dataTreeFactory = new DataTreeFactory(nodeFactory);
 }