示例#1
0
 public ReplicatedTableQueryProvider(IQueryProvider innerQueryProvider, bool isConvertMode, long txnViewId, StaleViewHandling staleViewHandling)
 {
     this.innerQueryProvider = innerQueryProvider;
     this.isConvertMode      = isConvertMode;
     this.txnViewId          = txnViewId;
     this.staleViewHandling  = staleViewHandling;
 }
 public ReplicatedTableEnumerable(IEnumerable <T> collection, bool isConvertMode, long txnViewId, StaleViewHandling staleViewHandling)
 {
     _collection            = collection;
     this.isConvertMode     = isConvertMode;
     this.txnViewId         = txnViewId;
     this.staleViewHandling = staleViewHandling;
 }
示例#3
0
        internal ReplicatedTableQuery(IQueryable <TElement> innerTableQuery, bool isConvertMode, long txnViewId, StaleViewHandling staleViewHandling)
        {
            this.innerTableQuery   = innerTableQuery;
            this.isConvertMode     = isConvertMode;
            this.txnViewId         = txnViewId;
            this.staleViewHandling = staleViewHandling;

            Provider   = new ReplicatedTableQueryProvider(innerTableQuery.Provider, isConvertMode, txnViewId, staleViewHandling);
            Expression = innerTableQuery.Expression;
        }
示例#4
0
        public ReplicatedTableEnumerator(IEnumerator <T> collection, bool isConvertMode, long txnViewId, StaleViewHandling staleViewHandling)
        {
            _collection    = collection;
            this.txnViewId = txnViewId;

            switch (staleViewHandling)
            {
            case StaleViewHandling.NoThrowOnStaleView:
                SkipHigherViewIdRowsFunc = (viewId, rowViewId) => false; // NOP
                HandleStaleView          = (viewId, rowViewId) => { };   // NOP
                break;

            case StaleViewHandling.ThrowOnStaleView:
                SkipHigherViewIdRowsFunc = (viewId, rowViewId) => false;               // NOP
                HandleStaleView          = ReplicatedTable.ThrowIfViewIdNotConsistent; // throw on stale view
                break;

            case StaleViewHandling.TreatAsNotFound:
                SkipHigherViewIdRowsFunc = (viewId, rowViewId) => rowViewId > viewId; // skip row if higher viewId
                HandleStaleView          = (viewId, rowViewId) => { };                // NOP
                break;

            default:
            {
                var msg = string.Format("Unexpected value=\'{0}\' ", staleViewHandling);
                throw new Exception(msg);
            }
            }

            InitDelegates(isConvertMode);
        }