blob: ffcaa954109f7239bdd3c92cc8c6ca90352afead [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_25) on Sat Jun 29 08:36:31 CEST 2013 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Tracker.Tracked (Apache Felix iPOJO ~ JavaDoc 1.10.1 API)</title>
<meta name="date" content="2013-06-29">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Tracker.Tracked (Apache Felix iPOJO ~ JavaDoc 1.10.1 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Tracker.Tracked.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/felix/ipojo/util/TrackerCustomizer.html" title="interface in org.apache.felix.ipojo.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/ipojo/util/Tracker.Tracked.html" target="_top">Frames</a></li>
<li><a href="Tracker.Tracked.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_java.util.AbstractMap">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.ipojo.util</div>
<h2 title="Class Tracker.Tracked" class="title">Class Tracker.Tracked</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true" title="class or interface in java.util">java.util.AbstractMap</a>&lt;K,V&gt;</li>
<li>
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">java.util.HashMap</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.felix.ipojo.util.Tracker.Tracked</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;, <a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceListener.html?is-external=true" title="class or interface in org.osgi.framework">ServiceListener</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util">Tracker</a></dd>
</dl>
<hr>
<br>
<pre> class <a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.html#line.532">Tracker.Tracked</a>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;
implements <a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceListener.html?is-external=true" title="class or interface in org.osgi.framework">ServiceListener</a></pre>
<div class="block">Inner class to track services. If a Tracker object is reused (closed then reopened), then a new Tracked object is used. This class is a hashtable mapping ServiceReference object -> customized Object. This
class is the ServiceListener object for the tracker. This class is used to synchronize access to the tracked services. This is not a public class. It is only for use by the implementation of the Tracker
class.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_java.util.AbstractMap">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true" title="class or interface in java.util">AbstractMap</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.SimpleEntry.html?is-external=true" title="class or interface in java.util">AbstractMap.SimpleEntry</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.SimpleEntry.html?is-external=true" title="class or interface in java.util">K</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.SimpleEntry.html?is-external=true" title="class or interface in java.util">V</a>&gt;, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.SimpleImmutableEntry.html?is-external=true" title="class or interface in java.util">AbstractMap.SimpleImmutableEntry</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.SimpleImmutableEntry.html?is-external=true" title="class or interface in java.util">K</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.SimpleImmutableEntry.html?is-external=true" title="class or interface in java.util">V</a>&gt;</code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#m_adding">m_adding</a></strong></code>
<div class="block">The list of ServiceReferences in the process of being added.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#m_closed">m_closed</a></strong></code>
<div class="block"><code>true</code> if the tracked object is closed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#m_initial">m_initial</a></strong></code>
<div class="block">The Initial list of ServiceReferences for the tracker.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#Tracker.Tracked()">Tracker.Tracked</a></strong>()</code>
<div class="block">Tracked constructor.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#close()">close</a></strong>()</code>
<div class="block">Called by the owning Tracker object when it is closed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#modified()">modified</a></strong>()</code>
<div class="block">Called by the Tracked object whenever the set of tracked services is modified.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#serviceChanged(org.osgi.framework.ServiceEvent)">serviceChanged</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceEvent.html?is-external=true" title="class or interface in org.osgi.framework">ServiceEvent</a>&nbsp;event)</code>
<div class="block">ServiceListener method for the Tracker class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#setInitialServices(org.osgi.framework.ServiceReference[])">setInitialServices</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;references)</code>
<div class="block">Sets initial list of services into tracker before ServiceEvents begin to be received.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#track(org.osgi.framework.ServiceReference)">track</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;reference)</code>
<div class="block">Begins to track the referenced service.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#trackAdding(org.osgi.framework.ServiceReference)">trackAdding</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;reference)</code>
<div class="block">Common logic to add a service to the tracker used by track and trackInitialServices.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#trackInitialServices()">trackInitialServices</a></strong>()</code>
<div class="block">Tracks the initial list of services.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/felix/ipojo/util/Tracker.Tracked.html#untrack(org.osgi.framework.ServiceReference)">untrack</a></strong>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;reference)</code>
<div class="block">Discontinues tracking the referenced service.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.util.HashMap">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#clear()" title="class or interface in java.util">clear</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#clone()" title="class or interface in java.util">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#containsKey(java.lang.Object)" title="class or interface in java.util">containsKey</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#containsValue(java.lang.Object)" title="class or interface in java.util">containsValue</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#entrySet()" title="class or interface in java.util">entrySet</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#get(java.lang.Object)" title="class or interface in java.util">get</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#isEmpty()" title="class or interface in java.util">isEmpty</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#keySet()" title="class or interface in java.util">keySet</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#put(K, V)" title="class or interface in java.util">put</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#putAll(java.util.Map)" title="class or interface in java.util">putAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util">remove</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#size()" title="class or interface in java.util">size</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#values()" title="class or interface in java.util">values</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.util.AbstractMap">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true" title="class or interface in java.util">AbstractMap</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#hashCode()" title="class or interface in java.util">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#toString()" title="class or interface in java.util">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.util.Map">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#hashCode()" title="class or interface in java.util">hashCode</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="m_adding">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_adding</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt; <a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.539">m_adding</a></pre>
<div class="block">The list of ServiceReferences in the process of being added. This is used to deal with nesting of ServiceEvents. Since ServiceEvents are synchronously delivered, ServiceEvents can be nested. For example, when processing the adding of a service
and the customizer causes the service to be unregistered, notification to the nested call to untrack that the service was unregistered can be made to the track method. Since the ArrayList implementation is not synchronized, all access to
this list must be protected by the same synchronized object for thread safety.</div>
</li>
</ul>
<a name="m_closed">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>m_closed</h4>
<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.544">m_closed</a></pre>
<div class="block"><code>true</code> if the tracked object is closed. This field is volatile because it is set by one thread and read by another.</div>
</li>
</ul>
<a name="m_initial">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>m_initial</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&gt; <a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.551">m_initial</a></pre>
<div class="block">The Initial list of ServiceReferences for the tracker. This is used to correctly process the initial services which could become unregistered before they are tracked. This is necessary since the initial set of tracked services are not
"announced" by ServiceEvents and therefore the ServiceEvent for unregistration could be delivered before we track the service. A service must not be in both the initial and adding lists at the same time. A service must be moved from the
initial list to the adding list "atomically" before we begin tracking it. Since the LinkedList implementation is not synchronized, all access to this list must be protected by the same synchronized object for thread safety.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Tracker.Tracked()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Tracker.Tracked</h4>
<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.556">Tracker.Tracked</a>()</pre>
<div class="block">Tracked constructor.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setInitialServices(org.osgi.framework.ServiceReference[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInitialServices</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.567">setInitialServices</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>[]&nbsp;references)</pre>
<div class="block">Sets initial list of services into tracker before ServiceEvents begin to be received. This method must be called from Tracker.open while synchronized on this object in the same synchronized block as the addServiceListener call.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>references</code> - The initial list of services to be tracked.</dd></dl>
</li>
</ul>
<a name="trackInitialServices()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trackInitialServices</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.576">trackInitialServices</a>()</pre>
<div class="block">Tracks the initial list of services. This is called after ServiceEvents can begin to be received. This method must be called from Tracker.open while not synchronized on this object after the addServiceListener call.</div>
</li>
</ul>
<a name="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.603">close</a>()</pre>
<div class="block">Called by the owning Tracker object when it is closed.</div>
</li>
</ul>
<a name="serviceChanged(org.osgi.framework.ServiceEvent)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serviceChanged</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.611">serviceChanged</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceEvent.html?is-external=true" title="class or interface in org.osgi.framework">ServiceEvent</a>&nbsp;event)</pre>
<div class="block">ServiceListener method for the Tracker class. This method must NOT be synchronized to avoid deadlock potential.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceListener.html?is-external=true#serviceChanged(org.osgi.framework.ServiceEvent)" title="class or interface in org.osgi.framework">serviceChanged</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceListener.html?is-external=true" title="class or interface in org.osgi.framework">ServiceListener</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>event</code> - the ServiceEvent object from the framework.</dd></dl>
</li>
</ul>
<a name="track(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>track</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.648">track</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;reference)</pre>
<div class="block">Begins to track the referenced service.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reference</code> - the Reference to a service to be tracked.</dd></dl>
</li>
</ul>
<a name="trackAdding(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trackAdding</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.680">trackAdding</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;reference)</pre>
<div class="block">Common logic to add a service to the tracker used by track and trackInitialServices.
The specified reference must have been placed in the adding list before calling this method.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reference</code> - the Reference to a service to be tracked.</dd></dl>
</li>
</ul>
<a name="untrack(org.osgi.framework.ServiceReference)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>untrack</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.720">untrack</a>(<a href="http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/ServiceReference.html?is-external=true" title="class or interface in org.osgi.framework">ServiceReference</a>&nbsp;reference)</pre>
<div class="block">Discontinues tracking the referenced service.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>reference</code> - the Reference to the tracked service.</dd></dl>
</li>
</ul>
<a name="modified()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>modified</h4>
<pre>void&nbsp;<a href="../../../../../src-html/org/apache/felix/ipojo/util/Tracker.Tracked.html#line.748">modified</a>()</pre>
<div class="block">Called by the Tracked object whenever the set of tracked services is modified. Increments the tracking count and clears the cache.
This method must not be synchronized since it is called by Tracked while Tracked is synchronized. We don't want synchronization interactions between the ServiceListener thread and the user thread.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Tracker.Tracked.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/ipojo/util/Tracker.html" title="class in org.apache.felix.ipojo.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/felix/ipojo/util/TrackerCustomizer.html" title="interface in org.apache.felix.ipojo.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/ipojo/util/Tracker.Tracked.html" target="_top">Frames</a></li>
<li><a href="Tracker.Tracked.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_java.util.AbstractMap">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2013. All rights reserved.</small></p>
</body>
</html>