You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2015/01/19 18:51:01 UTC

lucenenet git commit: More .NET alignment

Repository: lucenenet
Updated Branches:
  refs/heads/master eb4de4d75 -> eef038634


More .NET alignment


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/eef03863
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/eef03863
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/eef03863

Branch: refs/heads/master
Commit: eef03863458de264f09806b9833f34083d3aad87
Parents: eb4de4d
Author: Itamar Syn-Hershko <it...@code972.com>
Authored: Mon Jan 19 19:50:47 2015 +0200
Committer: Itamar Syn-Hershko <it...@code972.com>
Committed: Mon Jan 19 19:50:47 2015 +0200

----------------------------------------------------------------------
 src/Lucene.Net.Core/Store/IOContext.cs          |  6 +--
 .../Store/RateLimitedDirectoryWrapper.cs        | 42 +++++++++-----------
 src/Lucene.Net.Core/Store/RateLimiter.cs        | 17 ++++----
 3 files changed, 31 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/eef03863/src/Lucene.Net.Core/Store/IOContext.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Store/IOContext.cs b/src/Lucene.Net.Core/Store/IOContext.cs
index 458c52c..3838899 100644
--- a/src/Lucene.Net.Core/Store/IOContext.cs
+++ b/src/Lucene.Net.Core/Store/IOContext.cs
@@ -43,7 +43,7 @@ namespace Lucene.Net.Store
         /// <summary>
         /// An object of a enumerator Context type
         /// </summary>
-        public readonly Context_e Context;
+        public readonly Context_e? Context;
 
         public readonly MergeInfo MergeInfo;
 
@@ -71,7 +71,7 @@ namespace Lucene.Net.Store
             this.FlushInfo = flushInfo;
         }
 
-        public IOContext(Context_e context)
+        public IOContext(Context_e? context)
             : this(context, null)
         {
         }
@@ -89,7 +89,7 @@ namespace Lucene.Net.Store
         {
         }
 
-        private IOContext(Context_e context, MergeInfo mergeInfo)
+        private IOContext(Context_e? context, MergeInfo mergeInfo)
         {
             Debug.Assert(context != Context_e.MERGE || mergeInfo != null, "MergeInfo must not be null if context is MERGE");
             Debug.Assert(context != Context_e.FLUSH, "Use IOContext(FlushInfo) to create a FLUSH IOContext");

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/eef03863/src/Lucene.Net.Core/Store/RateLimitedDirectoryWrapper.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Store/RateLimitedDirectoryWrapper.cs b/src/Lucene.Net.Core/Store/RateLimitedDirectoryWrapper.cs
index 8ac68b1..ba7d06d 100644
--- a/src/Lucene.Net.Core/Store/RateLimitedDirectoryWrapper.cs
+++ b/src/Lucene.Net.Core/Store/RateLimitedDirectoryWrapper.cs
@@ -1,8 +1,9 @@
+using System;
+using System.Collections.Concurrent;
 using System.Diagnostics;
 
 namespace Lucene.Net.Store
 {
-    using Lucene.Net.Support;
     using System.Collections.Generic;
 
     /*
@@ -34,7 +35,7 @@ namespace Lucene.Net.Store
         // we need to be volatile here to make sure we see all the values that are set
         // / modified concurrently
         //private volatile RateLimiter[] ContextRateLimiters = new RateLimiter[Enum.GetValues(typeof(IOContext.Context_e)).Length];
-        private IDictionary<IOContext.Context_e?, RateLimiter> ContextRateLimiters = new ConcurrentHashMap<IOContext.Context_e?, RateLimiter>();
+        private readonly IDictionary<IOContext.Context_e?, RateLimiter> _contextRateLimiters = new ConcurrentDictionary<IOContext.Context_e?, RateLimiter>();
 
         public RateLimitedDirectoryWrapper(Directory wrapped)
             : base(wrapped)
@@ -44,8 +45,8 @@ namespace Lucene.Net.Store
         public override IndexOutput CreateOutput(string name, IOContext context)
         {
             EnsureOpen();
-            IndexOutput output = base.CreateOutput(name, context);
-            RateLimiter limiter = GetRateLimiter(context.Context);
+            var output = base.CreateOutput(name, context);
+            var limiter = GetRateLimiter(context.Context);
             if (limiter != null)
             {
                 return new RateLimitedIndexOutput(limiter, output);
@@ -65,10 +66,11 @@ namespace Lucene.Net.Store
             @in.Copy(to, src, dest, context);
         }
 
-        private RateLimiter GetRateLimiter(IOContext.Context_e context)
+        private RateLimiter GetRateLimiter(IOContext.Context_e? context)
         {
             Debug.Assert(context != null);
-            return ContextRateLimiters[context];
+            RateLimiter ret;
+            return _contextRateLimiters.TryGetValue(context, out ret) ? ret : null;
         }
 
         /// <summary>
@@ -89,7 +91,7 @@ namespace Lucene.Net.Store
         ///           if context is <code>null</code> </exception>
         /// <exception cref="AlreadyClosedException"> if the <seealso cref="Directory"/> is already closed
         /// @lucene.experimental </exception>
-        public void SetMaxWriteMBPerSec(double mbPerSec, IOContext.Context_e? context)
+        public void SetMaxWriteMBPerSec(double? mbPerSec, IOContext.Context_e? context)
         {
             EnsureOpen();
             if (context == null)
@@ -98,24 +100,24 @@ namespace Lucene.Net.Store
             }
             //int ord = context.ordinal();
             RateLimiter limiter;
-            ContextRateLimiters.TryGetValue(context, out limiter);
+            _contextRateLimiters.TryGetValue(context, out limiter);
 
             if (mbPerSec == null)
             {
                 if (limiter != null)
                 {
                     limiter.MbPerSec = double.MaxValue;
-                    ContextRateLimiters[context] = null;
+                    _contextRateLimiters[context] = null;
                 }
             }
             else if (limiter != null)
             {
-                limiter.MbPerSec = mbPerSec;
-                ContextRateLimiters[context] = limiter; // cross the mem barrier again
+                limiter.MbPerSec = mbPerSec.Value;
+                _contextRateLimiters[context] = limiter; // cross the mem barrier again
             }
             else
             {
-                ContextRateLimiters[context] = new RateLimiter.SimpleRateLimiter(mbPerSec);
+                _contextRateLimiters[context] = new RateLimiter.SimpleRateLimiter(mbPerSec.Value);
             }
         }
 
@@ -130,35 +132,27 @@ namespace Lucene.Net.Store
         /// allows to use the same limiter instance across several directories globally
         /// limiting IO across them.
         /// </summary>
-        /// <exception cref="IllegalArgumentException">
+        /// <exception cref="ArgumentException">
         ///           if context is <code>null</code> </exception>
         /// <exception cref="AlreadyClosedException"> if the <seealso cref="Directory"/> is already closed
         /// @lucene.experimental </exception>
         public void SetRateLimiter(RateLimiter mergeWriteRateLimiter, IOContext.Context_e context)
         {
             EnsureOpen();
-            if (context == null)
-            {
-                throw new System.ArgumentException("Context must not be null");
-            }
-            ContextRateLimiters[context] = mergeWriteRateLimiter;
+            _contextRateLimiters[context] = mergeWriteRateLimiter;
         }
 
         /// <summary>
         /// See <seealso cref="#setMaxWriteMBPerSec"/>.
         /// </summary>
-        /// <exception cref="IllegalArgumentException">
+        /// <exception cref="ArgumentException">
         ///           if context is <code>null</code> </exception>
         /// <exception cref="AlreadyClosedException"> if the <seealso cref="Directory"/> is already closed
         /// @lucene.experimental </exception>
         public double GetMaxWriteMBPerSec(IOContext.Context_e context)
         {
             EnsureOpen();
-            if (context == null)
-            {
-                throw new System.ArgumentException("Context must not be null");
-            }
-            RateLimiter limiter = GetRateLimiter(context);
+            var limiter = GetRateLimiter(context);
             return limiter == null ? 0 : limiter.MbPerSec;
         }
     }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/eef03863/src/Lucene.Net.Core/Store/RateLimiter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Store/RateLimiter.cs b/src/Lucene.Net.Core/Store/RateLimiter.cs
index 9d66c68..886bd31 100644
--- a/src/Lucene.Net.Core/Store/RateLimiter.cs
+++ b/src/Lucene.Net.Core/Store/RateLimiter.cs
@@ -52,7 +52,7 @@ namespace Lucene.Net.Store
         /// </summary>
         public class SimpleRateLimiter : RateLimiter
         {
-            internal double MbPerSec_Renamed;
+            internal double mbPerSec;
             internal double NsPerByte;
             internal long LastNS;
 
@@ -74,12 +74,15 @@ namespace Lucene.Net.Store
             {
                 set
                 {
-                    this.MbPerSec_Renamed = value;
-                    NsPerByte = 1000000000.0 / (1024 * 1024 * value);
+                    this.mbPerSec = value;
+                    if (value == 0)
+                        NsPerByte = 0;
+                    else
+                        NsPerByte = 1000000000.0 / (1024 * 1024 * value);
                 }
                 get
                 {
-                    return this.MbPerSec_Renamed;
+                    return this.mbPerSec;
                 }
             }
 
@@ -102,9 +105,9 @@ namespace Lucene.Net.Store
 
                 // TODO: this is purely instantaneous rate; maybe we
                 // should also offer decayed recent history one?
-                long targetNS = LastNS = LastNS + ((long)(bytes * NsPerByte));
+                var targetNS = LastNS = LastNS + ((long)(bytes * NsPerByte));
                 long startNS;
-                long curNS = startNS = DateTime.UtcNow.Ticks * 100 /* ns */;
+                var curNS = startNS = DateTime.UtcNow.Ticks * 100 /* ns */;
                 if (LastNS < curNS)
                 {
                     LastNS = curNS;
@@ -114,7 +117,7 @@ namespace Lucene.Net.Store
                 // enough:
                 while (true)
                 {
-                    long pauseNS = targetNS - curNS;
+                    var pauseNS = targetNS - curNS;
                     if (pauseNS > 0)
                     {
                         try