trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andrew...@apache.org
Subject svn commit: r831152 [36/37] - in /incubator/trafficserver/site/trunk/docs: ./ admin/ admin/images/ sdk/ sdk/css/ sdk/images/ sdk/images/docbook/ sdk/js/
Date Thu, 29 Oct 2009 23:23:36 GMT
Added: incubator/trafficserver/site/trunk/docs/sdk/index.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/index.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/index.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/index.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,791 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Traffic Server Software Developers Kit</title>
+<link rel="stylesheet" href="http://yui.yahooapis.com/2.2.2/build/reset/reset-min.css" type="text/css">
+<link rel="stylesheet" href="http://yui.yahooapis.com/2.2.2/build/fonts/fonts-min.css" type="text/css">
+<link rel="stylesheet" href="http://yui.yahooapis.com/2.2.2/build/treeview/assets/tree.css" type="text/css">
+<link rel="stylesheet" href="css/ydoc.css" type="text/css">
+<link rel="stylesheet" href="css/ydoc-chunk.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
+<meta name="description" content="The Traffic Server Software Developers Kit
+      shows you how to create plugins using the Traffic Server Software
+      Development Kit (SDK)">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="next" href="Preface.html" title="Preface">
+<link rel="preface" href="Preface.html" title="Preface">
+<link rel="chapter" href="GetingStarted.html" title="Chapter 1. Getting Started">
+<link rel="chapter" href="CreatingTSPlugins.html" title="Chapter 2. How to Create Traffic Server Plugins">
+<link rel="index" href="CreatingTSPlugins.html#id372630" title="Index">
+<link rel="chapter" href="ch03.html" title="Chapter 3. Remap Plugin">
+<link rel="chapter" href="HeaderBasedPluginEx.html" title="Chapter 4. Header-Based Plugin Examples">
+<link rel="chapter" href="HTTPTransformationPlugins.html" title="Chapter 5. HTTP Transformation Plugins">
+<link rel="chapter" href="NewProtocolPlugins.html" title="Chapter 6. New Protocol Plugins">
+<link rel="chapter" href="ch07.html" title="Chapter 7. Cache Plugin">
+<link rel="chapter" href="HTTPHooksAndTransactions.html" title="Chapter 8. HTTP Hooks and Transactions">
+<link rel="chapter" href="MiscellaneousInterfaceGuide.html" title="Chapter 9. Miscellaneous Interface Guide">
+<link rel="chapter" href="HTTPHeaders.html" title="Chapter 10. HTTP Headers">
+<link rel="chapter" href="MutexGuide.html" title="Chapter 11. Mutex Guide">
+<link rel="chapter" href="Continuations.html" title="Chapter 12. Continuations">
+<link rel="chapter" href="PluginConfigurations.html" title="Chapter 13. Plugin Configurations">
+<link rel="chapter" href="ActionsGuide.html" title="Chapter 14. Actions Guide">
+<link rel="chapter" href="IOGuide.html" title="Chapter 15. IO Guide">
+<link rel="chapter" href="PluginManagement.html" title="Chapter 16. Plugin Management">
+<link rel="chapter" href="AddingStatistics.html" title="Chapter 17. Adding Statistics">
+<link rel="chapter" href="FunctionReference.html" title="Chapter 18. Function Reference">
+<link rel="appendix" href="App_SampleSourceCode.html" title="Appendix A. Sample Source Code">
+<link rel="appendix" href="App_DeprecatedFunctions.html" title="Appendix B. Deprecated Functions">
+<link rel="appendix" href="App_Troubleshooting.html" title="Appendix C. Troubleshooting Tips">
+<link rel="appendix" href="FunctionIndex.html" title="Appendix D. Function Index">
+<link rel="appendix" href="TypeIndex.html" title="Appendix E. Type Index">
+<link rel="index" href="ConceptIndex.html" title="Index">
+<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/yahoo/yahoo-min.js"></script><script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/event/event-min.js"></script><script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/treeview/treeview-min.js"></script><script type="text/javascript" src="js/tocnodes.js"></script><script type="text/javascript" src="js/toc.js"></script><script type="text/javascript">
+    document.write("<style> div.toc {display: none} </style>"); 
+  </script>
+</head>
+<body>
+<div class="doctitle">
+
+<a href="index.html">Home</a>
+
+
+<img src="images/docbook/ts75.png" width="249" height="56">
+<h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev"></div>
+<div class="navnext">Preface — <a accesskey="n" href="Preface.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="book" lang="en">
+<div class="titlepage">
+<div>
+<div><h1 class="title">
+<a name="id334484"></a>Traffic Server Software Developers Kit</h1></div>
+<div><h2 class="subtitle">Programmers Guide</h2></div>
+<div><p class="releaseinfo">Release 1.5</p></div>
+<div><div class="legalnotice">
+<a name="id306665"></a>
+</div></div>
+<div><div class="abstract">
+<p class="title"><b>Abstract</b></p>
+<p>The <span class="emphasis"><em>Traffic Server Software Developers Kit</em></span>
+      shows you how to create plugins using the Traffic Server Software
+      Development Kit (SDK)</p>
+</div></div>
+</div>
+<hr>
+<p>This documentation is a work in progress.  It was originally written for a version of Traffic Server that was commercially available, and supported different operating systems, and more functions than the current version.  As a result, some of the sections may refer to functionality that no longer exists.</p>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="preface"><a href="Preface.html">Preface</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="Preface.html#Audience">Audience</a></span></dt>
+<dt><span class="section"><a href="pr01s02.html">How to Use This Book</a></span></dt>
+<dt><span class="section"><a href="Conventions.html">Typographical Conventions</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="GetingStarted.html">1. Getting Started</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="GetingStarted.html#UnderstandingTSPlugins">Understanding Traffic Server Plugins</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="GetingStarted.html#RoleOfPlugins">The Role of Plugins</a></span></dt>
+<dt><span class="section"><a href="GetingStarted.html#PossibleUses">Possible Uses for Plugins</a></span></dt>
+<dt><span class="section"><a href="GetingStarted.html#PluginLoading">Plugin Loading</a></span></dt>
+<dt><span class="section"><a href="GetingStarted.html#PluginConfiguration">Plugin Configuration</a></span></dt>
+<dt><span class="section"><a href="GetingStarted.html#ConfigFileRules">Configuration File Rules</a></span></dt>
+<dt><span class="section"><a href="GetingStarted.html#PluginInitialization">Plugin Initialization</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ASimplePlugin.html">A Simple Plugin</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ASimplePlugin.html#CompilingYourPlugin">Compile Your Plugin</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ASimplePlugin.html#Compiling_Unix">Unix Example</a></span></dt>
+<dt><span class="section"><a href="ASimplePlugin.html#Compiling_HPUX">HPUX Example</a></span></dt>
+<dt><span class="section"><a href="ASimplePlugin.html#Compiling_Windows">Compiling for Windows NT</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="Updatingplugin.configFile.html">Update the <code class="filename">plugin.config</code> File</a></span></dt>
+<dt><span class="section"><a href="SpecifyingPluginLocation.html">Specify the Plugin’s Location</a></span></dt>
+<dt><span class="section"><a href="RestartingTS.html">Restart Traffic Server</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="PlusingRegisAndVersionCkg.html">Plugin Registration and Version Checking</a></span></dt>
+<dt><span class="section"><a href="NamingConventions.html">Naming Conventions</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="CreatingTSPlugins.html">2. How to Create Traffic Server Plugins</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CreatingTSPlugins.html#AsynchronousEventModel">The Asynchronous Event Model</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CreatingTSPlugins.html#TSHTTPStateMachine">Traffic Server HTTP State Machine</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CreatingTSPlugins.html#HTTPTransaction_WhatIs">HTTP Transaction</a></span></dt>
+<dt><span class="section"><a href="CreatingTSPlugins.html#TypesOfHooks">Types of Hooks</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section"><a href="Roadmap_CreatingPlugins.html">Roadmap for Creating Plugins</a></span></dt>
+<dt><span class="index"><a href="CreatingTSPlugins.html#id372630">Index</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch03.html">3. Remap Plugin</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ch03.html#id372652">Why Use a Remap Plugin?</a></span></dt>
+<dt><span class="section"><a href="ch03s02.html">Remap.API.h</a></span></dt>
+<dt><span class="section"><a href="ch03s03.html">Functions You Need to Implement</a></span></dt>
+<dt><span class="section"><a href="ch03s04.html">Examples</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="HeaderBasedPluginEx.html">4. Header-Based Plugin Examples</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HeaderBasedPluginEx.html#HeaderBasedEx_Overview">Overview</a></span></dt>
+<dt><span class="section"><a href="BlacklistPlugin.html">The Blacklist Plugin</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="BlacklistPlugin.html#CreatingParentContinuation">Creating the Parent Continuation</a></span></dt>
+<dt><span class="section"><a href="SettingGlobalHook.html">Setting a Global Hook</a></span></dt>
+<dt><span class="section"><a href="SettingUpUIUpdateCallbacks.html">Setting Up UI Update Callbacks</a></span></dt>
+<dt><span class="section"><a href="AccessingTransactionProc.html">Accessing the Transaction Being Processed</a></span></dt>
+<dt><span class="section"><a href="SettingUpTransacHook.html">Setting Up a Transaction Hook</a></span></dt>
+<dt><span class="section"><a href="WorkWHTTPHeaderFunc.html">Working with HTTP Header Functions</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="BasicAuthorizatonPlugin.html">The Basic Authorization Plugin</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="BasicAuthorizatonPlugin.html#CreatePluginParentCont_GlHk">Creating the Plugin's Parent Continuation and Global
+        Hook</a></span></dt>
+<dt><span class="section"><a href="ImplementHandler_GetTransHandle.html">Implementing the Handler and Getting a Handle to the
+        Transaction</a></span></dt>
+<dt><span class="section"><a href="WorkWithHTTPHeaders.html">Working With HTTP Headers</a></span></dt>
+<dt><span class="section"><a href="SetTransactionHook.html">Setting a Transaction Hook</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="chapter"><a href="HTTPTransformationPlugins.html">5. HTTP Transformation Plugins</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPTransformationPlugins.html#WritingContentTransformPlugins">Writing Content Transform Plugins</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPTransformationPlugins.html#Transformations">Transformations</a></span></dt>
+<dt><span class="section"><a href="HTTPTransformationPlugins.html#VIOs">VIOs</a></span></dt>
+<dt><span class="section"><a href="HTTPTransformationPlugins.html#IOBuffers">IO Buffers</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="SampleNullTransformPlugin.html">The Sample Null Transform Plugin</a></span></dt>
+<dt><span class="section"><a href="AppendTransformPlugin.html">The Append-Transform Plugin</a></span></dt>
+<dt><span class="section"><a href="SampleBufferedNullTransformPlugin.html">The Sample Buffered Null Transform Plugin</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="NewProtocolPlugins.html">6. New Protocol Plugins</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="NewProtocolPlugins.html#AboutSampleProtocol">About the Sample Protocol</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="NewProtocolPlugins.html#ProtocolPluginStructure">Protocol Plugin Structure</a></span></dt>
+<dt><span class="section"><a href="NewProtocolPlugins.html#ContinuationsInProtocolPlugin">Continuations in the Protocol Plugin</a></span></dt>
+<dt><span class="section"><a href="NewProtocolPlugins.html#EventFlow">Event Flow</a></span></dt>
+<dt><span class="section"><a href="NewProtocolPlugins.html#ImplementTransStMachine">One Way to Implement a Transaction State Machine</a></span></dt>
+<dt><span class="section"><a href="NewProtocolPlugins.html#ProcTypicalTransaction">Processing a Typical Transaction</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="chapter"><a href="ch07.html">7. Cache Plugin</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ch07.html#id378027">Getting Started</a></span></dt>
+<dt><span class="section"><a href="ch07s02.html">Reads and Writes</a></span></dt>
+<dt><span class="section"><a href="ch07s03.html">State Diagram</a></span></dt>
+<dt><span class="section"><a href="ch07s04.html">Sample Plugin</a></span></dt>
+<dt><span class="section"><a href="ch07s05.html">Cache Events</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="HTTPHooksAndTransactions.html">8. HTTP Hooks and Transactions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPHooksAndTransactions.html#SetOfHooks">The Set of Hooks</a></span></dt>
+<dt><span class="section"><a href="AddingHooks.html">Adding Hooks</a></span></dt>
+<dt><span class="section"><a href="HTTPSessions.html">HTTP Sessions</a></span></dt>
+<dt><span class="section"><a href="HTTP_Transactions.html">HTTP Transactions</a></span></dt>
+<dt><span class="section"><a href="InterceptingHTTPTx.html">Intercepting HTTP Transactions</a></span></dt>
+<dt><span class="section"><a href="InitiateHTTPConnection.html">Initiate HTTP Connection</a></span></dt>
+<dt><span class="section"><a href="HTTPAlternateSelection.html">HTTP Alternate Selection</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="MiscellaneousInterfaceGuide.html">9. Miscellaneous Interface Guide</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MiscellaneousInterfaceGuide.html#Interface_Debugging">Debugging Functions</a></span></dt>
+<dt><span class="section"><a href="INKfopenFamily.html">The INKfopen Family</a></span></dt>
+<dt><span class="section"><a href="MemoryAllocation.html">Memory Allocation</a></span></dt>
+<dt><span class="section"><a href="Interface_ThreadFunctions.html">Thread Functions</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="HTTPHeaders.html">10. HTTP Headers</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPHeaders.html#AboutHTTPHeaders">About HTTP Headers</a></span></dt>
+<dt><span class="section"><a href="GuideTSHTTPHdrSyst.html">Guide to Traffic Server HTTP Header System</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="GuideTSHTTPHdrSyst.html#NoNullTerminatedStrings">No Null-Terminated Strings</a></span></dt>
+<dt><span class="section"><a href="DuplicateMIMEFlds.html">Duplicate MIME Fields Are Not Coalesced</a></span></dt>
+<dt><span class="section"><a href="MIMEFldsBelongAssocMIMEHdr.html">MIME Fields Always Belong to an Associated MIME
+        Header</a></span></dt>
+<dt><span class="section"><a href="RlsMarshalBufHandles.html">Release Marshal Buffer Handles</a></span></dt>
+<dt><span class="section"><a href="DeprecatedMarshBufFuncs.html">Deprecated Functions</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="MarshalBuffers.html">Marshal Buffers</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaders2.html">HTTP Headers</a></span></dt>
+<dt><span class="section"><a href="URLs.html">URLs</a></span></dt>
+<dt><span class="section"><a href="MIMEHeaders.html">MIME Headers</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="MutexGuide.html">11. Mutex Guide</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MutexGuide.html#Mutexes">Mutexes</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MutexGuide.html#LockingGlobalData">Locking Global Data</a></span></dt>
+<dt><span class="section"><a href="MutexGuide.html#ProtectContinuationData">Protecting a Continuation’s Data</a></span></dt>
+<dt><span class="section"><a href="MutexGuide.html#AssocContinuationToHTTPTx">How to Associate a Continuation to Every HTTP
+        Transaction</a></span></dt>
+<dt><span class="section"><a href="MutexGuide.html#AddNewContinuation">How to Add the New Continuation</a></span></dt>
+<dt><span class="section"><a href="MutexGuide.html#StoreDataSpecificHTTPTx">How to Store Data Specific to Each HTTP Transaction</a></span></dt>
+<dt><span class="section"><a href="MutexGuide.html#UsingLocks">Using Locks</a></span></dt>
+<dt><span class="section"><a href="MutexGuide.html#ContinuationsCreatedHTTPTx">Special Case: Continuations Created for HTTP
+        Transactions</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="chapter"><a href="Continuations.html">12. Continuations</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="Continuations.html#MutexesAndData">Mutexes and Data</a></span></dt>
+<dt><span class="section"><a href="ActivateContinuations.html">How to Activate Continuations</a></span></dt>
+<dt><span class="section"><a href="WritingHandlerFunctions.html">Writing Handler Functions</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="PluginConfigurations.html">13. Plugin Configurations</a></span></dt>
+<dd><dl><dt><span class="section"><a href="PluginConfigurations.html#Plugin_Configs">Plugin Configurations</a></span></dt></dl></dd>
+<dt><span class="chapter"><a href="ActionsGuide.html">14. Actions Guide</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ActionsGuide.html#Actions">Actions</a></span></dt>
+<dt><span class="section"><a href="HostsLookupAPI.html">Hosts Lookup API</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="IOGuide.html">15. IO Guide</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="IOGuide.html#Vconnections">Vconnections</a></span></dt>
+<dd><dl><dt><span class="section"><a href="IOGuide.html#VconnectionUsersView">The vconnection user’s view</a></span></dt></dl></dd>
+<dt><span class="section"><a href="NetVconnections.html">Net Vconnections</a></span></dt>
+<dt><span class="section"><a href="Transformations_IO.html">Transformations</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="Transformations_IO.html#VconnImplementersView">The Vconnection Implementor’s View</a></span></dt>
+<dd><dl><dt><span class="section"><a href="Transformations_IO.html#TransformVconnection">Transformation VConnection</a></span></dt></dl></dd>
+</dl></dd>
+<dt><span class="section"><a href="VIOs_IO.html">VIOs</a></span></dt>
+<dt><span class="section"><a href="IOBuffers_IO.html">IO Buffers</a></span></dt>
+<dt><span class="section"><a href="CacheAPI.html">Guide to the Cache API</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CacheAPI.html#DoACacheRead">How to Do a Cache Read</a></span></dt>
+<dt><span class="section"><a href="DoACacheWrite.html">How to Do a Cache Write</a></span></dt>
+<dt><span class="section"><a href="DoACacheRemove.html">How to Do a Cache Remove</a></span></dt>
+<dt><span class="section"><a href="Errors_Cache.html">Errors</a></span></dt>
+<dt><span class="section"><a href="CacheAPI_Example.html">Example</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="chapter"><a href="PluginManagement.html">16. Plugin Management</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="PluginManagement.html#SetUpPluginMgmtInterface">Setting Up a Plugin Management Interface</a></span></dt>
+<dt><span class="section"><a href="ReadTESettingStats.html">Reading Traffic Server Settings and Statistics</a></span></dt>
+<dt><span class="section"><a href="AccessPluginFiles.html">Accessing Installed Plugin Files</a></span></dt>
+<dt><span class="section"><a href="LicensingPlugin.html">Licensing Your Plugin</a></span></dt>
+<dd><dl><dt><span class="section"><a href="LicensingPlugin.html#Format_plugin.db">Format of plugin.db</a></span></dt></dl></dd>
+<dt><span class="section"><a href="SetUpLicensing.html">Setting Up Licensing</a></span></dt>
+<dd><dl><dt><span class="section"><a href="SetUpLicensing.html#Licensing_Example">Example</a></span></dt></dl></dd>
+<dt><span class="section"><a href="GenerateLicenseKey.html">Generating a License Key</a></span></dt>
+<dt><span class="section"><a href="LoggingAPI.html">Guide to the Logging API</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="AddingStatistics.html">17. Adding Statistics</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="AddingStatistics.html#UncoupledStatistics">Uncoupled Statistics</a></span></dt>
+<dt><span class="section"><a href="CoupledStatistics.html">Coupled Statistics</a></span></dt>
+<dd><dl><dt><span class="section"><a href="CoupledStatistics.html#Examp_redirect-1.c">Example Using the redirect-1.c Sample Plugin</a></span></dt></dl></dd>
+<dt><span class="section"><a href="ViewStatsUsingTrafLine.html">Viewing Statistics Using Traffic Line</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="FunctionReference.html">18. Function Reference</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="FunctionReference.html#ListOfFunctionGroups">List of Function Groups</a></span></dt>
+<dt><span class="section"><a href="InitializationFunctions.html">Initialization Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="InitializationFunctions.html#INKPluginInit">INKPluginInit</a></span></dt>
+<dt><span class="section"><a href="INKPluginRegister.html">INKPluginRegister</a></span></dt>
+<dt><span class="section"><a href="INKTrafficServerVersionGet.html">INKTrafficServerVersionGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="DebuggingFunctions.html">Debugging Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="DebuggingFunctions.html#INKDebug">INKDebug</a></span></dt>
+<dt><span class="section"><a href="INKIsDebugTagSet.html">INKIsDebugTagSet</a></span></dt>
+<dt><span class="section"><a href="INKError.html">INKError</a></span></dt>
+<dt><span class="section"><a href="INKAssert.html">INKAssert</a></span></dt>
+<dt><span class="section"><a href="INKReleaseAssert.html">INKReleaseAssert</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="INKfopenFamilyFunctions.html">The INKfopen Family</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="INKfopenFamilyFunctions.html#INKfclose">INKfclose</a></span></dt>
+<dt><span class="section"><a href="INKfflush.html">INKfflush</a></span></dt>
+<dt><span class="section"><a href="INKfgets.html">INKfgets</a></span></dt>
+<dt><span class="section"><a href="INKfopen.html">INKfopen</a></span></dt>
+<dt><span class="section"><a href="INKfread.html">INKfread</a></span></dt>
+<dt><span class="section"><a href="INKfwrite.html">INKfwrite</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="MemoryAllocationFunctions.html">Memory Allocation</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MemoryAllocationFunctions.html#INKfree">INKfree</a></span></dt>
+<dt><span class="section"><a href="INKmalloc.html">INKmalloc</a></span></dt>
+<dt><span class="section"><a href="INKrealloc.html">INKrealloc</a></span></dt>
+<dt><span class="section"><a href="INKstrdup.html">INKstrdup</a></span></dt>
+<dt><span class="section"><a href="INKstrndup.html">INKstrndup</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ThreadFunctions.html">Thread Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ThreadFunctions.html#INKThreadCreate">INKThreadCreate</a></span></dt>
+<dt><span class="section"><a href="INKThreadDestroy.html">INKThreadDestroy</a></span></dt>
+<dt><span class="section"><a href="INKThreadInit.html">INKThreadInit</a></span></dt>
+<dt><span class="section"><a href="INKThreadSelf.html">INKThreadSelf</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="HTTPFunctions.html">HTTP Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPFunctions.html#HTTPHookFunctions">Hook Functions</a></span></dt>
+<dd><dl><dt><span class="section"><a href="HTTPFunctions.html#INKHttpHookAdd">INKHttpHookAdd</a></span></dt></dl></dd>
+<dt><span class="section"><a href="HTTPSessionFunctions.html">Session Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPSessionFunctions.html#INKHttpSsnHookAdd">INKHttpSsnHookAdd</a></span></dt>
+<dt><span class="section"><a href="HTTPSessionFunctions.html#INKHttpSsnReenable">INKHttpSsnReenable</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html">HTTP Transaction Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnCacheLookupStatusGet">INKHttpTxnCacheLookupStatusGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnCachedReqGet">INKHttpTxnCachedReqGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnCachedRespGet">INKHttpTxnCachedRespGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnClientIncomingPortGet">INKHttpTxnClientIncomingPortGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnClientIPGet">INKHttpTxnClientIPGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnClientRemotePortGet">INKHttpTxnClientRemotePortGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnClientReqGet">INKHttpTxnClientReqGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnClientRespGet">INKHttpTxnClientRespGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnErrorBodySet">INKHttpTxnErrorBodySet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnHookAdd">INKHttpTxnHookAdd</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnNextHopIPGet">INKHttpTxnNextHopIPGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnParentProxyGet">INKHttpTxnParentProxyGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnParentProxySet">INKHttpTxnParentProxySet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnReenable">INKHttpTxnReenable</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnServerIPGet">INKHttpTxnServerIPGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnServerReqGet">INKHttpTxnServerReqGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnServerRespGet">INKHttpTxnServerRespGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnSsnGet">INKHttpTxnSsnGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnTransformedRespCache">INKHttpTxnTransformedRespCache</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnTransformRespGet">INKHttpTxnTransformRespGet</a></span></dt>
+<dt><span class="section"><a href="HTTPTransactionFunctions.html#INKHttpTxnUntransformedRespCache">INKHttpTxnUntransformedRespCache</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section"><a href="InitiateConnectionFunctions.html">Initiate Connection</a></span></dt>
+<dd><dl><dt><span class="section"><a href="InitiateConnectionFunctions.html#INKHttpConnect">INKHttpConnect</a></span></dt></dl></dd>
+<dt><span class="section"><a href="InterceptingHTTPTransactionFuncs.html">Intercepting HTTP Transaction Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="InterceptingHTTPTransactionFuncs.html#INKHttpTxnIntercept">INKHttpTxnIntercept</a></span></dt>
+<dt><span class="section"><a href="INKHttpTxnServerIntercept.html">INKHttpTxnServerIntercept</a></span></dt>
+<dt><span class="section"><a href="AlternateSelectionFunctions.html">Alternate Selection Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="AlternateSelectionFunctions.html#INKHttpAltInfoCachedReqGet">INKHttpAltInfoCachedReqGet</a></span></dt>
+<dt><span class="section"><a href="AlternateSelectionFunctions.html#INKHttpAltInfoCachedRespGet">INKHttpAltInfoCachedRespGet</a></span></dt>
+<dt><span class="section"><a href="AlternateSelectionFunctions.html#INKHttpAltInfoClientReqGet">INKHttpAltInfoClientReqGet</a></span></dt>
+<dt><span class="section"><a href="AlternateSelectionFunctions.html#INKHttpAltInfoQualitySet">INKHttpAltInfoQualitySet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ch18s09s04.html">Handle Release Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ch18s09s04.html#INKHandleMLocRelease">INKHandleMLocRelease</a></span></dt>
+<dt><span class="section"><a href="ch18s09s04.html#INKHandleStringRelease">INKHandleStringRelease</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section"><a href="MarshallBuffersFunctions.html">Marshal Buffers</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MarshallBuffersFunctions.html#INKMBufferCreate">INKMBufferCreate</a></span></dt>
+<dt><span class="section"><a href="INKMBufferDestroy.html">INKMBufferDestroy</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html">HTTP Header Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrClone">INKHttpHdrClone</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrCopy">INKHttpHdrCopy</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrCreate">INKHttpHdrCreate</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrDestroy">INKHttpHdrDestroy</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrLengthGet">INKHttpHdrLengthGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrMethodGet">INKHttpHdrMethodGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrMethodSet">INKHttpHdrMethodSet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrPrint">INKHttpHdrPrint</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrReasonGet">INKHttpHdrReasonGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrReasonLookup">INKHttpHdrReasonLookup</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrReasonSet">INKHttpHdrReasonSet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrStatusGet">INKHttpHdrStatusGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrStatusSet">INKHttpHdrStatusSet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrTypeGet">INKHttpHdrTypeGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrTypeSet">INKHttpHdrTypeSet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrUrlGet">INKHttpHdrUrlGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrUrlSet">INKHttpHdrUrlSet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrVersionGet">INKHttpHdrVersionGet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrVersionSet">INKHttpHdrVersionSet</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpParserClear">INKHttpParserClear</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpParserCreate">INKHttpParserCreate</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpParserDestroy">INKHttpParserDestroy</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrParseReq">INKHttpHdrParseReq</a></span></dt>
+<dt><span class="section"><a href="HTTPHeaderFunctions.html#INKHttpHdrParseResp">INKHttpHdrParseResp</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="URLFunctions.html">URL Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlClone">INKUrlClone</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlCopy">INKUrlCopy</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlCreate">INKUrlCreate</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlDestroy">INKUrlDestroy</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPrint">INKUrlPrint</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlFtpTypeGet">INKUrlFtpTypeGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlFtpTypeSet">INKUrlFtpTypeSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHostGet">INKUrlHostGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHostSet">INKUrlHostSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHttpFragmentGet">INKUrlHttpFragmentGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHttpFragmentSet">INKUrlHttpFragmentSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHttpParamsGet">INKUrlHttpParamsGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHttpParamsSet">INKUrlHttpParamsSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHttpQueryGet">INKUrlHttpQueryGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlHttpQuerySet">INKUrlHttpQuerySet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlLengthGet">INKUrlLengthGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlParse">INKUrlParse</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPasswordGet">INKUrlPasswordGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPasswordSet">INKUrlPasswordSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPathGet">INKUrlPathGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPathSet">INKUrlPathSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPortGet">INKUrlPortGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlPortSet">INKUrlPortSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlSchemeGet">INKUrlSchemeGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlSchemeSet">INKUrlSchemeSet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlStringGet">INKUrlStringGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlUserGet">INKUrlUserGet</a></span></dt>
+<dt><span class="section"><a href="URLFunctions.html#INKUrlUserSet">INKUrlUserSet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="MimeHeadersFunctions.html">MIIME Headers</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldAppend">INKMimeHdrFieldAppend</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldClone">INKMimeHdrFieldClone</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldCopy">INKMimeHdrFieldCopy</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldCopyValues">INKMimeHdrFieldCopyValues</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldCreate">INKMimeHdrFieldCreate</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldDestroy">INKMimeHdrFieldDestroy</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldLengthGet">INKMimeHdrFieldLengthGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNameGet">INKMimeHdrFieldNameGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNameSet">INKMimeHdrFieldNameSet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNext">INKMimeHdrFieldNext</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldNextDup">INKMimeHdrFieldNextDup</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueAppend">INKMimeHdrFieldValueAppend</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateGet">INKMimeHdrFieldValueDateGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateInsert">INKMimeHdrFieldValueDateInsert</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDateSet">INKMimeHdrFieldValueDateSet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueDelete">INKMimeHdrFieldValueDelete</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntGet">INKMimeHdrFieldValueIntGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntInsert">INKMimeHdrFieldValueIntInsert</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueIntSet">INKMimeHdrFieldValueIntSet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringGet">INKMimeHdrFieldValueStringGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringInsert">INKMimeHdrFieldValueStringInsert</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueStringSet">INKMimeHdrFieldValueStringSet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintGet">INKMimeHdrFieldValueUintGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUIntInsert">INKMimeHdrFieldValueUIntInsert</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValueUintSet">INKMimeHdrFieldValueUintSet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValuesClear">INKMimeHdrFieldValuesClear</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldValuesCount">INKMimeHdrFieldValuesCount</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrClone">INKMimeHdrClone</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrCopy">INKMimeHdrCopy</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrCreate">INKMimeHdrCreate</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrDestroy">INKMimeHdrDestroy</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldFind">INKMimeHdrFieldFind</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldGet">INKMimeHdrFieldGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldRemove">INKMimeHdrFieldRemove</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldsClear">INKMimeHdrFieldsClear</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrFieldsCount">INKMimeHdrFieldsCount</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrLengthGet">INKMimeHdrLengthGet</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrParse">INKMimeHdrParse</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeParserClear">INKMimeParserClear</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeParserCreate">INKMimeParserCreate</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeParserDestroy">INKMimeParserDestroy</a></span></dt>
+<dt><span class="section"><a href="MimeHeadersFunctions.html#INKMimeHdrPrint">INKMimeHdrPrint</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section"><a href="MutexFunctions.html">Mutex Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="MutexFunctions.html#INKMutexCreate">INKMutexCreate</a></span></dt>
+<dt><span class="section"><a href="INKMutexLock.html">INKMutexLock</a></span></dt>
+<dt><span class="section"><a href="INKMutexLockTry.html">INKMutexLockTry</a></span></dt>
+<dt><span class="section"><a href="INKMutexUnlock.html">INKMutexUnlock</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ContinuationFunctions.html">Continuation Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ContinuationFunctions.html#INKContCall">INKContCall</a></span></dt>
+<dt><span class="section"><a href="INKContCreate.html">INKContCreate</a></span></dt>
+<dt><span class="section"><a href="INKContDataGet.html">INKContDataGet</a></span></dt>
+<dt><span class="section"><a href="INKContDataSet.html">INKContDataSet</a></span></dt>
+<dt><span class="section"><a href="INKContDestroy.html">INKContDestroy</a></span></dt>
+<dt><span class="section"><a href="INKContMutexGet.html">INKContMutexGet</a></span></dt>
+<dt><span class="section"><a href="INKContSchedule.html">INKContSchedule</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="PluginConfigurationFunctions.html">Plugin Configuration Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="PluginConfigurationFunctions.html#INKConfigDataGet">INKConfigDataGet</a></span></dt>
+<dt><span class="section"><a href="INKConfigGet.html">INKConfigGet</a></span></dt>
+<dt><span class="section"><a href="INKConfigRelease.html">INKConfigRelease</a></span></dt>
+<dt><span class="section"><a href="INKConfigSet.html">INKConfigSet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ActionFunctions.html">Action Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="ActionFunctions.html#INKActionCancel">INKActionCancel</a></span></dt>
+<dt><span class="section"><a href="INKActionDone.html">INKActionDone</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="HostLookupFunctions.html">Host Lookup Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="HostLookupFunctions.html#INKHostLookup">INKHostLookup</a></span></dt>
+<dt><span class="section"><a href="INKHostLookupResultIPGet.html">INKHostLookupResultIPGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="VconnectionFunctions.html">Vconnection Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="VconnectionFunctions.html#INKVConnAbort">INKVConnAbort</a></span></dt>
+<dt><span class="section"><a href="INKVConnClose.html">INKVConnClose</a></span></dt>
+<dt><span class="section"><a href="INKVConnClosedGet.html">INKVConnClosedGet</a></span></dt>
+<dt><span class="section"><a href="INKVConnRead.html">INKVConnRead</a></span></dt>
+<dt><span class="section"><a href="INKVConnReadVIOGet.html">INKVConnReadVIOGet</a></span></dt>
+<dt><span class="section"><a href="INKVConnShutdown.html">INKVConnShutdown</a></span></dt>
+<dt><span class="section"><a href="INKVConnWrite.html">INKVConnWrite</a></span></dt>
+<dt><span class="section"><a href="INKVConnWriteVIOGet.html">INKVConnWriteVIOGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="NetvconnectionFunctions.html">Netvconnection Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="NetvconnectionFunctions.html#INKNetAccept">INKNetAccept</a></span></dt>
+<dt><span class="section"><a href="INKNetConnect.html">INKNetConnect</a></span></dt>
+<dt><span class="section"><a href="INKNetVConnRemoteIPGet.html">INKNetVConnRemoteIPGet</a></span></dt>
+<dt><span class="section"><a href="INKNetVConnRemotePortGet.html">INKNetVConnRemotePortGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="CacheInterfaceFunctions.html">Cache Interface Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CacheInterfaceFunctions.html#INKCacheKeyCreate">INKCacheKeyCreate</a></span></dt>
+<dt><span class="section"><a href="INKCacheKeyDigestSet.html">INKCacheKeyDigestSet</a></span></dt>
+<dt><span class="section"><a href="INKCacheKeyHostNameSet.html">INKCacheKeyHostNameSet</a></span></dt>
+<dt><span class="section"><a href="INKCacheKeyDestroy.html">INKCacheKeyDestroy</a></span></dt>
+<dt><span class="section"><a href="INKCacheRead.html">INKCacheRead</a></span></dt>
+<dt><span class="section"><a href="INKCacheReady.html">INKCacheReady</a></span></dt>
+<dt><span class="section"><a href="INKCacheWrite.html">INKCacheWrite</a></span></dt>
+<dt><span class="section"><a href="INKCacheRemove.html">INKCacheRemove</a></span></dt>
+<dt><span class="section"><a href="INKCacheKeyPinnedSet.html">INKCacheKeyPinnedSet</a></span></dt>
+<dt><span class="section"><a href="INKVConnCacheObjectSizeGet.html">INKVConnCacheObjectSizeGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="TransformationFunctions.html">Transformation Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="TransformationFunctions.html#INKTransformCreate">INKTransformCreate</a></span></dt>
+<dt><span class="section"><a href="INKTransformOutputVConnGet.html">INKTransformOutputVConnGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="VIOFunctions.html">VIO Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="VIOFunctions.html#INKVIOBufferGet">INKVIOBufferGet</a></span></dt>
+<dt><span class="section"><a href="INKVIOVConnGet.html">INKVIOVConnGet</a></span></dt>
+<dt><span class="section"><a href="INKVIOContGet.html">INKVIOContGet</a></span></dt>
+<dt><span class="section"><a href="INKVIOMutexGet.html">INKVIOMutexGet</a></span></dt>
+<dt><span class="section"><a href="INKVIONBytesGet.html">INKVIONBytesGet</a></span></dt>
+<dt><span class="section"><a href="INKVIONBytesSet.html">INKVIONBytesSet</a></span></dt>
+<dt><span class="section"><a href="INKVIONDoneGet.html">INKVIONDoneGet</a></span></dt>
+<dt><span class="section"><a href="INKVIONDoneSet.html">INKVIONDoneSet</a></span></dt>
+<dt><span class="section"><a href="INKVIONTodoGet.html">INKVIONTodoGet</a></span></dt>
+<dt><span class="section"><a href="INKVIOReaderGet.html">INKVIOReaderGet</a></span></dt>
+<dt><span class="section"><a href="INKVIOReenable.html">INKVIOReenable</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="IOBufferInterfaceFunctions.html">IO Buffer Interface</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="IOBufferInterfaceFunctions.html#INKIOBufferBlockNext">INKIOBufferBlockNext</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferBlockReadAvail.html">INKIOBufferBlockReadAvail</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferBlockReadStart.html">INKIOBufferBlockReadStart</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferBlockWriteAvail.html">INKIOBufferBlockWriteAvail</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferBlockWriteStart.html">INKIOBufferBlockWriteStart</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferCopy.html">INKIOBufferCopy</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferCreate.html">INKIOBufferCreate</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferDestroy.html">INKIOBufferDestroy</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferProduce.html">INKIOBufferProduce</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferReaderAlloc.html">INKIOBufferReaderAlloc</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferReaderAvail.html">INKIOBufferReaderAvail</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferReaderClone.html">INKIOBufferReaderClone</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferReaderConsume.html">INKIOBufferReaderConsume</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferReaderFree.html">INKIOBufferReaderFree</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferReaderStart.html">INKIOBufferReaderStart</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferSizedCreate.html">INKIOBufferSizedCreate</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferStart.html">INKIOBufferStart</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferWaterMarkGet.html">INKIOBufferWaterMarkGet</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferWaterMarkSet.html">INKIOBufferWaterMarkSet</a></span></dt>
+<dt><span class="section"><a href="INKIOBufferWrite.html">INKIOBufferWrite</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="ManagementInterfaceFunctions.html">Management Interface Functions</a></span></dt>
+<dd><dl><dt><span class="section"><a href="ManagementInterfaceFunctions.html#INKMgmtUpdateRegister">INKMgmtUpdateRegister</a></span></dt></dl></dd>
+<dt><span class="section"><a href="TEConfigReadFunctions.html">Traffic Server Configuration Read Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="TEConfigReadFunctions.html#INKMgmtCounterGet">INKMgmtCounterGet</a></span></dt>
+<dt><span class="section"><a href="INKMgmtFloatGet.html">INKMgmtFloatGet</a></span></dt>
+<dt><span class="section"><a href="INKMgmtIntGet.html">INKMgmtIntGet</a></span></dt>
+<dt><span class="section"><a href="INKMgmtStringGet.html">INKMgmtStringGet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="CustInstallLicenseFunctions.html">Customer Installation and Licensing Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CustInstallLicenseFunctions.html#INKInstallDirGet">INKInstallDirGet</a></span></dt>
+<dt><span class="section"><a href="INKPluginDirGet.html">INKPluginDirGet</a></span></dt>
+<dt><span class="section"><a href="INKPluginLicenseRequired.html">INKPluginLicenseRequired</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="StatisticsFunctions.html">Statistics Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="StatisticsFunctions.html#UncoupledStatsFuncs">Uncoupled Statistics</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatFloatGet">INKStatFloatGet</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatIntGet">INKStatIntGet</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatFloatAddTo">INKStatFloatAddTo</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatIntAddTo">INKStatIntAddTo</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatCreate">INKStatCreate</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatDecrement">INKStatDecrement</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatIncrement">INKStatIncrement</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatFloatSet">INKStatFloatSet</a></span></dt>
+<dt><span class="section"><a href="StatisticsFunctions.html#INKStatIntSet">INKStatIntSet</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="CoupledStatsFunctions.html">Coupled Statistics</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="CoupledStatsFunctions.html#INKStatCoupledGlobalAdd">INKStatCoupledGlobalAdd</a></span></dt>
+<dt><span class="section"><a href="CoupledStatsFunctions.html#INKStatCoupledLocalAdd">INKStatCoupledLocalAdd</a></span></dt>
+<dt><span class="section"><a href="CoupledStatsFunctions.html#INKStatCoupledGlobalCategoryCreate">INKStatCoupledGlobalCategoryCreate</a></span></dt>
+<dt><span class="section"><a href="CoupledStatsFunctions.html#INKStatCoupledLocalCopyCreate">INKStatCoupledLocalCopyCreate</a></span></dt>
+<dt><span class="section"><a href="CoupledStatsFunctions.html#INKStatCoupledLocalCopyDestroy">INKStatCoupledLocalCopyDestroy</a></span></dt>
+<dt><span class="section"><a href="CoupledStatsFunctions.html#INKStatsCoupledUpdate">INKStatsCoupledUpdate</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section"><a href="LoggingFunctions.html">Logging Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="LoggingFunctions.html#INKTextLogObjectCreate">INKTextLogObjectCreate</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectHeaderSet.html">INKTextLogObjectHeaderSet</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectRollingEnabledSet.html">INKTextLogObjectRollingEnabledSet</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectRollingIntervalSecSet.html">INKTextLogObjectRollingIntervalSecSet</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectRollingOffsetHrSet.html">INKTextLogObjectRollingOffsetHrSet</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectWrite.html">INKTextLogObjectWrite</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectFlush.html">INKTextLogObjectFlush</a></span></dt>
+<dt><span class="section"><a href="INKTextLogObjectDestroy.html">INKTextLogObjectDestroy</a></span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="appendix"><a href="App_SampleSourceCode.html">A. Sample Source Code</a></span></dt>
+<dd><dl><dt><span class="section"><a href="App_SampleSourceCode.html#Sample_blacklist-1.c">blacklist-1.c</a></span></dt></dl></dd>
+<dt><span class="appendix"><a href="App_DeprecatedFunctions.html">B. Deprecated Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#DepMimeHdrFunctions">Deprecated MIME Header Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldCopy">INKMimeFieldCopy</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldCopyValues">INKMimeFieldCopyValues</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldCreate">INKMimeFieldCreate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldDestroy">INKMimeFieldDestroy</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldLengthGet">INKMimeFieldLengthGet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldNameGet">INKMimeFieldNameGet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldNameSet">INKMimeFieldNameSet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldNext">INKMimeFieldNext</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueAppend">INKMimeFieldValueAppend</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueDelete">INKMimeFieldValueDelete</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueGet">INKMimeFieldValueGet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueGetDate">INKMimeFieldValueGetDate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueGetInt">INKMimeFieldValueGetInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueGetUint">INKMimeFieldValueGetUint</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueInsertDate">INKMimeFieldValueInsertDate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueInsertInt">INKMimeFieldValueInsertInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueInsertUint">INKMimeFieldValueInsertUint</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValuesClear">INKMimeFieldValuesClear</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValuesCount">INKMimeFieldValuesCount</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueSet">INKMimeFieldValueSet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueSetDate">INKMimeFieldValueSetDate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueSetInt">INKMimeFieldValueSetInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeFieldValueSetUint">INKMimeFieldValueSetUint</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueGet">INKMimeHdrFieldValueGet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueGetDate">INKMimeHdrFieldValueGetDate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueGetInt">INKMimeHdrFieldValueGetInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueGetUInt">INKMimeHdrFieldValueGetUInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueInsert">INKMimeHdrFieldValueInsert</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueInsertDate">INKMimeHdrFieldValueInsertDate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueInsertInt">INKMimeHdrFieldValueInsertInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueInsertUInt">INKMimeHdrFieldValueInsertUInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueSet">INKMimeHdrFieldValueSet</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueSetDate">INKMimeHdrFieldValueSetDate</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueSetInt">INKMimeHdrFieldValueSetInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldValueSetUInt">INKMimeHdrFieldValueSetUInt</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldDelete">INKMimeHdrFieldDelete</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldInsert">INKMimeHdrFieldInsert</a></span></dt>
+<dt><span class="section"><a href="App_DeprecatedFunctions.html#INKMimeHdrFieldRetrieve">INKMimeHdrFieldRetrieve</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="OtherDeprecatedFunctions.html">Other Deprecated Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="OtherDeprecatedFunctions.html#Dep_StatisticFunctions">Statistic Functions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="OtherDeprecatedFunctions.html#INKStatFloatRead">INKStatFloatRead</a></span></dt>
+<dt><span class="section"><a href="OtherDeprecatedFunctions.html#INKStatIntRead">INKStatIntRead</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="Dep_IOBufferInterface.html">IO Buffer Interface</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="Dep_IOBufferInterface.html#INKIOBufferAppend">INKIOBufferAppend</a></span></dt>
+<dt><span class="section"><a href="Dep_IOBufferInterface.html#INKIOBufferBlockCreate">INKIOBufferBlockCreate</a></span></dt>
+<dt><span class="section"><a href="Dep_IOBufferInterface.html#INKIOBufferDataCreate">INKIOBufferDataCreate</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="Dep_MutexFunctions.html">Mutex Function</a></span></dt>
+<dd><dl><dt><span class="section"><a href="Dep_MutexFunctions.html#InkMutexTryLock">InkMutexTryLock</a></span></dt></dl></dd>
+</dl></dd>
+</dl></dd>
+<dt><span class="appendix"><a href="App_Troubleshooting.html">C. Troubleshooting Tips</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="App_Troubleshooting.html#Trouble_CompilePlugins">Unable to Compile Plugins</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="App_Troubleshooting.html#CompilePlugins_Unix">Unix Example</a></span></dt>
+<dt><span class="section"><a href="App_Troubleshooting.html#CompilePlugins_HPUX">HPUX Example</a></span></dt>
+<dt><span class="section"><a href="App_Troubleshooting.html#CompilePlugins_Win">Compiling For Windows NT</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="Trouble_LoadPlugins.html">Unable to Load Plugins</a></span></dt>
+<dt><span class="section"><a href="Trouble_DebugTags.html">Using Debug Tags</a></span></dt>
+<dd><dl><dt><span class="section"><a href="Trouble_DebugTags.html#Trouble_OtherDebugTags">Other Useful Internal Debug Tags</a></span></dt></dl></dd>
+<dt><span class="section"><a href="Trouble_UsingDebugger.html">Using a Debugger</a></span></dt>
+<dd><dl><dt><span class="section"><a href="Trouble_UsingDebugger.html#Trouble_DebuggingTips">Debugging Tips:</a></span></dt></dl></dd>
+<dt><span class="section"><a href="Trouble_DebugMemLeaks.html">Debugging Memory Leaks</a></span></dt>
+</dl></dd>
+<dt><span class="appendix"><a href="FunctionIndex.html">D. Function Index</a></span></dt>
+<dt><span class="appendix"><a href="TypeIndex.html">E. Type Index</a></span></dt>
+<dt><span class="index"><a href="ConceptIndex.html">Index</a></span></dt>
+</dl>
+</div>
+<div class="list-of-figures">
+<p><b>List of Figures</b></p>
+<dl>
+<dt>1.1. <a href="GetingStarted.html#Fig_PluginProcess">Plugin Process</a>
+</dt>
+<dt>1.2. <a href="GetingStarted.html#Fig_PossibleTSPlugins">Possible Traffic Server Plugins</a>
+</dt>
+<dt>2.1. <a href="CreatingTSPlugins.html#Fig_TSInternals">Traffic Server Internals</a>
+</dt>
+<dt>2.2. <a href="CreatingTSPlugins.html#Fig_TSwithPlugins">Traffic Server with Plugins</a>
+</dt>
+<dt>2.3. <a href="CreatingTSPlugins.html#Fig_HTTPTransaction">Simplified HTTP Transaction</a>
+</dt>
+<dt>2.4. <a href="CreatingTSPlugins.html#Fig_APIHooks_States">API Hooks Corresponding to States Listed in Figure 2.3, “Simplified HTTP Transaction”</a>
+</dt>
+<dt>2.5. <a href="CreatingTSPlugins.html#Fig_BlacklistPlugin">Blacklist Plugin</a>
+</dt>
+<dt>5.1. <a href="HTTPTransformationPlugins.html#Fig_TransformationAndVIOs">A Transformation and its VIOs</a>
+</dt>
+<dt>5.2. <a href="SampleNullTransformPlugin.html#Fig_PassDataThruTransform">Passing Data Through a Transformation</a>
+</dt>
+<dt>5.3. <a href="SampleNullTransformPlugin.html#Fig_EndTransformation">Ending the Transformation</a>
+</dt>
+<dt>5.4. <a href="SampleBufferedNullTransformPlugin.html#Fig_STATE_BUFFER_DATAState">Reading Data Into the Buffer (the STATE_BUFFER_DATA
+            State)</a>
+</dt>
+<dt>5.5. <a href="SampleBufferedNullTransformPlugin.html#Fig_WriteBufferedDataToOutputVcon">Writing the Buffered Data to the Output Vconnection</a>
+</dt>
+<dt>6.1. <a href="NewProtocolPlugins.html#Fig_SampleProtocolStDiag">Sample Protocol State Diagram</a>
+</dt>
+<dt>6.2. <a href="NewProtocolPlugins.html#Fig_ProtocolPluginOverview">Protocol Plugin Overview</a>
+</dt>
+<dt>6.3. <a href="NewProtocolPlugins.html#Fig_ProtocolPluginFlow">Protocol Plugin Flow of Events</a>
+</dt>
+<dt>6.4. <a href="NewProtocolPlugins.html#Fig_ImplementTransStMachine">How Transaction State Machines are Implemented in the
+          Protocol Plugin</a>
+</dt>
+<dt>8.1. <a href="HTTPHooksAndTransactions.html#Fig_HHTTPTxStateDiag">HTTP Transaction State Diagram</a>
+</dt>
+<dt>10.1. <a href="HTTPHeaders.html#Fig_ReqRespHeaderStruc">HTTP Request/Response and Header Structure</a>
+</dt>
+<dt>10.2. <a href="HTTPHeaders.html#Fig_HTTPReqRespHdrs">Examples of HTTP Request and Response Headers</a>
+</dt>
+<dt>10.3. <a href="HTTPHeaders.html#Fig_MarshalBufsHdrLocations">Marshal Buffers and Header Locations</a>
+</dt>
+</dl>
+</div>
+<div class="list-of-tables">
+<p><b>List of Tables</b></p>
+<dl>
+<dt>1. <a href="Conventions.html#id305513">Typographical Conventions</a>
+</dt>
+<dt>8.1. <a href="AddingHooks.html#Tbl_INKHttpHookIDValues">INKHttpHookID Values</a>
+</dt>
+</dl>
+</div>
+</div>
+</body>
+</html>

Propchange: incubator/trafficserver/site/trunk/docs/sdk/index.html
------------------------------------------------------------------------------
    svn:keywords = Id

Added: incubator/trafficserver/site/trunk/docs/sdk/js/toc.js
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/js/toc.js?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/js/toc.js (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/js/toc.js Thu Oct 29 23:23:25 2009
@@ -0,0 +1,175 @@
+var tree;
+var root;
+var COOKIE_NAME = "tocState";
+
+/*
+ * Fallback value in case the URL is a directory: http://foo.com/bar/. 
+ * Set this to your default page: index.htm, index.php, ...  
+ */
+var INDEX_PAGE = "index.html";  
+
+
+// Set an empty state cookie, if we haven't set one yet. Otherwise getState() could fail.  
+if (getState() == null) {
+    document.cookie = COOKIE_NAME + "=" + ":1";
+}
+
+/*
+ * 1. Create the tree.
+ * 2. Add onExpand() and onCollapse() functions.
+ * 3. Populate the tree with nodes. The details of how we populate the tree are not important.
+ *    However, a key assumption is all files in are in a single flat directory, with all links 
+ *    relative. The getPageNode() function relies on this convention.
+ * 4. Expand the tree according to its previously-recorded state.
+ * 5. Highlight the currently-selected page, expanding as necessary.
+ * 6. Draw the tree.
+ */
+function treeInit() {
+    tree = new YAHOO.widget.TreeView("toc");
+	
+    // Record expand and collapse events.
+    tree.onExpand = function(node) { storeExpand(node); }
+    tree.onCollapse = function(node) { storeCollapse(node); }
+    root = tree.getRoot();
+
+    // Example nodes. For a real site, we could generate these nodes somehow. Or not. 
+    addNodes();
+
+    preservePreviousExpansion(getState());
+    expandAndHighlightPageNode(getPageNode());
+    tree.draw();
+}
+
+/*
+ * Stores an expansion event. The cookie stores the index of each expanded 
+ * node, using ":" as a separator. For example, ":2:1:15" means that nodes 1, 2, 
+ * and 15 are expanded. There is an initial ":" because of programmer laziness.
+ *
+ * We don't bother specifying the expiration date of the cookie. It would be
+ * interesting to preserve the expansion state for a very long time, but the 
+ * default (saving until the user closes the browser) is probably the best way
+ * to go. 
+ */
+function storeExpand(node) {
+    var state = getState(); 
+    if (state.indexOf(node.index) == -1) {
+        document.cookie = COOKIE_NAME + "=" + state + ":" + node.index;    
+    }
+}
+
+/*
+ * Stores a collapse event by removing a previously-recorded expansion event. 
+ */
+function storeCollapse(node) {
+    var state = getState();
+    if (state.indexOf(node.index) != -1) {
+        re = new RegExp(":" + node.index);
+        document.cookie = COOKIE_NAME + "=" + state.replace(re, "", "g");
+    }
+}
+
+/*
+ * Adapted from Peter-Paul Koch's readCookie() method (www.quirksmode.org). 
+ * PPK's retrieved any cookie, this version retrieves the value of the specific 
+ * cookie that represents the state.
+ */ 
+function getState() {
+    var nameEQ = COOKIE_NAME + "=";
+    var ca = document.cookie.split(';');
+    for(var i=0;i < ca.length;i++) {
+        var c = ca[i];
+        while (c.charAt(0)==' ') c = c.substring(1,c.length);
+        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);	
+    }
+    return null;
+}
+/*
+ * Runs through the state (a colon-separated string of node indices) and
+ * expands each node before displaying the tree. From the user's perspective, 
+ * when they click on a link, any previous expansions are faithfully 
+ * reproduced on the new page.
+ * 
+ * Note: because the state string always begins with a colon, we must start 
+ * at i = 1. 
+ */
+function preservePreviousExpansion(state) {
+    nodes = state.split(/:/);
+    var node;
+    if (nodes.length > 1) {
+        for (var i = 1; i < nodes.length; i++) {
+            node = tree.getNodeByIndex(nodes[i]);
+            if (node != null) {
+                node.expand();
+            }
+        }
+    }
+}
+
+/*
+ * Retrieves the pageNode, the node in the tree that represents the current
+ * page. Since we've adopted the convention that all files in are in a single
+ * flat directory, we can just use the filename as a unique identifier,
+ * retrieving it from location.href.
+ *
+ * If you use a different convention for your files, this function breaks.
+ * This function does account for:
+ *   - requesting a "index.html" file implicitly (http://foo.com/bar/)
+ *   - requesting an anchor that is *not* a valid node (foo.html#invalidanchor)
+ */
+function getPageNode() {
+
+    /*
+     * Was the request for an index page? Otherwise, grab the filename
+     * and proceed. Note: this trick only works because our server rewrites
+     * URLs like http://foo.com/bar to http://foo.com/bar/. We used to check
+     * whether fn was blank or null, but that fails in IE.
+     */
+    if (location.href.charAt(location.href.length - 1) == "/") {
+      fn = INDEX_PAGE;
+    }
+    else {
+      splitHref = location.href.split(/\//);
+      fn = splitHref[splitHref.length - 1];
+    }
+
+    n = tree.getNodeByProperty("href", fn);
+
+    // Was the request for an anchor that is *not* a valid node?
+    // We had to try to get a node first, because anchors are valid.
+    if (n == null) {
+        splitHref = fn.split(/#/);
+        fn = splitHref[0];
+        n = tree.getNodeByProperty("href", fn);
+    }
+
+    // And now let us pray.
+    return n;
+}
+
+/*
+ * Highlights the pageNode with the custom CSS class "expanded", then calls 
+ * expandTo() in order to open the tree to the pageNode.  
+ */
+function expandAndHighlightPageNode(pageNode) {
+    pageNode.labelStyle = "expanded";
+    expandTo(pageNode);
+}
+
+/*
+ * Given a node, recursively expand up through the tree. We use this to 
+ * expand to the pageNode. This function is important if the user first 
+ * enters the site via a deep link. The user hasn't manually expanded the 
+ * nodes, and the state is therefore empty, but the tree can still expand 
+ * to the selected node on its own.
+ */
+function expandTo(node) {
+    if (node.parent != null) {
+        node.parent.expand();
+        expandTo(node.parent);
+    }
+}
+
+/*
+ * Finally, let's launch this sucker! 
+ */
+YAHOO.util.Event.onDOMReady(treeInit);



Mime
View raw message