示例#1
0
 public DefaultUrlManager(IOptions<SmidgeOptions> options, ISmidgeConfig config, IHasher hasher, IUrlHelper urlHelper)
 {
     _hasher = hasher;
     _urlHelper = urlHelper;
     _options = options.Value.UrlOptions;
     _config = config;
 }
 public CSSAssetsFileHasher(string hashQueryStringKeyName, IResolver fileResolver, IHasher hasher, IPathTranslator pathTranslator)
 {
     HashQueryStringKeyName = hashQueryStringKeyName;
     FileSystemResolver = fileResolver;
     Hasher = hasher;
     this.pathTranslator = pathTranslator;
 }
        public ReadIndex(IPublisher bus,
                         int readerCount,
                         Func<ITransactionFileSequentialReader> seqReaderFactory,
                         Func<ITransactionFileReader> readerFactory,
                         ITableIndex tableIndex,
                         IHasher hasher,
                         ILRUCache<string, StreamCacheInfo> streamInfoCache)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.Positive(readerCount, "readerCount");
            Ensure.NotNull(seqReaderFactory, "seqReaderFactory");
            Ensure.NotNull(readerFactory, "readerFactory");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(streamInfoCache, "streamInfoCache");

            _bus = bus;
            _tableIndex = tableIndex;
            _hasher = hasher;
            _streamInfoCache = streamInfoCache;

            for (int i = 0; i < readerCount; ++i)
            {
                _seqReaders.Push(seqReaderFactory());
                _readers.Push(readerFactory());
            }
        }
 public RetryableFileWriter(int bufferSize, IRetryableFileOpener retryableFileOpener, IHasher hasher)
 {
     BufferSize = bufferSize;
     RetryableFileOpener = retryableFileOpener;
     Hasher = hasher;
     _encoding = Encoding.UTF8;
 }
 public PaymentManager(IOrderFacade orderFacade, IHasher hasher, IResultParser resultParser, IPayExSettings payExSettings)
 {
     _orderFacade = orderFacade;
     _hasher = hasher;
     _resultParser = resultParser;
     _payExSettings = payExSettings;
 }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            _indexDir = PathName;
            var fakeReader = new TFReaderLease(new FakeTfReader());
            _lowHasher = new XXHashUnsafe();
            _highHasher = new Murmur3AUnsafe();
            _tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher, 
                                         () => new HashListMemTable(_ptableVersion, maxSize: 10),
                                         () => fakeReader,
                                         _ptableVersion,
                                         maxSizeForMemory: 5);
            _tableIndex.Initialize(long.MaxValue);

            _tableIndex.Add(0, "0xDEAD", 0, 0xFF00);
            _tableIndex.Add(0, "0xDEAD", 1, 0xFF01); 
                             
            _tableIndex.Add(0, "0xBEEF", 0, 0xFF00);
            _tableIndex.Add(0, "0xBEEF", 1, 0xFF01); 
                             
            _tableIndex.Add(0, "0xABBA", 0, 0xFF00); // 1st ptable0
                             
            _tableIndex.Add(0, "0xABBA", 1, 0xFF01); 
            _tableIndex.Add(0, "0xABBA", 2, 0xFF02);
            _tableIndex.Add(0, "0xABBA", 3, 0xFF03); 
                             
            _tableIndex.Add(0, "0xADA", 0, 0xFF00); // simulates duplicate due to concurrency in TableIndex (see memtable below)
            _tableIndex.Add(0, "0xDEAD", 0, 0xFF10); // 2nd ptable0
                            
            _tableIndex.Add(0, "0xDEAD", 1, 0xFF11); // in memtable
            _tableIndex.Add(0, "0xADA", 0, 0xFF00); // in memtable
        }
示例#7
0
		public Key(string value, IHasher hasher)
		{
			this.Value = value;
			this.bytes = hasher.GetBytes(string.Format("{0}_{1}_{2}",
				value, Common.Properties.SqlServer, Common.Properties.SqlDatabase));
			this.Hash = BitConverter.ToString(this.bytes).Replace("-", ""); ;
		}
        public RetryableFileWriter(int bufferSize, Encoding encoding, IRetryableFileOpener retryableFileOpener, IHasher hasher)
        {
            BufferSize = bufferSize;
			Encoding = encoding;
            RetryableFileOpener = retryableFileOpener;
            Hasher = hasher;
        }
示例#9
0
		public void TestFixtureSetUp()
		{
			hasher = new SHA1Hasher();
			instances = new MemcachedInstances(100, Common.Properties.MainCacheServerIPEndPoints);
			mc = new MemcachedClient(instances, hasher);
			
		}
示例#10
0
        public ReadIndex(IPublisher bus,
                         int initialReaderCount,
                         int maxReaderCount,
                         Func<ITransactionFileReader> readerFactory,
                         ITableIndex tableIndex,
                         IHasher hasher,
                         ILRUCache<string, StreamCacheInfo> streamInfoCache,
                         bool additionalCommitChecks,
                         int metastreamMaxCount)
        {
            Ensure.NotNull(bus, "bus");
            Ensure.Positive(initialReaderCount, "initialReaderCount");
            Ensure.Positive(maxReaderCount, "maxReaderCount");
            if (initialReaderCount > maxReaderCount)
                throw new ArgumentOutOfRangeException("initialReaderCount", "initialReaderCount is greater than maxReaderCount.");
            Ensure.NotNull(readerFactory, "readerFactory");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(streamInfoCache, "streamInfoCache");
            Ensure.Positive(metastreamMaxCount, "metastreamMaxCount");

            _tableIndex = tableIndex;
            _hasher = hasher;
            _bus = bus;
            _streamInfoCache = streamInfoCache;

            _readers = new ObjectPool<ITransactionFileReader>("ReadIndex readers pool", initialReaderCount, maxReaderCount, readerFactory);

            _additionalCommitChecks = additionalCommitChecks;
            _metastreamMetadata = new StreamMetadata(metastreamMaxCount, null, null, null);
        }
        public EmbeddedResourceEntityResponder(ICacheManager cacheManager, IMimeTyper mimeTyper, IHasher hasher, long maxFileSizeToServe, int bufferSize, MimeSettingProvider mimeSettingProvider, Assembly assembly, string resourcePath)
        {
            _assembly = assembly;
            _resourcePath = resourcePath;

            ResourcePath = string.Format("{0}.{1}", assembly.GetName().Name, resourcePath.Replace("/", "."));
            ResourceExtension = Path.GetExtension(ResourcePath);

            var version = _assembly.GetName().Version;
            ResourceLastModified = new DateTime(2000, 1, 1)
                .AddDays(version.Build)
                .AddSeconds(version.Revision * 2)
                .ToUniversalTime();

            using (var bodyStream = assembly.GetManifestResourceStream(ResourcePath))
            {
                if (bodyStream != null)
                {
                    ResourceSize = (int)bodyStream.Length;
                }
            }

            MimeSetting = mimeSettingProvider.GetSetting(ResourceExtension.ToLower());
            BufferSize = bufferSize;
            MaxFileSizeToServe = maxFileSizeToServe;
            Hasher = hasher;
            MimeTyper = mimeTyper;
            CacheManager = cacheManager;
        }
示例#12
0
 public CssControl()
 {
     QuerystringKeyName = CurrentCrusherConfiguration.Current.QuerystringKeyName;
     CssGroups = CurrentCrusherConfiguration.Current.CssGroups;
     RetryableFileOpener = new RetryableFileOpener();
     Hasher = new Hasher(RetryableFileOpener);
 }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            _lowHasher = new XXHashUnsafe();
            _highHasher = new Murmur3AUnsafe();
            _tableIndex = new TableIndex(PathName, _lowHasher, _highHasher,
                                         () => new HashListMemTable(version: _ptableVersion, maxSize: 40),
                                         () => { throw new InvalidOperationException(); },
                                         _ptableVersion,
                                         maxSizeForMemory: 20);
            _tableIndex.Initialize(long.MaxValue);

            _tableIndex.Add(0, "0xDEAD", 0, 0xFF00);
            _tableIndex.Add(0, "0xDEAD", 1, 0xFF01); 
                            
            _tableIndex.Add(0, "0xJEEP", 0, 0xFF00);
            _tableIndex.Add(0, "0xJEEP", 1, 0xFF01);
                             
            _tableIndex.Add(0, "0xABBA", 0, 0xFF00);
            _tableIndex.Add(0, "0xABBA", 1, 0xFF01); 
            _tableIndex.Add(0, "0xABBA", 2, 0xFF02);
            _tableIndex.Add(0, "0xABBA", 3, 0xFF03); 
                             
            _tableIndex.Add(0, "0xDEAD", 0, 0xFF10);
            _tableIndex.Add(0, "0xDEAD", 1, 0xFF11); 
                             
            _tableIndex.Add(0, "0xADA", 0, 0xFF00);
        }
示例#14
0
 public VerificationManager(IVerificationFacade verificationFacade, IHasher hasher, IResultParser resultParser, IPayExSettings payExSettings)
 {
     _verificationFacade = verificationFacade;
     _hasher = hasher;
     _resultParser = resultParser;
     _payExSettings = payExSettings;
 }
示例#15
0
 protected BundleBase(IFileWriterFactory fileWriterFactory, IFileReaderFactory fileReaderFactory, IDebugStatusReader debugStatusReader, ICurrentDirectoryWrapper currentDirectoryWrapper, IHasher hasher)
 {
     this.fileWriterFactory = fileWriterFactory;
     this.fileReaderFactory = fileReaderFactory;
     this.debugStatusReader = debugStatusReader;
     this.currentDirectoryWrapper = currentDirectoryWrapper;
     this.hasher = hasher;
 }
 private StaticFileManager()
 {
     _retryableFileOpener = new RetryableFileOpener();
     _mimeTyper = new MimeTyper();
     _hasher = new Hasher(_retryableFileOpener);
     _httpRequestHeaderHelper = new HttpRequestHeaderHelper();
     _fileEntitySettingProvider = new FileEntitySettingProvider();
 }
示例#17
0
        //----------------------------------------------------------------------------
        // Basic sanity checks:
        //     - A hash function should not be reading outside the bounds of the key.
        //     - Flipping a bit of a key should, with overwhelmingly high probability, result in a different hash.
        //     - Hashing the same key twice should always produce the same result.
        //     - The memory alignment of the key should not affect the hash result.
        public static bool SanityTest(IHasher hasher)
        {
            var rnd = new Random(883741);

            bool result = true;

            const int reps = 10;
            const int keymax = 256;
            const int pad = 16;
            const int buflen = keymax + pad*3;
  
            byte[] buffer1 = new byte[buflen];
            byte[] buffer2 = new byte[buflen];
            //----------
            for (int irep = 0; irep < reps; irep++)
            {
                if (irep % (reps/10) == 0) Console.Write(".");

                for (int len = 4; len <= keymax; len++)
                {
                    for(int offset = pad; offset < pad*2; offset++)
                    {
//                        byte* key1 = &buffer1[pad];
//                        byte* key2 = &buffer2[pad+offset];

                        rnd.NextBytes(buffer1);
                        rnd.NextBytes(buffer2);

                        //memcpy(key2, key1, len);
                        Buffer.BlockCopy(buffer2, pad + offset, buffer1, pad, len);

                        // hash1 = hash(key1, len, 0)
                        var hash1 = hasher.Hash(buffer1, pad, (uint)len, 0);

                        for(int bit = 0; bit < (len * 8); bit++)
                        {
                            // Flip a bit, hash the key -> we should get a different result.
                            //Flipbit(key2,len,bit);
                            Flipbit(buffer2, pad + offset, len, bit);
                            var hash2 = hasher.Hash(buffer2, pad + offset, (uint)len, 0);

                            if (hash1 == hash2)
                                result = false;

                            // Flip it back, hash again -> we should get the original result.
                            //flipbit(key2,len,bit);
                            Flipbit(buffer2, pad + offset, len, bit);
                            //hash(key2, len, 0, hash2);
                            hash2 = hasher.Hash(buffer2, pad + offset, (uint)len, 0);

                            if (hash1 != hash2)
                                result = false;
                        }
                    }
                }
            }
            return result;
        }
示例#18
0
 private CrusherHelper()
 {
     CacheManager = new HttpCacheManager();
     QuerystringKeyName = CurrentCrusherConfiguration.Current.QuerystringKeyName;
     CssGroups = CurrentCrusherConfiguration.Current.CssGroups;
     JsGroups = CurrentCrusherConfiguration.Current.JsGroups;
     RetryableFileOpener = new RetryableFileOpener();
     Hasher = new Hasher(RetryableFileOpener);
 }
		/// <summary>
		/// ctor the Mighty
		/// </summary>
		public DefaultOAuthService(IFacebookConnectService facebookService, IBrewgrRepository repository, IHasher hasher, IUserService userService)
		{
			this.FacebookService = facebookService;
			this.Repository = repository;
			this.Hasher = hasher;
			this.UserService = userService;

			Mapper.CreateMap<OAuthUserInfo, User>();
		}
示例#20
0
 public IndexCommitter(IPublisher bus, IIndexBackend backend, IIndexReader indexReader,
                       ITableIndex tableIndex, IHasher hasher, bool additionalCommitChecks)
 {
     _bus = bus;
     _backend = backend;
     _indexReader = indexReader;
     _tableIndex = tableIndex;
     _hasher = hasher;
     _additionalCommitChecks = additionalCommitChecks;
 }
示例#21
0
 private StaticFileManager()
 {
     _cacheManager = new HttpCacheManager();
     _retryableFileOpener = new RetryableFileOpener();
     _mimeTyper = new MimeTyper(_cacheManager);
     _hasher = new Md5Hasher(_retryableFileOpener);
     _embeddedResourceLoader = new EmbeddedResourceLoader();
     _httpRequestHeaderHelper = new HttpRequestHeaderHelper();
     _mimeSettingProvider = new MimeSettingProvider();
 }
示例#22
0
 public FileEntity(IRetryableFileOpener retryableFileOpener, IMimeTyper mimeTyper, IHasher hasher, long maxFileSizeToServe, int bufferSize, FileInfo fileInfo, FileEntitySetting fileEntitySetting)
 {
     RetryableFileOpener = retryableFileOpener;
     MimeTyper = mimeTyper;
     Hasher = hasher;
     BufferSize = bufferSize;
     MaxFileSizeToServe = maxFileSizeToServe;
     FileInfo = fileInfo;
     FileEntitySetting = fileEntitySetting;
 }
 public FileEntityResponder(ICacheManager cacheManager, IRetryableFileOpener retryableFileOpener, IMimeTyper mimeTyper, IHasher hasher, long maxFileSizeToServe, int bufferSize, MimeSettingProvider mimeSettingProvider, FileInfo fileInfo)
 {
     CacheManager = cacheManager;
     RetryableFileOpener = retryableFileOpener;
     MimeTyper = mimeTyper;
     Hasher = hasher;
     BufferSize = bufferSize;
     MaxFileSizeToServe = maxFileSizeToServe;
     FileInfo = fileInfo;
     MimeSetting = mimeSettingProvider.GetSetting(fileInfo);
 }
示例#24
0
 public TestHarnessBuilder(
     IReferenceProcessor referenceProcessor,
     IFileSystemWrapper fileSystem,
     IFileProbe fileProbe,
     IHasher hasher)
 {
     this.referenceProcessor = referenceProcessor;
     this.fileSystem = fileSystem;
     this.fileProbe = fileProbe;
     this.hasher = hasher;
 }
        public AccountValidatorTests()
        {
            context = new TestingContext();
            hasher = Substitute.For<IHasher>();
            hasher.VerifyPassword(Arg.Any<String>(), Arg.Any<String>()).Returns(true);

            validator = new AccountValidator(new UnitOfWork(context), hasher);
            validator.ModelState = new ModelStateDictionary();

            TearDownData();
            SetUpData();
        }
        public AccountValidatorTests()
        {
            context = new TestingContext();
            hasher = Substitute.For<IHasher>();
            hasher.VerifyPassword(Arg.Any<String>(), Arg.Any<String>()).Returns(true);

            context.DropData();
            SetUpData();

            validator = new AccountValidator(new UnitOfWork(context), hasher);
            validator.CurrentAccountId = account.Id;
        }
示例#27
0
        public IndexReader(IIndexBackend backend, IHasher hasher, ITableIndex tableIndex, StreamMetadata metastreamMetadata)
        {
            Ensure.NotNull(backend, "backend");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(metastreamMetadata, "metastreamMetadata");

            _backend = backend;
            _hasher = hasher;
            _tableIndex = tableIndex;
            _metastreamMetadata = metastreamMetadata;
        }
示例#28
0
        public IndexReader(IIndexCache cache, IHasher hasher, ITableIndex tableIndex, StreamMetadata metastreamMetadata)
        {
            Ensure.NotNull(cache, "backend");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(metastreamMetadata, "metastreamMetadata");

            _cache = cache;
            _hasher = hasher;
            _tableIndex = tableIndex;
            _metastreamMetadata = metastreamMetadata;
        }
示例#29
0
        public AccountServiceTests()
        {
            context     = TestingContext.Create();
            hasher      = Substitute.For <IHasher>();
            httpContext = new DefaultHttpContext();
            service     = new AccountService(new UnitOfWork(TestingContext.Create()), hasher);
            hasher.HashPassword(Arg.Any <String>()).Returns(info => $"{info.Arg<String>()}Hashed");

            context.Drop().Add(account = ObjectsFactory.CreateAccount(0));
            context.SaveChanges();

            service.CurrentAccountId = account.Id;
        }
示例#30
0
 public TestHarnessBuilder(
     IReferenceProcessor referenceProcessor,
     IFileSystemWrapper fileSystem,
     IFileProbe fileProbe,
     IHasher hasher,
     IUrlBuilder urlBuilder)
 {
     this.urlBuilder         = urlBuilder;
     this.referenceProcessor = referenceProcessor;
     this.fileSystem         = fileSystem;
     this.fileProbe          = fileProbe;
     this.hasher             = hasher;
 }
示例#31
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FileSystemScriptProvider" /> class.
 /// </summary>
 /// <param name="directoryPath">Path to SQL upgrade scripts</param>
 /// <param name="options">Different options for the file system script provider</param>
 /// <param name="sqlScriptOptions">The sql script options</param>
 /// <param name="hasher">The hasher.</param>
 /// <exception cref="ArgumentNullException">options</exception>
 public FileSystemScriptProvider(string directoryPath, FileSystemScriptOptions options, SqlScriptOptions sqlScriptOptions, IHasher hasher)
 {
     if (options == null)
     {
         throw new ArgumentNullException("options");
     }
     this.directoryPath    = directoryPath;
     this.filter           = options.Filter;
     this.encoding         = options.Encoding;
     this.options          = options;
     this.sqlScriptOptions = sqlScriptOptions;
     this.hasher           = hasher;
 }
示例#32
0
        public AccountServiceTests()
        {
            context = new TestingContext();
            hasher = Substitute.For<IHasher>();
            hasher.HashPassword(Arg.Any<String>()).Returns(info => info.Arg<String>() + "Hashed");

            context.DropData();
            SetUpData();

            Authorization.Provider = Substitute.For<IAuthorizationProvider>();
            service = new AccountService(new UnitOfWork(context), hasher);
            service.CurrentAccountId = account.Id;
        }
示例#33
0
        public AccountServiceTests()
        {
            context = new TestingContext();
            hasher  = Substitute.For <IHasher>();
            authorizationProvider = Substitute.For <IAuthorizationProvider>();
            hasher.HashPassword(Arg.Any <String>()).Returns(info => info.Arg <String>() + "Hashed");

            context.DropData();
            SetUpData();

            service = new AccountService(new UnitOfWork(context), hasher, authorizationProvider);
            service.CurrentAccountId = account.Id;
        }
示例#34
0
        public TFChunkScavenger(TFChunkDb db, ITableIndex tableIndex, IHasher hasher, IReadIndex readIndex, long?maxChunkDataSize = null)
        {
            Ensure.NotNull(db, "db");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(readIndex, "readIndex");

            _db               = db;
            _tableIndex       = tableIndex;
            _hasher           = hasher;
            _readIndex        = readIndex;
            _maxChunkDataSize = maxChunkDataSize ?? db.Config.ChunkSize;
        }
示例#35
0
        public TFChunkScavenger(TFChunkDb db, ITableIndex tableIndex, IHasher hasher, IReadIndex readIndex, long? maxChunkDataSize = null)
        {
            Ensure.NotNull(db, "db");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(readIndex, "readIndex");
 
            _db = db;
            _tableIndex = tableIndex;
            _hasher = hasher;
            _readIndex = readIndex;
            _maxChunkDataSize = maxChunkDataSize ?? db.Config.ChunkSize;
        }
		public override async Task TestFixtureSetUp() {
			await base.TestFixtureSetUp();

			_indexDir = PathName;
			var fakeReader = new TFReaderLease(new FakeIndexReader());
			_lowHasher = new XXHashUnsafe();
			_highHasher = new Murmur3AUnsafe();
			_tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
				() => new HashListMemTable(PTableVersions.IndexV1, maxSize: 5),
				() => fakeReader,
				PTableVersions.IndexV1,
				5, Constants.PTableMaxReaderCountDefault,
				maxSizeForMemory: 5 + _extraStreamHashesAtBeginning + _extraStreamHashesAtEnd,
				maxTablesPerLevel: 2);
			_tableIndex.Initialize(long.MaxValue);

			Assert.Greater(_lowHasher.Hash("abcd"), _lowHasher.Hash("LPN-FC002_LPK51001"));
			for (int i = 0; i < _extraStreamHashesAtBeginning; i++) {
				_tableIndex.Add(1, "abcd", i, i + 1);
			}

			Assert.Less(_lowHasher.Hash("wxyz"), _lowHasher.Hash("LPN-FC002_LPK51001"));
			for (int i = 0; i < _extraStreamHashesAtEnd; i++) {
				_tableIndex.Add(1, "wxyz", i, i + 1);
			}

			_tableIndex.Add(1, "LPN-FC002_LPK51001", 0, 1);
			_tableIndex.Add(1, "account--696193173", 0, 2);
			_tableIndex.Add(1, "LPN-FC002_LPK51001", 1, 3);
			_tableIndex.Add(1, "account--696193173", 1, 4);
			_tableIndex.Add(1, "LPN-FC002_LPK51001", 2, 5);

			_tableIndex.Close(false);

			_tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
				() => new HashListMemTable(_ptableVersion, maxSize: 5),
				() => fakeReader,
				_ptableVersion,
				5, Constants.PTableMaxReaderCountDefault,
				maxSizeForMemory: 5,
				maxTablesPerLevel: 2);
			_tableIndex.Initialize(long.MaxValue);

			_tableIndex.Add(1, "account--696193173", 2, 6);
			_tableIndex.Add(1, "LPN-FC002_LPK51001", 3, 7);
			_tableIndex.Add(1, "account--696193173", 3, 8);
			_tableIndex.Add(1, "LPN-FC002_LPK51001", 4, 9);
			_tableIndex.Add(1, "account--696193173", 4, 10);

			await Task.Delay(500);
		}
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            _indexDir = PathName;

            var fakeReader  = new TFReaderLease(new FakeIndexReader());
            int readerCount = 0;

            _lowHasher  = new XXHashUnsafe();
            _highHasher = new Murmur3AUnsafe();
            _tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
                                         () => new HashListMemTable(PTableVersions.IndexV4, maxSize: 5),
                                         () =>
            {
                readerCount++;
                if (readerCount < 4)    // One for each table add.
                {
                    return(fakeReader);
                }

                throw new Exception("Expected exception");
            },
                                         PTableVersions.IndexV4,
                                         maxSizeForMemory: 2,
                                         maxTablesPerLevel: 5);
            _tableIndex.Initialize(long.MaxValue);

            _tableIndex.Add(1, "testStream-1", 0, 0);
            _tableIndex.Add(1, "testStream-1", 1, 100);
            _tableIndex.Add(1, "testStream-1", 2, 200);
            _tableIndex.Add(1, "testStream-1", 3, 300);
            _tableIndex.Add(1, "testStream-1", 4, 400);
            _tableIndex.Add(1, "testStream-1", 5, 500);

            _log = new FakeTFScavengerLog();
            Assert.That(() => _tableIndex.Scavenge(_log, CancellationToken.None), Throws.Exception.With.Message.EqualTo("Expected exception"));

            // Check it's loadable still.
            _tableIndex.Close(false);

            _tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
                                         () => new HashListMemTable(PTableVersions.IndexV4, maxSize: 5),
                                         () => fakeReader,
                                         PTableVersions.IndexV4,
                                         maxSizeForMemory: 2,
                                         maxTablesPerLevel: 5);

            _tableIndex.Initialize(long.MaxValue);
        }
示例#38
0
        private CrusherManager()
        {
            _crusherConfiguration = CurrentCrusherConfiguration.Current;

            _retryableFileOpener = new RetryableFileOpener();
            _hasher = new Md5Hasher(_retryableFileOpener);
            _retryableFileWriter = new RetryableFileWriter(BufferSize, _encoding, _retryableFileOpener, _hasher);
            _pathProvider        = new PathProvider();

            _cacheManager = new HttpCacheManager();
            _fileMetaData = new MultiFileMetaData(_retryableFileOpener, _retryableFileWriter);

            InitManager();
        }
示例#39
0
        public static string Hash([NotNull] this IHasher hasher, [NotNull] string content)
        {
            if (hasher == null)
            {
                throw new ArgumentNullException(nameof(hasher));
            }

            if (content == null)
            {
                throw new ArgumentNullException(nameof(content));
            }

            return(hasher.Hash(Encoding.UTF8.GetBytes(content.Normalize())));
        }
示例#40
0
 public IdentityService(UserManager <ApplicationUser> userManager, RoleManager <ApplicationRole> roleManger, IHasher hasher, ITokenHandler tokenHandler, IMessagerService messager, IStringLocalizer <SharedResources> localizer, IUnitOfWork unitOfWork, IUserDetectionService userDetectionService, IMapper mapper, IHostEnvironment _environment, ILogger <IdentityService> logger)
 {
     this.userManager          = userManager;
     this.roleManger           = roleManger;
     this.hasher               = hasher;
     this.tokenHandler         = tokenHandler;
     this.messager             = messager;
     this.localizer            = localizer;
     this.unitOfWork           = unitOfWork;
     this.userDetectionService = userDetectionService;
     this.mapper               = mapper;
     this.environment          = _environment;
     this.logger               = logger;
 }
示例#41
0
 table_index_when_merging_upgrading_to_64bit_if_single_stream_entry_doesnt_exist_drops_entry_and_carries_on(
     IHasher <TStreamId> lowHasher,
     IHasher <TStreamId> highHasher,
     TStreamId streamId1,
     TStreamId streamId2,
     TStreamId streamId3)
 {
     _ptableVersion = PTableVersions.IndexV2;
     _lowHasher     = lowHasher;
     _highHasher    = highHasher;
     _streamId1     = streamId1;
     _streamId2     = streamId2;
     _streamId3     = streamId3;
 }
示例#42
0
 public IndexWriter(IPublisher bus, ITableIndex tableIndex, IHasher hasher, IIndexCache indexCache, IIndexReader indexReader, bool additionalCommitChecks)
 {
     Ensure.NotNull(indexCache, "indexBackend");
     Ensure.NotNull(indexReader, "indexReader");
     Ensure.NotNull(bus, "bus");
     Ensure.NotNull(tableIndex, "tableIndex");
     Ensure.NotNull(hasher, "hasher");
     _bus                    = bus;
     _tableIndex             = tableIndex;
     _hasher                 = hasher;
     _indexCache             = indexCache;
     _indexReader            = indexReader;
     _additionalCommitChecks = additionalCommitChecks;
 }
 public EntryPointPacketHandler(IDao <CharacterDto, long> characterDao,
                                IDao <AccountDto, long> accountDao,
                                IDao <MateDto, long> mateDao, ILogger logger, IAuthHttpClient authHttpClient,
                                IConnectedAccountHttpClient connectedAccountHttpClient,
                                IChannelHttpClient channelHttpClient, IHasher hasher)
 {
     _characterDao               = characterDao;
     _accountDao                 = accountDao;
     _mateDao                    = mateDao;
     _logger                     = logger;
     _authHttpClient             = authHttpClient;
     _connectedAccountHttpClient = connectedAccountHttpClient;
     _channelHttpClient          = channelHttpClient;
 }
示例#44
0
        public void HashingMethods_ProducesValidHashFor_Array(IHasher hashFunc)
        {
            var sourceNames = new[]
            {
                "basic_sprite",
                "audio",
                "prefabs",
                "shaderwithcollection",
                "multi_sprite_packed"
            };

            // Use (object) cast so Calculate doesn't expand the array and use params object[] objects case
            Assert.AreEqual(TestResults[hashFunc.HashType()][(int)TestIndex.Array], hashFunc.Calculate((object)sourceNames).ToString());
        }
示例#45
0
        public void HashingMethods_ProducesValidHashFor_UnicodeStrings(IHasher hashFunc)
        {
            // It might not look it at first glance, but the below 2 strings are indeed different!
            // The ASCII byte representation of both of these strings is identical, which was causing
            // hashing methods to return identical hashes as we had used ASCII for everything.
            string  str1  = "[기본]양손무기";
            string  str2  = "[기본]한손무기";
            RawHash hash1 = hashFunc.Calculate(str1);
            RawHash hash2 = hashFunc.Calculate(str2);

            Assert.AreNotEqual(str1, str2);
            Assert.AreNotEqual(hash1, hash2);
            Assert.AreEqual(TestResults[hashFunc.HashType()][(int)TestIndex.Unicode], hash1.ToString());
        }
示例#46
0
        public TableIndex(string directory,
                          IHasher lowHasher,
                          IHasher highHasher,
                          Func <IMemTable> memTableFactory,
                          Func <TFReaderLease> tfReaderFactory,
                          byte ptableVersion,
                          int maxSizeForMemory      = 1000000,
                          int maxTablesPerLevel     = 4,
                          bool additionalReclaim    = false,
                          bool inMem                = false,
                          bool skipIndexVerify      = false,
                          int indexCacheDepth       = 16,
                          int initializationThreads = 1)
        {
            Ensure.NotNullOrEmpty(directory, "directory");
            Ensure.NotNull(memTableFactory, "memTableFactory");
            Ensure.NotNull(lowHasher, "lowHasher");
            Ensure.NotNull(highHasher, "highHasher");
            Ensure.NotNull(tfReaderFactory, "tfReaderFactory");
            Ensure.Positive(initializationThreads, "initializationThreads");

            if (maxTablesPerLevel <= 1)
            {
                throw new ArgumentOutOfRangeException("maxTablesPerLevel");
            }

            if (indexCacheDepth > 28 || indexCacheDepth < 8)
            {
                throw new ArgumentOutOfRangeException("indexCacheDepth");
            }

            _directory             = directory;
            _memTableFactory       = memTableFactory;
            _tfReaderFactory       = tfReaderFactory;
            _fileNameProvider      = new GuidFilenameProvider(directory);
            _maxSizeForMemory      = maxSizeForMemory;
            _maxTablesPerLevel     = maxTablesPerLevel;
            _additionalReclaim     = additionalReclaim;
            _inMem                 = inMem;
            _skipIndexVerify       = ShouldForceIndexVerify() ? false: skipIndexVerify;
            _indexCacheDepth       = indexCacheDepth;
            _initializationThreads = initializationThreads;
            _ptableVersion         = ptableVersion;
            _awaitingMemTables     = new List <TableItem> {
                new TableItem(_memTableFactory(), -1, -1)
            };

            _lowHasher  = lowHasher;
            _highHasher = highHasher;
        }
示例#47
0
        public override async Task TestFixtureSetUp()
        {
            await base.TestFixtureSetUp();

            _indexDir = PathName;

            var cancellationTokenSource = new CancellationTokenSource();

            var fakeReader = new TFReaderLease(new FakeIndexReader(l => {
                cancellationTokenSource.Cancel();
                return(true);
            }));

            _lowHasher  = new XXHashUnsafe();
            _highHasher = new Murmur3AUnsafe();
            _tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
                                         () => new HashListMemTable(PTableVersions.IndexV4, maxSize: 5),
                                         () => fakeReader,
                                         PTableVersions.IndexV4,
                                         5, Constants.PTableMaxReaderCountDefault,
                                         maxSizeForMemory: 2,
                                         maxTablesPerLevel: 5);
            _tableIndex.Initialize(long.MaxValue);

            _tableIndex.Add(1, "testStream-1", 0, 0);
            _tableIndex.Add(1, "testStream-1", 1, 100);
            _tableIndex.Add(1, "testStream-1", 2, 200);
            _tableIndex.Add(1, "testStream-1", 3, 300);
            _tableIndex.Add(1, "testStream-1", 4, 400);
            _tableIndex.Add(1, "testStream-1", 5, 500);

            _log = new FakeTFScavengerLog();


            Assert.That(() => _tableIndex.Scavenge(_log, cancellationTokenSource.Token),
                        Throws.InstanceOf <OperationCanceledException>());

            // Check it's loadable still.
            _tableIndex.Close(false);

            _tableIndex = new TableIndex(_indexDir, _lowHasher, _highHasher,
                                         () => new HashListMemTable(PTableVersions.IndexV4, maxSize: 5),
                                         () => fakeReader,
                                         PTableVersions.IndexV4,
                                         5, Constants.PTableMaxReaderCountDefault,
                                         maxSizeForMemory: 2,
                                         maxTablesPerLevel: 5);

            _tableIndex.Initialize(long.MaxValue);
        }
示例#48
0
 public AuthService(
     IMongoManager mongoManager,
     ILogger <AuthService> logger,
     IHasher hasher,
     IJwtSigningEncodingKey signingEncodingKey,
     IJwtEncryptingEncodingKey encryptingEncodingKey
     )
 {
     _mongoManager          = mongoManager;
     _logger                = logger;
     _hasher                = hasher;
     _signingEncodingKey    = signingEncodingKey;
     _encryptingEncodingKey = encryptingEncodingKey;
 }
示例#49
0
        public DataImporter(IImportRepository importRepo, IHasher hasher, IEncryptor encryptor)
            : base(hasher, encryptor)
        {
            this.IsDisposed = false;
            ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["PrismDatabase"];

            HibernateUtil.Initialize(settings.ConnectionString, true);
            this.importRepo = Program.Kernel.Get <IImportRepository>();

            progressMessage = Program.LanguageManager.GetString(StringResources.Import_Progress_Message_Counter) + " {0} / {1} " + ". " +
                              Program.LanguageManager.GetString(StringResources.Import_Progress_Message_Type) + " {2}";

            currentStation = (importRepo.ProjectRepo.GetSingle()).WorkstationType;
        }
示例#50
0
 public IdentityService(IUserRepository userRepository,
                        IHasher hasher,
                        IJwtHandler jwtHandler,
                        IRefreshTokenRepository refreshTokenRepository,
                        IUserFactory userFactory,
                        IEventDispatcher eventDispatcher)
 {
     _userRepository         = userRepository;
     _hasher                 = hasher;
     _jwtHandler             = jwtHandler;
     _refreshTokenRepository = refreshTokenRepository;
     _userFactory            = userFactory;
     _eventDispatcher        = eventDispatcher;
 }
示例#51
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="env"></param>
 /// <param name="config"></param>
 /// <param name="fileSystemHelper"></param>
 /// <param name="hasher"></param>
 /// <param name="bundleManager"></param>
 /// <param name="urlManager"></param>
 public SmidgeController(
     IApplicationEnvironment env,
     ISmidgeConfig config,
     FileSystemHelper fileSystemHelper,
     IHasher hasher,
     BundleManager bundleManager,
     IUrlManager urlManager)
 {
     _urlManager       = urlManager;
     _hasher           = hasher;
     _env              = env;
     _config           = config;
     _fileSystemHelper = fileSystemHelper;
     _bundleManager    = bundleManager;
 }
示例#52
0
 public Scheduler(int jobParallelism, IItemCache itemCache, bool rejectCachedFailures)
 {
     targets                   = new HashSet <BuildObject>();
     waitIndex                 = new WaitIndex();
     nuObjContents             = BuildEngine.theEngine.getNuObjContents();
     resultCache               = new ResultCache(itemCache, nuObjContents);
     unrecordableFailures      = new Dictionary <IVerb, Disposition>();
     this.hasher               = BuildEngine.theEngine.getHasher();
     verbToposorter            = new VerbToposorter(hasher);
     asyncRunner               = new AsyncRunner(verbToposorter, jobParallelism);
     resolvedVerbs             = new HashSet <IVerb>();
     completedVerbs            = new HashSet <IVerb>();
     depCache                  = new DependencyCache();
     this.rejectCachedFailures = rejectCachedFailures;
 }
示例#53
0
 public UserService(
     //DataContext dataContext,
     IUserRepository userRepository,
     IHasher hasher,
     IHttpContextAccessor httpContextAccessor,
     IOptions <AppSettings> appSettings,
     ILoggerFactory loggerFactory)
 {
     //this.dataContext = dataContext;
     this.userRepository      = userRepository;
     this.hasher              = hasher;
     this.httpContextAccessor = httpContextAccessor;
     this.appSettings         = appSettings.Value;
     this.logger              = loggerFactory.CreateLogger <UserService>();
 }
示例#54
0
 protected BundleBase(IFileWriterFactory fileWriterFactory, IFileReaderFactory fileReaderFactory, IDebugStatusReader debugStatusReader, IDirectoryWrapper directoryWrapper, IHasher hasher, IBundleCache bundleCache)
 {
     this.fileWriterFactory = fileWriterFactory;
     this.fileReaderFactory = fileReaderFactory;
     this.debugStatusReader = debugStatusReader;
     this.directoryWrapper  = directoryWrapper;
     this.hasher            = hasher;
     bundleState            = new BundleState
     {
         DebugPredicate = Configuration.Instance.DefaultDebugPredicate(),
         ShouldRenderOnlyIfOutputFileIsMissing = false,
         HashKeyName = "r"
     };
     this.bundleCache = bundleCache;
 }
示例#55
0
        public StorageScavenger(TFChunkDb db, ITableIndex tableIndex, IHasher hasher,
                                IReadIndex readIndex, bool alwaysKeepScavenged, bool mergeChunks)
        {
            Ensure.NotNull(db, "db");
            Ensure.NotNull(tableIndex, "tableIndex");
            Ensure.NotNull(hasher, "hasher");
            Ensure.NotNull(readIndex, "readIndex");

            _db                  = db;
            _tableIndex          = tableIndex;
            _hasher              = hasher;
            _readIndex           = readIndex;
            _alwaysKeepScavenged = alwaysKeepScavenged;
            _mergeChunks         = mergeChunks;
        }
示例#56
0
        public IEnumerable <BuildObject> getIncludes(BuildObject beatsrc)
        {
            IHasher hasher = BuildEngine.theEngine.getHasher();
            OrderPreservingSet <BuildObject> includes = new OrderPreservingSet <BuildObject>();

            //-BuildObject ifcFile = includePathSearcher.search(beatsrc.getFileNameWithoutExtension(), ModPart.Ifc);
            //-BuildObject impFile = includePathSearcher.search(beatsrc.getFileNameWithoutExtension(), ModPart.Imp);
            BuildObject ifcFile = hasher.search(includePathSearcher, beatsrc.getFileNameWithoutExtension(), ModPart.Ifc);
            BuildObject impFile = hasher.search(includePathSearcher, beatsrc.getFileNameWithoutExtension(), ModPart.Imp);

            Util.Assert(ifcFile.Equals(beatsrc) || impFile.Equals(beatsrc));
            includes.AddRange(directIncludes.getBasmIncludes(ifcFile));
            includes.AddRange(directIncludes.getBasmIncludes(impFile));
            return(includes);
        }
示例#57
0
 /// <summary>
 /// Initializes an instance of the <see cref="UserService"/> class.
 /// </summary>
 /// <param name="userRepository">The user repository.</param>
 /// <param name="credentialRepository">The credential repository.</param>
 /// <param name="credentialTypeRepository">The credential type repository.</param>
 /// <param name="hasher">The hasher.</param>
 /// <param name="saltGenerator">The salt generator.</param>
 /// <param name="accessTokenService">The access token service.</param>
 public UserService(
     IRepository <User> userRepository,
     IRepository <Credential> credentialRepository,
     IRepository <CredentialType> credentialTypeRepository,
     IHasher hasher,
     ISaltGenerator saltGenerator,
     IAccessTokenService accessTokenService)
 {
     _userRepository           = userRepository;
     _credentialRepository     = credentialRepository;
     _credentialTypeRepository = credentialTypeRepository;
     _hasher             = hasher;
     _saltGenerator      = saltGenerator;
     _accessTokenService = accessTokenService;
 }
示例#58
0
        public TextHasher(Encoding encoding, IHasher hasher)
        {
            if (encoding == null)
            {
                throw new ArgumentNullException(nameof(encoding));
            }

            if (hasher == null)
            {
                throw new ArgumentNullException(nameof(hasher));
            }

            this.encoding = encoding;
            this.hasher   = hasher;
        }
示例#59
0
        private static bool ScriptIsNewOrChanged(
            SqlScript sqlScript,
            ScriptNameComparer comparer,
            IEnumerable <ExecutedSqlScript> executedScripts,
            IHasher hasher) =>
        !executedScripts.Any(
            executedScript =>
        {
            if (comparer.Equals(executedScript.Name, sqlScript.Name))
            {
                return(executedScript.Hash == null || executedScript.Hash == hasher.GetHash(sqlScript.Contents));
            }

            return(false);
        });
        public void HashRobotSpawnPoints(IHasher hasher)
        {
            var locators = ExtractRobotSpawnPoints();

            hasher.Hash(locators.Length);
            for (int i = 0, cnt = locators.Length; i < cnt; ++i)
            {
                hasher.Hash(locators[i].Pos.X);
                hasher.Hash(locators[i].Pos.Y);
                hasher.Hash(locators[i].Pos.Z);
                hasher.Hash(locators[i].Rotation.X);
                hasher.Hash(locators[i].Rotation.Y);
                hasher.Hash(locators[i].Rotation.Z);
                hasher.Hash(locators[i].Rotation.W);
            }
        }