You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/08/02 19:52:17 UTC

[31/51] [partial] hbase-site git commit: Published site at 613d831429960348dc42c3bdb6ea5d31be15c81c.

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/7cf6034b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html
index e50f682..7d5287a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.html
@@ -33,37 +33,55 @@
 <span class="sourceLineNo">025</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.25"></a>
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>/**<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * This class is used to manage the identifiers for<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * {@link CacheableDeserializer}<a name="line.29"></a>
-<span class="sourceLineNo">030</span> */<a name="line.30"></a>
-<span class="sourceLineNo">031</span>@InterfaceAudience.Private<a name="line.31"></a>
-<span class="sourceLineNo">032</span>public class CacheableDeserializerIdManager {<a name="line.32"></a>
-<span class="sourceLineNo">033</span>  private static final Map&lt;Integer, CacheableDeserializer&lt;Cacheable&gt;&gt; registeredDeserializers = new HashMap&lt;&gt;();<a name="line.33"></a>
-<span class="sourceLineNo">034</span>  private static final AtomicInteger identifier = new AtomicInteger(0);<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * Register the given cacheable deserializer and generate an unique identifier<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   * id for it<a name="line.38"></a>
-<span class="sourceLineNo">039</span>   * @param cd<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   * @return the identifier of given cacheable deserializer<a name="line.40"></a>
-<span class="sourceLineNo">041</span>   */<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  public static int registerDeserializer(CacheableDeserializer&lt;Cacheable&gt; cd) {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    int idx = identifier.incrementAndGet();<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    synchronized (registeredDeserializers) {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      registeredDeserializers.put(idx, cd);<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    }<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    return idx;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  /**<a name="line.50"></a>
-<span class="sourceLineNo">051</span>   * Get the cacheable deserializer as the given identifier Id<a name="line.51"></a>
-<span class="sourceLineNo">052</span>   * @param id<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * @return CacheableDeserializer<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  public static CacheableDeserializer&lt;Cacheable&gt; getDeserializer(int id) {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return registeredDeserializers.get(id);<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  }<a name="line.57"></a>
-<span class="sourceLineNo">058</span>}<a name="line.58"></a>
+<span class="sourceLineNo">028</span> * This class is used to manage the identifiers for {@link CacheableDeserializer}.<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * All deserializers are registered with this Manager via the<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * {@link #registerDeserializer(CacheableDeserializer)}}. On registration, we return an<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * int *identifier* for this deserializer. The int identifier is passed to<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * {@link #getDeserializer(int)}} to obtain the registered deserializer instance.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@InterfaceAudience.Private<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public class CacheableDeserializerIdManager {<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private static final Map&lt;Integer, CacheableDeserializer&lt;Cacheable&gt;&gt; registeredDeserializers = new HashMap&lt;&gt;();<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  private static final AtomicInteger identifier = new AtomicInteger(0);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   * Register the given {@link Cacheable} -- usually an hfileblock instance, these implement<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   * the Cacheable Interface -- deserializer and generate an unique identifier id for it and return<a name="line.41"></a>
+<span class="sourceLineNo">042</span>   * this as our result.<a name="line.42"></a>
+<span class="sourceLineNo">043</span>   * @return the identifier of given cacheable deserializer<a name="line.43"></a>
+<span class="sourceLineNo">044</span>   * @see #getDeserializer(int)<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   */<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  public static int registerDeserializer(CacheableDeserializer&lt;Cacheable&gt; cd) {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    int idx = identifier.incrementAndGet();<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    synchronized (registeredDeserializers) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      registeredDeserializers.put(idx, cd);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    return idx;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * Get the cacheable deserializer registered at the given identifier Id.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * @see #registerDeserializer(CacheableDeserializer)<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public static CacheableDeserializer&lt;Cacheable&gt; getDeserializer(int id) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    return registeredDeserializers.get(id);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * Snapshot a map of the current identifiers to class names for reconstruction on reading out<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * of a file.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public static Map&lt;Integer,String&gt; save() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    Map&lt;Integer, String&gt; snapshot = new HashMap&lt;&gt;();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    synchronized (registeredDeserializers) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      for (Map.Entry&lt;Integer, CacheableDeserializer&lt;Cacheable&gt;&gt; entry :<a name="line.69"></a>
+<span class="sourceLineNo">070</span>          registeredDeserializers.entrySet()) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        snapshot.put(entry.getKey(), entry.getValue().getClass().getName());<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    return snapshot;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span>}<a name="line.76"></a>