public override IdGenerator Open(File filename, int grabSize, IdType idType, System.Func <long> highId, long maxId)
        {
            Debug.Assert(_boundaries != null, "Factory needs to be initialized before usage");

            IdGenerator         generator         = @delegate.Open(filename, grabSize, idType, highId, maxId);
            IdTypeConfiguration typeConfiguration = GetIdTypeConfiguration(idType);

            if (typeConfiguration.AllowAggressiveReuse())
            {
                BufferingIdGenerator bufferingGenerator = new BufferingIdGenerator(generator);
                bufferingGenerator.Initialize(_boundaries, _safeThreshold);
                _overriddenIdGenerators[( int )idType] = bufferingGenerator;
                generator = bufferingGenerator;
            }
            return(generator);
        }
Example #2
0
        public override IdGenerator Open(File filename, IdType idType, System.Func <long> highId, long maxId)
        {
            FreeIdFilteredIdGenerator freeIdFilteredIdGenerator = new FreeIdFilteredIdGenerator(@delegate.Open(filename, idType, highId, maxId), _freeIdCondition);

            _delegatedGenerator[idType] = freeIdFilteredIdGenerator;
            return(freeIdFilteredIdGenerator);
        }