<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.6) on Fri Feb 28 12:24:55 EST 2020 -->
<title>org.eclipse.jetty.http2.server Class Hierarchy (Jetty :: Project 9.4.27.v20200227 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-02-28">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.eclipse.jetty.http2.server Class Hierarchy (Jetty :: Project 9.4.27.v20200227 API)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package org.eclipse.jetty.http2.server</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.Object
<ul>
<li class="circle">org.eclipse.jetty.io.<a href="../../io/AbstractConnection.html" title="class in org.eclipse.jetty.io"><span class="typeNameLink">AbstractConnection</span></a> (implements org.eclipse.jetty.io.<a href="../../io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.<a href="../HTTP2Connection.html" title="class in org.eclipse.jetty.http2"><span class="typeNameLink">HTTP2Connection</span></a> (implements org.eclipse.jetty.io.<a href="../../io/WriteFlusher.Listener.html" title="interface in org.eclipse.jetty.io">WriteFlusher.Listener</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HTTP2ServerConnection.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HTTP2ServerConnection</span></a> (implements org.eclipse.jetty.io.<a href="../../io/Connection.UpgradeTo.html" title="interface in org.eclipse.jetty.io">Connection.UpgradeTo</a>)</li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.eclipse.jetty.http2.server.<a href="AbstractHTTP2ServerConnectionFactory.HTTP2SessionContainer.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">AbstractHTTP2ServerConnectionFactory.HTTP2SessionContainer</span></a> (implements org.eclipse.jetty.io.<a href="../../io/Connection.Listener.html" title="interface in org.eclipse.jetty.io">Connection.Listener</a>, org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a>)</li>
<li class="circle">org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component"><span class="typeNameLink">AbstractLifeCycle</span></a> (implements org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a>)
<ul>
<li class="circle">org.eclipse.jetty.util.component.<a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component"><span class="typeNameLink">ContainerLifeCycle</span></a> (implements org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a>, org.eclipse.jetty.util.component.<a href="../../util/component/Destroyable.html" title="interface in org.eclipse.jetty.util.component">Destroyable</a>, org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a>)
<ul>
<li class="circle">org.eclipse.jetty.server.<a href="../../server/AbstractConnectionFactory.html" title="class in org.eclipse.jetty.server"><span class="typeNameLink">AbstractConnectionFactory</span></a> (implements org.eclipse.jetty.server.<a href="../../server/ConnectionFactory.html" title="interface in org.eclipse.jetty.server">ConnectionFactory</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="AbstractHTTP2ServerConnectionFactory.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">AbstractHTTP2ServerConnectionFactory</span></a>
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HTTP2ServerConnectionFactory.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HTTP2ServerConnectionFactory</span></a> (implements org.eclipse.jetty.server.<a href="../../server/NegotiatingServerConnection.CipherDiscriminator.html" title="interface in org.eclipse.jetty.server">NegotiatingServerConnection.CipherDiscriminator</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HTTP2CServerConnectionFactory.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HTTP2CServerConnectionFactory</span></a> (implements org.eclipse.jetty.server.<a href="../../server/ConnectionFactory.Upgrading.html" title="interface in org.eclipse.jetty.server">ConnectionFactory.Upgrading</a>)</li>
</ul>
</li>
<li class="circle">org.eclipse.jetty.http2.server.<a href="RawHTTP2ServerConnectionFactory.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">RawHTTP2ServerConnectionFactory</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.eclipse.jetty.http2.<a href="../HTTP2Session.html" title="class in org.eclipse.jetty.http2"><span class="typeNameLink">HTTP2Session</span></a> (implements org.eclipse.jetty.http2.<a href="../ISession.html" title="interface in org.eclipse.jetty.http2">ISession</a>, org.eclipse.jetty.http2.parser.<a href="../parser/Parser.Listener.html" title="interface in org.eclipse.jetty.http2.parser">Parser.Listener</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HTTP2ServerSession.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HTTP2ServerSession</span></a> (implements org.eclipse.jetty.http2.parser.<a href="../parser/ServerParser.Listener.html" title="interface in org.eclipse.jetty.http2.parser">ServerParser.Listener</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.eclipse.jetty.server.<a href="../../server/HttpChannel.html" title="class in org.eclipse.jetty.server"><span class="typeNameLink">HttpChannel</span></a> (implements org.eclipse.jetty.server.<a href="../../server/HttpOutput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpOutput.Interceptor</a>, java.lang.Runnable)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HttpChannelOverHTTP2.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HttpChannelOverHTTP2</span></a> (implements java.io.Closeable, org.eclipse.jetty.io.<a href="../../io/WriteFlusher.Listener.html" title="interface in org.eclipse.jetty.io">WriteFlusher.Listener</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HTTP2ServerConnection.ServerHttpChannelOverHTTP2.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HTTP2ServerConnection.ServerHttpChannelOverHTTP2</span></a> (implements java.io.Closeable)</li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HttpTransportOverHTTP2.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HttpTransportOverHTTP2</span></a> (implements org.eclipse.jetty.server.<a href="../../server/HttpTransport.html" title="interface in org.eclipse.jetty.server">HttpTransport</a>)</li>
<li class="circle">org.eclipse.jetty.http2.api.<a href="../api/Session.Listener.Adapter.html" title="class in org.eclipse.jetty.http2.api"><span class="typeNameLink">Session.Listener.Adapter</span></a> (implements org.eclipse.jetty.http2.api.<a href="../api/Session.Listener.html" title="interface in org.eclipse.jetty.http2.api">Session.Listener</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.api.server.<a href="../api/server/ServerSessionListener.Adapter.html" title="class in org.eclipse.jetty.http2.api.server"><span class="typeNameLink">ServerSessionListener.Adapter</span></a> (implements org.eclipse.jetty.http2.api.server.<a href="../api/server/ServerSessionListener.html" title="interface in org.eclipse.jetty.http2.api.server">ServerSessionListener</a>)
<ul>
<li class="circle">org.eclipse.jetty.http2.server.<a href="HTTP2ServerConnectionFactory.HTTPServerSessionListener.html" title="class in org.eclipse.jetty.http2.server"><span class="typeNameLink">HTTP2ServerConnectionFactory.HTTPServerSessionListener</span></a> (implements org.eclipse.jetty.http2.api.<a href="../api/Stream.Listener.html" title="interface in org.eclipse.jetty.http2.api">Stream.Listener</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2020 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
