Beispiel #1
0
        public QuerySession(DocumentStore store, IManagedConnection connection, IQueryParser parser, IIdentityMap identityMap, ITenant tenant)
        {
            Tenant       = tenant;
            _store       = store;
            _connection  = connection;
            _parser      = parser;
            _identityMap = identityMap;

            WriterPool = store.CreateWriterPool();
        }
        public void has_offset_reset_when_returned_to_pool_via_collection_release()
        {
            var pool   = new CharArrayTextWriter.Pool();
            var writer = pool.Lease();

            writer.Write('a');
            pool.Release(new[] { writer });

            writer.Size.ShouldBe(0);
        }
Beispiel #3
0
 public QuerySession(IDocumentStore store, IDocumentSchema schema, ISerializer serializer, IManagedConnection connection, IQueryParser parser, IIdentityMap identityMap, CharArrayTextWriter.Pool writerPool)
 {
     DocumentStore = store;
     _schema       = schema;
     _serializer   = serializer;
     _connection   = connection;
     _parser       = parser;
     _identityMap  = identityMap;
     WriterPool    = writerPool;
 }
Beispiel #4
0
        /// <summary>
        /// Creates a new DocumentStore with the supplied StoreOptions
        /// </summary>
        /// <param name="options"></param>
        public DocumentStore(StoreOptions options)
        {
            options.ApplyConfiguration();
            options.CreatePatching();
            options.Validate();
            Options = options;

            _logger = options.Logger();

            Tenancy = options.Tenancy;

            if (options.CreateDatabases != null)
            {
                IDatabaseGenerator databaseGenerator = new DatabaseGenerator();
                databaseGenerator.CreateDatabases(Tenancy, options.CreateDatabases);
            }

            Tenancy.Initialize();

            Schema = Tenancy.Schema;

            Storage = options.Storage;

            Storage.PostProcessConfiguration();

            Serializer = options.Serializer();

            if (options.UseCharBufferPooling)
            {
                _writerPool = new CharArrayTextWriter.Pool();
            }

            Advanced = new AdvancedOptions(this);

            Diagnostics = new Diagnostics(this);

            Transform = new DocumentTransforms(this, Tenancy.Default);

            options.InitialData.Each(x => x.Populate(this));

            Parser = new MartenExpressionParser(Serializer, options);

            HandlerFactory = new QueryHandlerFactory(this);

            Events = options.Events;
        }
        public void respects_pool_hierarchy()
        {
            var root = new CharArrayTextWriter.Pool();
            CharArrayTextWriter writer1, writer2;

            using (var pool = new CharArrayTextWriter.Pool(root))
            {
                writer1 = pool.Lease();
                pool.Release(writer1);
            }

            using (var pool = new CharArrayTextWriter.Pool(root))
            {
                writer2 = pool.Lease();
                pool.Release(writer2);
            }

            writer2.ShouldBe(writer1);
        }
Beispiel #6
0
        public DocumentSession(IDocumentStore store, StoreOptions options, IDocumentSchema schema,
                               ISerializer serializer, IManagedConnection connection, IQueryParser parser, IIdentityMap identityMap,
                               CharArrayTextWriter.Pool writerPool, IList <IDocumentSessionListener> localListeners)
            : base(store, schema, serializer, connection, parser, identityMap, writerPool)
        {
            _options          = options;
            _schema           = schema;
            _serializer       = serializer;
            _connection       = connection;
            _sessionListeners = _options.Listeners.Concat(localListeners).ToList();

            IdentityMap = identityMap;

            _unitOfWork = new UnitOfWork(_schema);

            if (IdentityMap is IDocumentTracker)
            {
                _unitOfWork.AddTracker(IdentityMap.As <IDocumentTracker>());
            }

            Events = new EventStore(this, schema, _serializer, _connection, _unitOfWork);
        }
Beispiel #7
0
        /// <summary>
        /// Creates a new DocumentStore with the supplied StoreOptions
        /// </summary>
        /// <param name="options"></param>
        public DocumentStore(StoreOptions options)
        {
            options.Validate();
            options.CreatePatching();

            Options = options;

            _logger = options.Logger();

            Tenancy = options.Tenancy;
            Tenancy.Initialize();

            Schema = Tenancy.Schema;

            Storage = options.Storage;

            Storage.CompileSubClasses();

            Serializer = options.Serializer();

            if (options.UseCharBufferPooling)
            {
                _writerPool = new CharArrayTextWriter.Pool();
            }

            Advanced = new AdvancedOptions(this);

            Diagnostics = new Diagnostics(this);

            Transform = new DocumentTransforms(this, Tenancy.Default);

            options.InitialData.Each(x => x.Populate(this));

            Parser = new MartenExpressionParser(Serializer, options);

            HandlerFactory = new QueryHandlerFactory(this);

            Events = options.Events;
        }