public MetaDataCache(MetadataTracker <T> tracker, OneOf <T, OneOf.Types.None> snapshot, Action <T> updater, Func <T>?factory = null)
     : base(factory)
 {
     this.tracker  = tracker;
     this.snapshot = snapshot;
     this.updater  = updater;
 }
Ejemplo n.º 2
0
        public CheckpointStore(string path)
        {
            db = RocksDb.OpenReadOnly(new DbOptions(), path, RocksDbStore.ColumnFamilies, false);
            var metadataColumnHandle = db.GetColumnFamily(RocksDbStore.METADATA_FAMILY);

            blocks          = new DataTracker <UInt256, BlockState>(db, RocksDbStore.BLOCK_FAMILY);
            transactions    = new DataTracker <UInt256, TransactionState>(db, RocksDbStore.TX_FAMILY);
            accounts        = new DataTracker <UInt160, AccountState>(db, RocksDbStore.ACCOUNT_FAMILY);
            _unspentCoins   = new DataTracker <UInt256, UnspentCoinState>(db, RocksDbStore.UNSPENT_COIN_FAMILY);
            spentCoins      = new DataTracker <UInt256, SpentCoinState>(db, RocksDbStore.SPENT_COIN_FAMILY);
            validators      = new DataTracker <ECPoint, ValidatorState>(db, RocksDbStore.VALIDATOR_FAMILY);
            assets          = new DataTracker <UInt256, AssetState>(db, RocksDbStore.ASSET_FAMILY);
            contracts       = new DataTracker <UInt160, ContractState>(db, RocksDbStore.CONTRACT_FAMILY);
            storages        = new DataTracker <StorageKey, StorageItem>(db, RocksDbStore.STORAGE_FAMILY);
            headerHashList  = new DataTracker <UInt32Wrapper, HeaderHashList>(db, RocksDbStore.HEADER_HASH_LIST_FAMILY);
            validatorsCount = new MetadataTracker <ValidatorsCountState>(db, RocksDbStore.VALIDATORS_COUNT_KEY, metadataColumnHandle);
            blockHashIndex  = new MetadataTracker <HashIndexState>(db, RocksDbStore.CURRENT_BLOCK_KEY, metadataColumnHandle);
            headerHashIndex = new MetadataTracker <HashIndexState>(db, RocksDbStore.CURRENT_HEADER_KEY, metadataColumnHandle);
        }
Ejemplo n.º 3
0
 /// <summary>
 ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
 ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
 ///     any release. You should only use it directly in your code with extreme caution and knowing that
 ///     doing so can result in application failures when updating to a new Entity Framework Core release.
 /// </summary>
 public ConventionDispatcher(ConventionSet conventionSet)
 {
     _immediateConventionScope = new ImmediateConventionScope(conventionSet, this);
     _scope  = _immediateConventionScope;
     Tracker = new MetadataTracker();
 }
 public MetaDataCache(MetadataTracker <T> tracker, Func <T>?factory = null) : base(factory)
 {
     this.tracker = tracker;
 }