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<Integer, CacheableDeserializer<Cacheable>> registeredDeserializers = new HashMap<>();<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<Cacheable> 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<Cacheable> 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<Integer, CacheableDeserializer<Cacheable>> registeredDeserializers = new HashMap<>();<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<Cacheable> 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<Cacheable> 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<Integer,String> save() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span> Map<Integer, String> snapshot = new HashMap<>();<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<Integer, CacheableDeserializer<Cacheable>> 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>