コード例 #1
0
        public DataBase(int parsersCount, IDataBaseEngine engine, ITransactionScheduler transactionScheduler)
        {
            _engineCommander      = new EngineCommander(engine);
            _transactionScheduler = transactionScheduler;
            _sqlParsers           = new ConcurrentQueue <SqlSequenceParser>();

            _parsersSemaphore = new Semaphore(parsersCount, parsersCount, "Parsers Semaphore");

            for (var i = 0; i < parsersCount; i++)
            {
                _sqlParsers.Enqueue(new SqlSequenceParser());
            }
        }
コード例 #2
0
 protected SimpleScheduledTransaction(ITransactionScheduler scheduler, IDataManagerAdoFactory factory, IsolationLevel isolationLevel) : base(factory, isolationLevel)
 {
     _scheduler = scheduler;
 }
コード例 #3
0
 /// <summary>
 /// Instantinate an <see cref="IDataTransaction"/>.
 /// This method will be called on each <see cref="IDataManager.BeginTransaction"/> call.
 /// </summary>
 public IDataTransaction DataTransaction(ITransactionScheduler scheduler, IsolationLevel isolationLevel)
 {
     return(new NotScheduledBDbTransaction(this));
 }
コード例 #4
0
 public SqlClientSimpleScheduledTransaction(ITransactionScheduler scheduler, IDataManagerAdoFactory factory, IsolationLevel isolationLevel) : base(scheduler, factory, isolationLevel)
 {
 }
コード例 #5
0
 /// <summary>
 /// Instantinate an <see cref="IDataTransaction"/>.
 /// This method will be called on each <see cref="IDataManager.BeginTransaction"/> call.
 /// </summary>
 public override IDataTransaction DataTransaction(ITransactionScheduler scheduler, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted)
 {
     return(new OracleSimpleScheduledTransaction(scheduler, this, isolationLevel));
 }
コード例 #6
0
 /// <summary>
 /// Instantinate an <see cref="IDataTransaction"/>.
 /// This method will be called on each <see cref="IDataManager.BeginTransaction"/> call.
 /// </summary>
 public IDataTransaction DataTransaction(ITransactionScheduler scheduler, IsolationLevel isolationLevel)
 {
     return(_factory.DataTransaction(scheduler, isolationLevel));
 }
コード例 #7
0
 public PostgreSqlDataTransaction(ITransactionScheduler scheduler, IDataManagerAdoFactory factory, IsolationLevel isolationLevel) : base(scheduler, factory, isolationLevel)
 {
 }
コード例 #8
0
/*
 *      /// <summary>
 *      /// Instantiate an <see cref="IDataTransaction"/>.
 *      /// This method will be called on each <see cref="IDataManager.BeginTransaction"/> call.
 *      /// </summary>
 *      public IDataTransaction DataTransaction(ITransactionScheduler scheduler, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted) {
 *          return new SimpleScheduledTransaction(scheduler, this, isolationLevel);
 * //            return new NotScheduledDataTransaction(this, isolationLevel);
 *      }
 */


        /// <summary>
        /// Instantinate an <see cref="IDataTransaction"/>.
        /// This method will be called on each <see cref="IDataManager.BeginTransaction"/> call.
        /// </summary>
        public abstract IDataTransaction DataTransaction(ITransactionScheduler scheduler, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted);
コード例 #9
0
 public override IDataTransaction DataTransaction(ITransactionScheduler scheduler, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted)
 {
     return(new PostgreSqlDataTransaction(scheduler, this, isolationLevel));
 }