trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andrew...@apache.org
Subject svn commit: r831152 [11/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/ContinuationFunctions.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/ContinuationFunctions.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/ContinuationFunctions.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/ContinuationFunctions.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Continuation Functions</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="FunctionReference.html" title="Chapter 18. Function Reference">
+<link rel="prev" href="INKMutexUnlock.html" title="INKMutexUnlock">
+<link rel="next" href="INKContCreate.html" title="INKContCreate">
+<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">
+<link rel="subsection" href="ContinuationFunctions.html#INKContCall" title="INKContCall">
+<link rel="subsection" href="INKContCreate.html" title="INKContCreate">
+<link rel="subsection" href="INKContDataGet.html" title="INKContDataGet">
+<link rel="subsection" href="INKContDataSet.html" title="INKContDataSet">
+<link rel="subsection" href="INKContDestroy.html" title="INKContDestroy">
+<link rel="subsection" href="INKContMutexGet.html" title="INKContMutexGet">
+<link rel="subsection" href="INKContSchedule.html" title="INKContSchedule">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKMutexUnlock.html">Prev</a> — INKMutexUnlock</div>
+<div class="navnext">INKContCreate — <a accesskey="n" href="INKContCreate.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="ContinuationFunctions"></a>Continuation Functions</h2></div></div></div>
+<p></p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKContCall"></a>INKContCall</h3></div></div></div>
+<p>Calls a continuation.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">int INKContCall (INKCont
+              <em class="replaceable"><code>contp</code></em>, INKEvent
+              <em class="replaceable"><code>event</code></em>, void
+              *<em class="replaceable"><code>edata</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Sends <code class="code"><em class="replaceable"><code>event</code></em></code> and
+              <code class="code"><em class="replaceable"><code>edata</code></em></code> to the
+              <code class="code"><em class="replaceable"><code>contp</code></em></code>’s handler
+              function. It is an error to call a continuation without holding
+              the continuation’s lock.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd><p>The values returned by the continuation contp event
+              handler.</p></dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.0</p></dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

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

Added: incubator/trafficserver/site/trunk/docs/sdk/Continuations.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/Continuations.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/Continuations.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/Continuations.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,169 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Chapter 12. Continuations</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="prev" href="MutexGuide.html" title="Chapter 11. Mutex Guide">
+<link rel="next" href="ActivateContinuations.html" title="How to Activate Continuations">
+<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">
+<link rel="section" href="Continuations.html#MutexesAndData" title="Mutexes and Data">
+<link rel="section" href="ActivateContinuations.html" title="How to Activate Continuations">
+<link rel="section" href="WritingHandlerFunctions.html" title="Writing Handler Functions">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="MutexGuide.html">Prev</a> — Chapter 11. Mutex Guide</div>
+<div class="navnext">How to Activate Continuations — <a accesskey="n" href="ActivateContinuations.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="Continuations"></a>Chapter 12. Continuations</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<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>
+</div>
+<p>The continuation interface is Traffic Server’s basic callback
+    mechanism. Continuations are instances of the opaque data type INKCont. In
+    its basic form a continuation represents a handler function and a mutex.
+    This chapter contains:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p><a href="Continuations.html#MutexesAndData" title="Mutexes and Data">“Mutexes and Data”</a></p></li>
+<li><p><a href="ActivateContinuations.html" title="How to Activate Continuations">“How to Activate Continuations”</a></p></li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="MutexesAndData"></a>Mutexes and Data</h2></div></div></div>
+<p>A continuation must be created with a mutex if your continuation
+      does one of the following:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>is registered globally (<code class="function">INKHttpHookAdd</code> or
+          <code class="function">INKHttpSsnHookAdd</code>) to an HTTP hook and uses
+          <code class="function">INKContDataSet/Get</code>.</p></li>
+<li><p>is registered locally (<code class="function">INKHttpTxnHookAdd</code>)
+          but for multiple transactions and uses
+          <code class="function">INKContDataSet/Get</code>.</p></li>
+<li><p>uses <code class="function">INKCacheXXX</code>,
+          <code class="function">INKNetXXX</code>, <code class="function">INKHostLookup</code>
+          or <code class="function">INKContSchedule</code> APIs.</p></li>
+</ul></div>
+<p>Before being activated, a caller must grab the continuation’s
+      mutex. This requirement makes it possible for a continuation’s handler
+      function to safely access its data and to prevent it from being run by
+      multiple callers at the same time. See the sample Protocol plugin for
+      usage. The data protected by the mutex is: any global or continuation
+      data associated to the continuation by
+      <code class="function">INKContDataSet</code>. This does not include the local
+      data created by the continuation handler function. A typical example of
+      continuations created with associated data structures and mutexes is the
+      transaction state machine created in the sample Protocol plugin. See
+      <a href="NewProtocolPlugins.html#ImplementTransStMachine" title="One Way to Implement a Transaction State Machine">“One Way to Implement a Transaction State Machine”</a></p>
+<p>A reentrant call occurs when the continuation passed as an
+      argument to the API can be called in the same stack trace as the
+      function calling the API. For instance, if you call INKCacheRead
+      (<code class="code">contp, mykey</code>), it is possible that contp’s handler will be
+      called directly and then <code class="function">INKCacheRead</code> returns.
+      Caveats that could cause a possible issues if:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>a continuation has data associated with it
+          (<code class="function">INKContDataGet</code>).</p></li>
+<li><p>the reentrant call passes itself as a continuation to the
+          reentrant API. In this case, the continuation should not try to
+          access its data after having called the reentrant API. The reason
+          for this is that data may be modified by the section of code of the
+          continuation’s handler that handles the event sent by the API. It is
+          recommended that you always return after a reentrant call to avoid
+          accessing something that has been deallocated.</p></li>
+</ul></div>
+<p>Below is an example with an explaination.</p>
+<pre class="programlisting">continuation_handler (INKCont contp, INKEvent event, void *edata) {
+   switch (event) {
+   case event1:
+      INKReentrantCall (contp);
+      /* Return right away after this call */
+      break;
+   case event2:
+      INKContDestroy (contp);
+      break;
+   }
+}</pre>
+<p>The above example first assumes that the continuation is called
+      back with <code class="code">event1</code> and does the first reentrant call which
+      schedules the continuation to receive <code class="code">event2</code>. Because the
+      call is reentrant, the processor calls back the continuation right away
+      with <code class="code">event2</code> and the continuation is destroyed. If you try
+      to access the continuation, or one of its members after the reentrant
+      call, you might access something that has been deallocated. To avoid
+      accessing something that has been deallocated, never access the
+      continuation or any of its members after a reentrant call, just exit the
+      handler.</p>
+<p>Note that most HTTP transaction plugin continuations do not need
+      non-null mutexes, because they are called within the processing of an
+      HTTP transaction and thus have the transaction’s mutex.</p>
+<p>It is also possible to specify a continuation’s mutex as
+      <code class="code">NULL</code>. This should be done only when registering a
+      continuation to a global hook, by a call to
+      <code class="function">INKHttpHookAdd</code>. In this case, the continuation can
+      be called simultaneously by different instances of HTTP SM running on
+      different threads. Having a mutex here would slow down Traffic Server
+      performance since all the threads will try to lock the same mutex. The
+      drawback of not having a mutex is that such a continuation cannot have
+      data associated with it (<code class="function">INKContDataGet</code>/Set can not
+      be used).</p>
+<p>When using a <code class="code">NULL</code> mutex, it is dangerous to access
+      the continuation’s data, but it is usually the case that continuations
+      with <code class="code">NULL</code> mutexes have no data associated with them. An
+      example of such a continuation would be one that gets called back every
+      time an HTTP request is read and determines from the request alone
+      whether to let the request through or whether to reject it. An HTTP
+      transaction gives its continuation data to the
+      <code class="code">contp</code>.</p>
+</div>
+</div>
+</body>
+</html>

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

Added: incubator/trafficserver/site/trunk/docs/sdk/Conventions.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/Conventions.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/Conventions.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/Conventions.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,99 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Typographical Conventions</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="Preface.html" title="Preface">
+<link rel="prev" href="pr01s02.html" title="How to Use This Book">
+<link rel="next" href="GetingStarted.html" title="Chapter 1. Getting Started">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="pr01s02.html">Prev</a> — How to Use This Book</div>
+<div class="navnext">Chapter 1. Getting Started — <a accesskey="n" href="GetingStarted.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="Conventions"></a>Typographical Conventions</h2></div></div></div>
+<p>This document uses the following typographic conventions:</p>
+<div class="table">
+<a name="id305513"></a><p class="title"><b>Table 1. Typographical Conventions</b></p>
+<table summary="Typographical Conventions" border="1">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th align="center">Convention</th>
+<th align="center">Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><span class="emphasis"><em>italics</em></span></td>
+<td>Italics introduce terms.</td>
+</tr>
+<tr>
+<td><code class="code">monospaced face</code></td>
+<td>Represents C language statements, commands, file content
+              and computer output.</td>
+</tr>
+<tr>
+<td><code class="code"><em class="replaceable"><code>monospaced
+              italic</code></em></code></td>
+<td>Represents variables for which you should substitute a
+              value, as in the example, “enter a filename.”</td>
+</tr>
+<tr>
+<td>ellipsis <code class="code">...</code>
+</td>
+<td>Indicates the omission of irrelevant or unimportant
+              information.</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</body>
+</html>

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

Added: incubator/trafficserver/site/trunk/docs/sdk/CoupledStatistics.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/CoupledStatistics.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/CoupledStatistics.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/CoupledStatistics.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,158 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Coupled Statistics</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="AddingStatistics.html" title="Chapter 17. Adding Statistics">
+<link rel="prev" href="AddingStatistics.html" title="Chapter 17. Adding Statistics">
+<link rel="next" href="ViewStatsUsingTrafLine.html" title="Viewing Statistics Using Traffic Line">
+<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">
+<link rel="subsection" href="CoupledStatistics.html#Examp_redirect-1.c" title="Example Using the redirect-1.c Sample Plugin">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="AddingStatistics.html">Prev</a> — Chapter 17. Adding Statistics</div>
+<div class="navnext">Viewing Statistics Using Traffic Line — <a accesskey="n" href="ViewStatsUsingTrafLine.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="CoupledStatistics"></a>Coupled Statistics</h2></div></div></div>
+<p>Use coupled statistics for quantities that are related and must be
+      updated jointly. As a very simple example, suppose that you have three
+      statistics: <code class="code">sum</code>, <code class="code">part_1</code> and
+      <code class="code">part_2</code>, and they must always preserve the relationship that
+      <code class="code">sum = part_1 + part_2</code>. If you update <code class="code">part_1</code>
+      without updating sum at the same time, the equation would be untrue. The
+      mechanism for updating coupled statistics jointly is to create local
+      copies of global coupled statistics in the routines that modifiy them.
+      When each local copy is updated appropriately, you do a global update
+      using <code class="code">INKStatsCoupledUpdate</code>. To specify which statistics
+      are related to one another, you establish a coupled statistic category,
+      and make sure that each coupled statistic belongs to the appropriate
+      category. When it is time to do the global update, you specify the
+      category to be updated.</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/docbook/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>The local statistic copy must have a duplicate set of statistics
+        as that of the master copy. Local statistics must also be added to the
+        local statistic category in the same order as their master copy
+        counterparts were added originally.</p></td></tr>
+</table></div>
+<p>Here are the steps you needed, followed by an example of code that
+      is taken from the <code class="filename">redirect-1.c</code> sample
+      plugin.</p>
+<h3>
+<a name="AddCoupledStats"></a>To add coupled statistics:</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>Declare the global category for your coupled statistics as a
+          global <code class="code">INKCoupledStat</code> variable in your plugin.</p></li>
+<li><p>Declare your coupled statistics as global <code class="code">INKStat</code>
+          variables in your plugin.</p></li>
+<li><p>In <code class="code">INKPluginInit</code>, create a new global coupled
+          category using
+          <code class="code">INKStatCoupledGlobalCategoryCreate</code>.</p></li>
+<li>
+<p>In <code class="code">INKPluginInit</code>, create new global coupled
+          statistics using <code class="code">INKStatCoupledGlobalAdd</code>.</p>
+<p>When you create a new statistic, you need to give it an
+          “external” name that the Traffic Server command line interface
+          (Traffic Line) uses to access the statistic.</p>
+</li>
+<li><p>In any routine where you want to modify (increment, decrement,
+          or other modification) your coupled statistics, declare local copies
+          of the coupled category and coupled statistics.</p></li>
+<li><p>Then create local copies using
+          <code class="code">INKStatCoupledLocalCopyCreate</code> and
+          <code class="code">INKStatCoupledLocalAdd</code>.</p></li>
+<li><p>Modify the local copies of your statistics. Then to update the
+          global copies jointly, call
+          <code class="code">INKStatsCoupledUpdate</code>.</p></li>
+<li><p>When you are done, you must destroy the all of the local
+          copies in the category using
+          <code class="code">INKStatCoupledLocalCopyDestroy</code>.</p></li>
+</ol></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="Examp_redirect-1.c"></a>Example Using the redirect-1.c Sample Plugin</h3></div></div></div>
+<pre class="programlisting">static INKCoupledStat request_outcomes;
+
+static INKStat requests_all;
+static INKStat requests_redirects;
+static INKStat requests_unchanged;
+
+request_outcomes = INKStatCoupledGlobalCategoryCreate ("request_outcomes"); 
+
+requests_all = INKStatCoupledGlobalAdd (request_outcomes, "requests.all", INKSTAT_TYPE_FLOAT);
+requests_redirects = INKStatCoupledGlobalAdd (request_outcomes, "requests.redirects",
+    INKSTAT_TYPE_INT64);
+requests_unchanged = INKStatCoupledGlobalAdd (request_outcomes, "requests.unchanged", 
+    INKSTAT_TYPE_INT64);
+
+INKCoupledStat local_request_outcomes;
+INKStat local_requests_all;
+INKStat local_requests_redirects;
+INKStat local_requests_unchanged;
+
+local_request_outcomes = INKStatCoupledLocalCopyCreate("local_request_outcomes", 
+    request_outcomes); 
+local_requests_all = INKStatCoupledLocalAdd(local_request_outcomes, "requests.all.local", 
+    INKSTAT_TYPE_FLOAT);
+local_requests_redirects = INKStatCoupledLocalAdd(local_request_outcomes, 
+    "requests.redirects.local", INKSTAT_TYPE_INT64);
+local_requests_unchanged = INKStatCoupledLocalAdd(local_request_outcomes, 
+    "requests.unchanged.local", INKSTAT_TYPE_INT64);
+
+INKStatFloatAddTo( local_requests_all, 1.0 ) ; 
+...
+INKStatIncrement (local_requests_unchanged); 
+INKStatsCoupledUpdate(local_request_outcomes); 
+
+INKStatCoupledLocalCopyDestroy(local_request_outcomes); </pre>
+</div>
+</div>
+</body>
+</html>

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

Added: incubator/trafficserver/site/trunk/docs/sdk/CoupledStatsFunctions.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/CoupledStatsFunctions.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/CoupledStatsFunctions.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/CoupledStatsFunctions.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,236 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Coupled Statistics</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="StatisticsFunctions.html" title="Statistics Functions">
+<link rel="prev" href="StatisticsFunctions.html" title="Statistics Functions">
+<link rel="next" href="LoggingFunctions.html" title="Logging Functions">
+<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">
+<link rel="subsection" href="CoupledStatsFunctions.html#INKStatCoupledGlobalAdd" title="INKStatCoupledGlobalAdd">
+<link rel="subsection" href="CoupledStatsFunctions.html#INKStatCoupledLocalAdd" title="INKStatCoupledLocalAdd">
+<link rel="subsection" href="CoupledStatsFunctions.html#INKStatCoupledGlobalCategoryCreate" title="INKStatCoupledGlobalCategoryCreate">
+<link rel="subsection" href="CoupledStatsFunctions.html#INKStatCoupledLocalCopyCreate" title="INKStatCoupledLocalCopyCreate">
+<link rel="subsection" href="CoupledStatsFunctions.html#INKStatCoupledLocalCopyDestroy" title="INKStatCoupledLocalCopyDestroy">
+<link rel="subsection" href="CoupledStatsFunctions.html#INKStatsCoupledUpdate" title="INKStatsCoupledUpdate">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="StatisticsFunctions.html">Prev</a> — Statistics Functions</div>
+<div class="navnext">Logging Functions — <a accesskey="n" href="LoggingFunctions.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="CoupledStatsFunctions"></a>Coupled Statistics</h3></div></div></div>
+<p></p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKStatCoupledGlobalAdd"></a>INKStatCoupledGlobalAdd</h4></div></div></div>
+<p>.Creates a global coupled stat.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKStat INKStatCoupledGlobalAdd (INKCoupledStat
+                <em class="replaceable"><code>global_copy</code></em> , const char *
+                <em class="replaceable"><code>the_name</code></em> , INKStatTypes
+                <em class="replaceable"><code>the_type</code></em> )</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p><code class="code"><em class="replaceable"><code>global_copy</code></em></code> is
+                the name of the global coupled stat category to which your new
+                coupled stat belongs.</p>
+<p><code class="code"><em class="replaceable"><code>the_name</code></em></code> is the
+                name you use to view the statistic using Traffic Line. See
+                <a href="ViewStatsUsingTrafLine.html" title="Viewing Statistics Using Traffic Line">“Viewing Statistics Using Traffic Line”</a>. There are two
+                <code class="function">INKStatTypes</code>:
+                <code class="code">INKSTAT_TYPE_INT64</code>, and
+                <code class="code">INKSTAT_TYPE_FLOAT</code>.</p>
+<p>See <a href="CoupledStatistics.html#AddCoupledStats">“To add coupled statistics:”</a>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>A handle to the newly created global coupled
+                stat.</p>
+<p><code class="code">INK_ERROR_PTR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKStatCoupledLocalAdd"></a>INKStatCoupledLocalAdd</h4></div></div></div>
+<p>Creates a local copy of a global coupled stat.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKStat INKStatCoupledLocalAdd (INKCoupledStat
+                <em class="replaceable"><code>local_copy</code></em> , const char *
+                <em class="replaceable"><code>the_name</code></em> , INKStatTypes
+                <em class="replaceable"><code>the_type</code></em> )</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p><code class="code"><em class="replaceable"><code>local_copy</code></em></code> is
+                the name of the local coupled stat category to which your new
+                coupled stat belongs.</p>
+<p><code class="code"><em class="replaceable"><code>the_name</code></em></code> is the
+                name you use to view the statistic using Traffic Line. See
+                <a href="ViewStatsUsingTrafLine.html" title="Viewing Statistics Using Traffic Line">“Viewing Statistics Using Traffic Line”</a>. There are two
+                <code class="function">INKStatTypes</code>:
+                <code class="code">INKSTAT_TYPE_INT64</code>, and
+                <code class="code">INKSTAT_TYPE_FLOAT</code>.</p>
+<p>See <a href="CoupledStatistics.html#AddCoupledStats">“To add coupled statistics:”</a>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>A handle to a local copy of the global coupled
+                stat.</p>
+<p><code class="code">INK_ERROR_PTR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKStatCoupledGlobalCategoryCreate"></a>INKStatCoupledGlobalCategoryCreate</h4></div></div></div>
+<p>Creates a global coupled stat category.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKCoupledStat INKStatCoupledGlobalCategoryCreate
+                ( const char * <em class="replaceable"><code>the_name</code></em>
+                )</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Returns a new global coupled stat category. Use this
+                function in <code class="function">INKPluginInit</code>. The name
+                argument is the name you use to access this stat in Traffic
+                Line. See <a href="ViewStatsUsingTrafLine.html" title="Viewing Statistics Using Traffic Line">“Viewing Statistics Using Traffic Line”</a>.</p>
+<p>See <a href="CoupledStatistics.html#AddCoupledStats">“To add coupled statistics:”</a>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>A handle to a the newly created global coupled stat
+                category.</p>
+<p><code class="code">INK_ERROR_PTR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKStatCoupledLocalCopyCreate"></a>INKStatCoupledLocalCopyCreate</h4></div></div></div>
+<p>.Creates a local copy of a global coupled stat
+          category.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKCoupledStat INKStatCoupledLocalCopyCreate (
+                const char * <em class="replaceable"><code>the_name</code></em> ,
+                INKCoupledStat
+                <em class="replaceable"><code>global_copy</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd>
+<p>Returns a new local coupled stat category. Use this
+                function in any routine where you need to modify local copies
+                of global statistics. The name argument is the name you use to
+                access this stat in Traffic Line. See <a href="ViewStatsUsingTrafLine.html" title="Viewing Statistics Using Traffic Line">“Viewing Statistics Using Traffic Line”</a>.</p>
+<p>See <a href="CoupledStatistics.html#AddCoupledStats">“To add coupled statistics:”</a>.</p>
+</dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p>A handle to the local copy of the global coupled stat
+                category.</p>
+<p><code class="code">INK_ERROR_PTR</code></p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKStatCoupledLocalCopyDestroy"></a>INKStatCoupledLocalCopyDestroy</h4></div></div></div>
+<p>.Destroys a local category of statistics.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKStatCoupledLocalCopyDestroy
+                (INKCoupledStat
+                <em class="replaceable"><code>local_copy</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Destroys a local statistics category. Always destroy the
+                local category when you are done with it. See <a href="CoupledStatistics.html#AddCoupledStats">“To add coupled statistics:”</a>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the operation completes
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="INKStatsCoupledUpdate"></a>INKStatsCoupledUpdate</h4></div></div></div>
+<p>Updates a category of coupled statistics.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">INKReturnCode INKStatsCoupledUpdate
+                (INKCoupledStat
+                <em class="replaceable"><code>local_copy</code></em>)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Updates all of the coupled stats belonging to the
+                category <code class="code"><em class="replaceable"><code>local_copy</code></em></code>.
+                See <a href="CoupledStatistics.html#AddCoupledStats">“To add coupled statistics:”</a>.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd>
+<p><code class="code">INK_SUCCESS</code> if the operation completes
+                successfully.</p>
+<p><code class="code">INK_ERROR</code> if an error occurs.</p>
+</dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

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

Added: incubator/trafficserver/site/trunk/docs/sdk/CreatingTSPlugins.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/CreatingTSPlugins.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/CreatingTSPlugins.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/CreatingTSPlugins.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,459 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Chapter 2. How to Create Traffic Server Plugins</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="prev" href="NamingConventions.html" title="Naming Conventions">
+<link rel="next" href="Roadmap_CreatingPlugins.html" title="Roadmap for Creating Plugins">
+<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">
+<link rel="section" href="CreatingTSPlugins.html#AsynchronousEventModel" title="The Asynchronous Event Model">
+<link rel="section" href="Roadmap_CreatingPlugins.html" title="Roadmap for Creating Plugins">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="NamingConventions.html">Prev</a> — Naming Conventions</div>
+<div class="navnext">Roadmap for Creating Plugins — <a accesskey="n" href="Roadmap_CreatingPlugins.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="CreatingTSPlugins"></a>Chapter 2. How to Create Traffic Server Plugins</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<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>
+</div>
+<p>This chapter provides a foundation for designing and writing
+    plugins. Reading this chapter will help you understand:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>The asynchronous event model, which is the design paradigm used
+        throughout Traffic Server. Plugins must also follow this design. It
+        includes the callback mechanism for Traffic Server to “wake up” your
+        plugin and put it to work.</p></li>
+<li><p>Traffic Server’s HTTP processing—an overview of the HTTP state
+        machine.</p></li>
+<li><p>How plugins can hook onto and modify/extend Traffic Server’s
+        HTTP processing.</p></li>
+<li><p>A roadmap for writing plugins and an overview of the
+        functionality provided by the Traffic Server API.</p></li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="AsynchronousEventModel"></a>The Asynchronous Event Model</h2></div></div></div>
+<p>Traffic Server is a multi-threaded process. There are two main
+      reasons why a server might use multiple threads:</p>
+<div class="itemizedlist"><ul type="disc">
+<li><p>To take advantage of the concurrency available with multiple
+          CPUs and multiple I/O devices.</p></li>
+<li><p>To manage concurrency from having many simultaneous client
+          connections. For example, a server could create one thread for each
+          connection, allowing the operating system (OS) to control switching
+          between threads.</p></li>
+</ul></div>
+<p>Traffic Server uses multiple threads for the first reason. But
+      Traffic Server does not use a separate OS thread per transaction because
+      it would not be efficient when handling thousands of simultaneous
+      connections.</p>
+<p>Instead, Traffic Server provides special event-driven mechanisms
+      for efficiently scheduling work: the event system and continuations. The
+      <span class="bold"><strong><em class="glossterm">event system</em></strong></span> is
+      used to schedule work to be done on threads. A <span class="bold"><strong><em class="glossterm">continuation</em></strong></span> is a passive,
+      event-driven state machine that can do some work until it reaches a
+      waiting point; it then sleeps until it receives notification that
+      conditions are right for doing more work. For instance, HTTP state
+      machines (which handle HTTP transactions) are implemented as
+      continuations.</p>
+<p>Continuation objects are used throughout Traffic Server. Some
+      might live for the duration of the Traffic Server process; others are
+      created (perhaps by other continuations) for specific needs and then
+      destroyed. <a href="CreatingTSPlugins.html#Fig_TSInternals" title="Figure 2.1. Traffic Server Internals">Figure 2.1, “Traffic Server Internals”</a> shows how the major
+      components of Traffic Server interact. Traffic Server has several
+      <span class="bold"><strong><em class="glossterm">processors</em></strong></span>, such
+      as cache processor and net processor, which consolidate cache or network
+      I/O tasks. Processors talk to the event system and schedule work on
+      threads. An executing thread calls back a continuation by sending it an
+      event. When a continuation receives an event, it wakes up, does some
+      work, and either destroys itself or goes back to sleep waiting for the
+      next event.</p>
+<div class="figure">
+<a name="Fig_TSInternals"></a><p class="title"><b>Figure 2.1. Traffic Server Internals</b></p>
+<div class="mediaobject"><img src="images/event_sys80.jpg" alt="Traffic Server Internals"></div>
+</div>
+<p>Plugins are typically implemented as continuations. All of the
+      sample code plugins (except <code class="filename">hello-world</code>) are
+      continuations that are created when Traffic Server starts up; they wait
+      for events that trigger them into activity.</p>
+<div class="figure">
+<a name="Fig_TSwithPlugins"></a><p class="title"><b>Figure 2.2. Traffic Server with Plugins</b></p>
+<div class="mediaobject"><img src="images/evt_plugin120.jpg" alt="Traffic Server with Plugins"></div>
+</div>
+<p>A plugin may consist of just one static continuation that is
+      called whenever certain events happen.<code class="filename"> Examples of such
+      plugins include blacklist-1.c</code>,
+      <code class="filename">basic-auth.c</code>, and
+      <code class="filename">redirect-1.c</code>. Alternatively, a plugin could
+      dynamically create other continuations as needed. Transform plugins are
+      built in this manner: a static parent continuation checks all
+      transactions to see if any are transformable; when a transaction is
+      transformable, the static continuation creates a type of continuation
+      called a <span class="bold"><strong><em class="glossterm">vconnection</em></strong></span>. The
+      vconnection lives as long as it takes to complete the transform, and
+      then destroys itself. You can see this design in all of the sample
+      transform plugins. Plugins that support new protocols also have this
+      architecture: a static continuation listens for incoming client
+      connections, and creates transaction state machines to handle each
+      protocol transaction.</p>
+<p>When you write plugins, there are several ways to send events to
+      continuations. For HTTP plugins, there is a “hook” mechanism that
+      enables the Traffic Server HTTP state machine to send your plugin wakeup
+      calls when needed. Additionally, several Traffic Server API functions
+      trigger Traffic Server sub-processes to send events to plugins:
+      <code class="code">INKContCall</code>, <code class="code">INKVConnRead</code>,
+      <code class="code">INKCacheWrite</code>, and <code class="code">INKMgmtUpdateRegister</code>, to
+      name a few.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="TSHTTPStateMachine"></a>Traffic Server HTTP State Machine</h3></div></div></div>
+<p>Traffic Server does sophisticated HTTP caching and proxying. Its
+        features include checking for alternates and document freshness,
+        filtering, supporting cache hierarchies, and hosting. Traffic Server
+        handles thousands of client requests at a time and each request is
+        handled by an HTTP state machine. These machines follow a complex
+        state diagram that includes all of the states required to support
+        Traffic Server’s features. The Traffic Server API provides hooks to a
+        subset of these states, chosen for their relevance to plugins. You can
+        view the API hooks and corresponding HTTP states in <a href="HTTPHooksAndTransactions.html#Fig_HHTTPTxStateDiag" title="Figure 8.1. HTTP Transaction State Diagram">Figure 8.1, “HTTP Transaction State Diagram”</a>.</p>
+<p>The example in this section explains how a plugin typically
+        intervenes and extends Traffic Server’s processing of an HTTP
+        transaction. Complete details about hooking on to Traffic Server
+        processes are provided in <a href="HTTPHooksAndTransactions.html" title="Chapter 8. HTTP Hooks and Transactions">Chapter 8, <i>HTTP Hooks and Transactions</i></a>.</p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="HTTPTransaction_WhatIs"></a>HTTP Transaction</h4></div></div></div>
+<p>An HTTP transaction consists of a client request for a web
+          document and Traffic Server’s response. The response could be the
+          requested web server content or it could be an error message. The
+          content could come from the Traffic Server cache or Traffic Server
+          might fetch it from the origin server. The following diagram shows
+          some states in a typical transaction - specifically, the scenario
+          wherein content is served from cache:</p>
+<div class="figure">
+<a name="Fig_HTTPTransaction"></a><p class="title"><b>Figure 2.3. Simplified HTTP Transaction</b></p>
+<div class="mediaobject"><img src="images/transact75.jpg" alt="Simplified HTTP Transaction"></div>
+</div>
+<p>In the diagram above, Traffic Server accepts the client
+          connection, reads the request headers, looks up the origin server’s
+          IP address, and looks for the requested content in the cache. If
+          it’s not in the cache (a "miss"), then Traffic Server opens a
+          connection to the origin server and issues a request for the
+          content. If the content is in the cache (a "hit"), then Traffic
+          Server checks it for freshness.</p>
+<p>If the content is fresh, then Traffic Server sends a reply
+          header to the client. If the content is stale, then Traffic Server
+          opens a connection to the origin server and requests the content.
+          What <a href="CreatingTSPlugins.html#Fig_HTTPTransaction" title="Figure 2.3. Simplified HTTP Transaction">Figure 2.3, “Simplified HTTP Transaction”</a> does
+          <span class="emphasis"><em>not</em></span> show is that if there is an error at a any
+          stage, then the HTTP state machine jumps to the “send reply header”
+          state and sends a reply. If the reply is an error, then the
+          transaction closes. If the reply is not an error, then Traffic
+          Server first sends the response content before closing the
+          transaction.</p>
+<div class="figure">
+<a name="Fig_APIHooks_States"></a><p class="title"><b>Figure 2.4. API Hooks Corresponding to States Listed in <a href="CreatingTSPlugins.html#Fig_HTTPTransaction" title="Figure 2.3. Simplified HTTP Transaction">Figure 2.3, “Simplified HTTP Transaction”</a></b></p>
+<div class="mediaobject"><img src="images/transact_hook75.jpg" alt="API Hooks Corresponding to States Listed in"></div>
+</div>
+<p>You use hooks as triggers to start your plugin. The name of a
+          hook reflects the Traffic Server state that was <span class="emphasis"><em>just
+          completed</em></span>. For example, the “OS DNS lookup” hook would
+          wake up a plugin right <span class="emphasis"><em>after</em></span> the origin server
+          DNS lookup. For a plugin that requires the IP address of the
+          requested origin server, this hook is the right one to use. The
+          Blacklist plugin works in this manner, as shown in <a href="CreatingTSPlugins.html#Fig_BlacklistPlugin" title="Figure 2.5. Blacklist Plugin">Figure 2.5, “Blacklist Plugin”</a>.</p>
+<div class="figure">
+<a name="Fig_BlacklistPlugin"></a><p class="title"><b>Figure 2.5. Blacklist Plugin</b></p>
+<div class="mediaobject"><img src="images/blacklist75.jpg" alt="Blacklist Plugin"></div>
+</div>
+<p>Traffic Server calls the Blacklist plugin right after the
+          origin server DNS lookup. The plugin checks the requested host
+          against a list of blacklisted servers; if the request is allowed,
+          then the transaction proceeds. If the host is forbidden, then the
+          Blacklist plugin sends the transaction into an error state. When the
+          HTTP state machine gets to the “send reply header” state, it then
+          calls the Blacklist plugin to provide an error message that's sent
+          to the client.</p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="TypesOfHooks"></a>Types of Hooks</h4></div></div></div>
+<p>The Blacklist plugin’s hook to the “origin server DNS lookup”
+          state is a <em class="glossterm"><em class="glossterm"><span class="bold"><strong><em class="glossterm">global
+          hook</em></strong></span></em></em>, meaning that
+          the plugin is called every time there's an HTTP transaction with a
+          DNS lookup event. The plugin’s hook to the “send reply header” state
+          is a <em class="glossterm"><span class="bold"><strong><em class="glossterm">transaction
+          hook</em></strong></span></em>, meaning that this hook is
+          only invoked for specified transactions (in the Blacklist example,
+          it's only used for requests to blacklisted servers). Several
+          examples of setting up hooks are provided in the code example
+          chapters, <a href="HeaderBasedPluginEx.html" title="Chapter 4. Header-Based Plugin Examples">Chapter 4, <i>Header-Based Plugin Examples</i></a>, and <a href="HTTPTransformationPlugins.html" title="Chapter 5. HTTP Transformation Plugins">Chapter 5, <i>HTTP Transformation Plugins</i></a>.</p>
+<p><span class="bold"><strong><em class="glossterm">Header manipulation
+          plugins</em></strong></span>, such as filtering, basic
+          authorization, or redirects, usually have a global hook to the DNS
+          lookup or the read request header states. If specific actions need
+          to be done to the transaction further on, then the plugin adds
+          itself to a transaction hook. <span class="bold"><strong><em class="glossterm">Transformation plugins</em></strong></span>
+          require a global hook to check all transactions for transformability
+          followed by a transform hook, which is a type of transaction hook
+          specifically used for transforms.</p>
+</div>
+</div>
+</div>
+<div class="index">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="id372630"></a>Index</h2></div></div></div>
+<div class="index">
+<div class="indexdiv">
+<h3>C</h3>
+<dl>
+<dt>compiling on HPUX, <a href="ASimplePlugin.html#Compiling_HPUX">HPUX Example</a>
+</dt>
+<dt>compiling on UNIX, <a href="ASimplePlugin.html#Compiling_Unix">Unix Example</a>
+</dt>
+<dt>compiling on Windows NT, <a href="ASimplePlugin.html#Compiling_Windows">Compiling for Windows NT</a>
+</dt>
+<dt>compiling plugins, examples, <a href="ASimplePlugin.html#CompilingYourPlugin">Compile Your Plugin</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>D</h3>
+<dl>
+<dt>deprecated functions, <a href="DeprecatedMarshBufFuncs.html">Deprecated Functions</a>
+</dt>
+<dt>duplicate MIME fields, <a href="DuplicateMIMEFlds.html">Duplicate MIME Fields Are Not Coalesced</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt>global hook, <a href="SettingGlobalHook.html">Setting a Global Hook</a>
+</dt>
+<dt>global HTTP hooks, <a href="AddingHooks.html">Adding Hooks</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt>hello-world example, <a href="ASimplePlugin.html">A Simple Plugin</a>
+</dt>
+<dt>HTTP header, <a href="MIMEHeaders.html">MIME Headers</a>
+</dt>
+<dt>HTTP session, <a href="HTTPSessions.html">HTTP Sessions</a>
+</dt>
+<dt>HTTP transaction, <a href="HTTPSessions.html">HTTP Sessions</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>I</h3>
+<dl>
+<dt>INKEventFunc, <a href="AccessingTransactionProc.html">Accessing the Transaction Being Processed</a>
+</dt>
+<dt>INKHttpAltInfo, <a href="HTTPAlternateSelection.html">HTTP Alternate Selection</a>
+</dt>
+<dt>INKHttpTxn, <a href="AccessingTransactionProc.html">Accessing the Transaction Being Processed</a>, <a href="HTTP_Transactions.html">HTTP Transactions</a>
+</dt>
+<dt>INKMBufferCreate, <a href="HTTPHeaders2.html">HTTP Headers</a>
+</dt>
+<dt>INKVIO, <a href="HTTPTransformationPlugins.html#VIOs">VIOs</a>
+</dt>
+<dt>INK_HTTP_RESPONSE_TRANSFORM_HOOK, <a href="AppendTransformPlugin.html">The Append-Transform Plugin</a>
+</dt>
+<dt>INK_HTTP_SSN_CLOSE_HOOK, <a href="HTTPSessions.html">HTTP Sessions</a>
+</dt>
+<dt>INK_HTTP_SSN_START_HOOK, <a href="HTTPSessions.html">HTTP Sessions</a>
+</dt>
+<dt>INK_LOG_MODE_ADD_TIMESTAMP, <a href="App_SampleSourceCode.html#Sample_blacklist-1.c">blacklist-1.c</a>
+</dt>
+<dt>INT_MAX, <a href="IOGuide.html#VconnectionUsersView">The vconnection user’s view</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>L</h3>
+<dl><dt>lock, <a href="MutexGuide.html#Mutexes">Mutexes</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>M</h3>
+<dl>
+<dt>memory leak</dt>
+<dd><dl><dt>in transformation plugins, <a href="Transformations_IO.html#TransformVconnection">Transformation VConnection</a>
+</dt></dl></dd>
+<dt>method(HTTP), <a href="HTTPHeaders.html#AboutHTTPHeaders">About HTTP Headers</a>
+</dt>
+<dt>MIME field, <a href="HTTPHeaders.html#AboutHTTPHeaders">About HTTP Headers</a>, <a href="MIMEHeaders.html">MIME Headers</a>
+</dt>
+<dt>MIME field name, <a href="MIMEHeaders.html">MIME Headers</a>
+</dt>
+<dt>MIME field value, <a href="MIMEHeaders.html">MIME Headers</a>
+</dt>
+<dt>MIME fields, <a href="MIMEFldsBelongAssocMIMEHdr.html">MIME Fields Always Belong to an Associated MIME
+        Header</a>
+</dt>
+<dt>MIME header, <a href="HTTPHeaders.html#AboutHTTPHeaders">About HTTP Headers</a>, <a href="MIMEHeaders.html">MIME Headers</a>
+</dt>
+<dd><dl><dt>Backus-Naur form, <a href="MIMEHeaders.html">MIME Headers</a>
+</dt></dl></dd>
+<dt>multiple plugins, <a href="Updatingplugin.configFile.html">Update the plugin.config File</a>
+</dt>
+<dt>mutexes, <a href="MutexGuide.html#Mutexes">Mutexes</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>N</h3>
+<dl>
+<dt>new MIME field functions, <a href="MIMEFldsBelongAssocMIMEHdr.html">MIME Fields Always Belong to an Associated MIME
+        Header</a>
+</dt>
+<dt>NT</dt>
+<dd><dl><dt>compiling plugins, <a href="ASimplePlugin.html#Compiling_Windows">Compiling for Windows NT</a>
+</dt></dl></dd>
+<dt>null-terminated strings, <a href="GuideTSHTTPHdrSyst.html#NoNullTerminatedStrings">No Null-Terminated Strings</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt>parent continuation, <a href="BlacklistPlugin.html#CreatingParentContinuation">Creating the Parent Continuation</a>
+</dt>
+<dt>parent INKMLoc, <a href="RlsMarshalBufHandles.html">Release Marshal Buffer Handles</a>
+</dt>
+<dt>parent MIME header, <a href="MIMEFldsBelongAssocMIMEHdr.html">MIME Fields Always Belong to an Associated MIME
+        Header</a>
+</dt>
+<dt>plugin.config, <a href="GetingStarted.html#PluginConfiguration">Plugin Configuration</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>R</h3>
+<dl>
+<dt>read VIO, <a href="HTTPTransformationPlugins.html#WritingContentTransformPlugins">Writing Content Transform Plugins</a>
+</dt>
+<dt>releasing mbuffer handles, <a href="RlsMarshalBufHandles.html">Release Marshal Buffer Handles</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt>sample code</dt>
+<dd><dl>
+<dt>INKPluginRegister, <a href="PlusingRegisAndVersionCkg.html">Plugin Registration and Version Checking</a>
+</dt>
+<dt>version check, <a href="PlusingRegisAndVersionCkg.html">Plugin Registration and Version Checking</a>
+</dt>
+</dl></dd>
+<dt>statistics</dt>
+<dd><dl><dt>viewing, <a href="ViewStatsUsingTrafLine.html">Viewing Statistics Using Traffic Line</a>
+</dt></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>T</h3>
+<dl>
+<dt>thread locking, <a href="MutexGuide.html#Mutexes">Mutexes</a>
+</dt>
+<dt>Traffic Edge, <a href="PlusingRegisAndVersionCkg.html">Plugin Registration and Version Checking</a>
+</dt>
+<dt>Traffic Line, <a href="ViewStatsUsingTrafLine.html">Viewing Statistics Using Traffic Line</a>
+</dt>
+<dt>Traffic Server, <a href="PlusingRegisAndVersionCkg.html">Plugin Registration and Version Checking</a>
+</dt>
+<dt>transaction, <a href="AccessingTransactionProc.html">Accessing the Transaction Being Processed</a>
+</dt>
+<dd><dl><dt>getting a handle to, <a href="AccessingTransactionProc.html">Accessing the Transaction Being Processed</a>
+</dt></dl></dd>
+<dt>transaction hook, <a href="SettingUpTransacHook.html">Setting Up a Transaction Hook</a>
+</dt>
+<dt>transformation, <a href="HTTPTransformationPlugins.html#WritingContentTransformPlugins">Writing Content Transform Plugins</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>V</h3>
+<dl>
+<dt>vconnection, <a href="HTTPTransformationPlugins.html#WritingContentTransformPlugins">Writing Content Transform Plugins</a>
+</dt>
+<dt>version checking, <a href="PlusingRegisAndVersionCkg.html">Plugin Registration and Version Checking</a>
+</dt>
+<dt>VIO, <a href="HTTPTransformationPlugins.html#WritingContentTransformPlugins">Writing Content Transform Plugins</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>W</h3>
+<dl><dt>write VIO, <a href="HTTPTransformationPlugins.html#WritingContentTransformPlugins">Writing Content Transform Plugins</a>
+</dt></dl>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>

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

Added: incubator/trafficserver/site/trunk/docs/sdk/CustInstallLicenseFunctions.html
URL: http://svn.apache.org/viewvc/incubator/trafficserver/site/trunk/docs/sdk/CustInstallLicenseFunctions.html?rev=831152&view=auto
==============================================================================
--- incubator/trafficserver/site/trunk/docs/sdk/CustInstallLicenseFunctions.html (added)
+++ incubator/trafficserver/site/trunk/docs/sdk/CustInstallLicenseFunctions.html Thu Oct 29 23:23:25 2009
@@ -0,0 +1,82 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Customer Installation and Licensing Functions</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">
+<link rel="start" href="index.html" title="Traffic Server Software Developers Kit">
+<link rel="up" href="FunctionReference.html" title="Chapter 18. Function Reference">
+<link rel="prev" href="INKMgmtStringGet.html" title="INKMgmtStringGet">
+<link rel="next" href="INKPluginDirGet.html" title="INKPluginDirGet">
+<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">
+<link rel="subsection" href="CustInstallLicenseFunctions.html#INKInstallDirGet" title="INKInstallDirGet">
+<link rel="subsection" href="INKPluginDirGet.html" title="INKPluginDirGet">
+<link rel="subsection" href="INKPluginLicenseRequired.html" title="INKPluginLicenseRequired">
+<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"><h1 class="doctitle">Traffic Server Software Developers Kit</h1>
+</div>
+<div class="navheader">
+<div class="navprev">
+<a accesskey="p" href="INKMgmtStringGet.html">Prev</a> — INKMgmtStringGet</div>
+<div class="navnext">INKPluginDirGet — <a accesskey="n" href="INKPluginDirGet.html">Next</a>
+</div>
+</div>
+<div id="toc"></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="CustInstallLicenseFunctions"></a>Customer Installation and Licensing Functions</h2></div></div></div>
+<p></p>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="INKInstallDirGet"></a>INKInstallDirGet</h3></div></div></div>
+<p>Gets Traffic Server’s install directory.</p>
+<div class="variablelist"><dl>
+<dt><span class="term">Prototype</span></dt>
+<dd><p><code class="code">const char * INKInstallDirGet(void)</code></p></dd>
+<dt><span class="term">Description</span></dt>
+<dd><p>Get Traffic Server’s installation directory.</p></dd>
+<dt><span class="term">Returns</span></dt>
+<dd><p>A pointer to a string containing the Traffic Server’s
+              installation directory.</p></dd>
+<dt><span class="term">First release</span></dt>
+<dd><p>Traffic Server 3.5</p></dd>
+</dl></div>
+</div>
+</div>
+</body>
+</html>

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



Mime
View raw message