Author: aum
Date: 2006-05-12 06:45:49 +0000 (Fri, 12 May 2006)
New Revision: 8674

Added:
   trunk/apps/pyFreenet/fcpxmlrpc.py
   trunk/apps/pyFreenet/html/
   trunk/apps/pyFreenet/html/epydoc.css
   trunk/apps/pyFreenet/html/index.html
   trunk/apps/pyFreenet/html/private/
   
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
   
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
   trunk/apps/pyFreenet/html/private/SocketServer.BaseServer-class.html
   trunk/apps/pyFreenet/html/private/SocketServer.TCPServer-class.html
   trunk/apps/pyFreenet/html/private/SocketServer.ThreadingMixIn-class.html
   trunk/apps/pyFreenet/html/private/epydoc.css
   trunk/apps/pyFreenet/html/private/exceptions.Exception-class.html
   trunk/apps/pyFreenet/html/private/fcp-module.html
   trunk/apps/pyFreenet/html/private/fcp.ConnectionRefused-class.html
   trunk/apps/pyFreenet/html/private/fcp.FCPException-class.html
   trunk/apps/pyFreenet/html/private/fcp.FCPGetFailed-class.html
   trunk/apps/pyFreenet/html/private/fcp.FCPNodeConnection-class.html
   trunk/apps/pyFreenet/html/private/fcp.FCPProtocolError-class.html
   trunk/apps/pyFreenet/html/private/fcp.FCPPutFailed-class.html
   trunk/apps/pyFreenet/html/private/fcp.JobTicket-class.html
   trunk/apps/pyFreenet/html/private/fcpxmlrpc-module.html
   trunk/apps/pyFreenet/html/private/fcpxmlrpc.FCPXMLRPCServer-class.html
   
trunk/apps/pyFreenet/html/private/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
   trunk/apps/pyFreenet/html/private/frames.html
   trunk/apps/pyFreenet/html/private/help.html
   trunk/apps/pyFreenet/html/private/index.html
   trunk/apps/pyFreenet/html/private/indices.html
   trunk/apps/pyFreenet/html/private/sitemgr-module.html
   trunk/apps/pyFreenet/html/private/sitemgr.SiteMgr-class.html
   trunk/apps/pyFreenet/html/private/toc-everything.html
   trunk/apps/pyFreenet/html/private/toc-fcp-module.html
   trunk/apps/pyFreenet/html/private/toc-fcpxmlrpc-module.html
   trunk/apps/pyFreenet/html/private/toc-sitemgr-module.html
   trunk/apps/pyFreenet/html/private/toc.html
   trunk/apps/pyFreenet/html/private/trees.html
   trunk/apps/pyFreenet/html/public/
   
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
   
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
   trunk/apps/pyFreenet/html/public/SocketServer.TCPServer-class.html
   trunk/apps/pyFreenet/html/public/SocketServer.ThreadingMixIn-class.html
   trunk/apps/pyFreenet/html/public/epydoc.css
   trunk/apps/pyFreenet/html/public/exceptions.Exception-class.html
   trunk/apps/pyFreenet/html/public/fcp-module.html
   trunk/apps/pyFreenet/html/public/fcp.ConnectionRefused-class.html
   trunk/apps/pyFreenet/html/public/fcp.FCPException-class.html
   trunk/apps/pyFreenet/html/public/fcp.FCPGetFailed-class.html
   trunk/apps/pyFreenet/html/public/fcp.FCPNodeConnection-class.html
   trunk/apps/pyFreenet/html/public/fcp.FCPProtocolError-class.html
   trunk/apps/pyFreenet/html/public/fcp.FCPPutFailed-class.html
   trunk/apps/pyFreenet/html/public/fcp.JobTicket-class.html
   trunk/apps/pyFreenet/html/public/fcpxmlrpc-module.html
   trunk/apps/pyFreenet/html/public/fcpxmlrpc.FCPXMLRPCServer-class.html
   
trunk/apps/pyFreenet/html/public/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
   trunk/apps/pyFreenet/html/public/frames.html
   trunk/apps/pyFreenet/html/public/help.html
   trunk/apps/pyFreenet/html/public/index.html
   trunk/apps/pyFreenet/html/public/indices.html
   trunk/apps/pyFreenet/html/public/sitemgr-module.html
   trunk/apps/pyFreenet/html/public/sitemgr.SiteMgr-class.html
   trunk/apps/pyFreenet/html/public/toc-everything.html
   trunk/apps/pyFreenet/html/public/toc-fcp-module.html
   trunk/apps/pyFreenet/html/public/toc-fcpxmlrpc-module.html
   trunk/apps/pyFreenet/html/public/toc-sitemgr-module.html
   trunk/apps/pyFreenet/html/public/toc.html
   trunk/apps/pyFreenet/html/public/trees.html
Modified:
   trunk/apps/pyFreenet/code.leo
   trunk/apps/pyFreenet/fcp.py
Log:
Removed XML-RPC server and put it into its own module fcpxmlrpc.py
Made the main primitives thread-safe
Added support for asynchronous calls, which immediately return a
pollable and blockable 'job ticket' object
Added support for callbacks.
Tidied up code and improved docstrings
Added epydoc-generated API documentation
This library should now be ready for preliminary use by client developers


Modified: trunk/apps/pyFreenet/code.leo
===================================================================
--- trunk/apps/pyFreenet/code.leo       2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/code.leo       2006-05-12 06:45:49 UTC (rev 8674)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <leo_file>
 <leo_header file_format="2" tnodes="0" max_tnode_index="6" clone_windows="0"/>
-<globals body_outline_ratio="0.265866209262">
+<globals body_outline_ratio="0.313893653516">
        <global_window_position top="147" left="74" height="694" width="1166"/>
        <global_log_window_position top="0" left="0" height="0" width="0"/>
 </globals>
@@ -132,9 +132,28 @@
 <v t="aum.20060509223528.119"><vh>exceptions</vh></v>
 </v>
 <v t="aum.20060511003500" tnodeList="aum.20060511003500"><vh>@file 
test.py</vh></v>
-<v t="aum.20060512152233" a="V" tnodeList="aum.20060512152233"><vh>@file 
genkey.py</vh></v>
+<v t="aum.20060512152233" tnodeList="aum.20060512152233"><vh>@file 
genkey.py</vh></v>
 <v t="aum.20060512140230" tnodeList="aum.20060512140230"><vh>@file 
updatesites.py</vh></v>
-<v t="aum.20060511101147" a="E" 
tnodeList="aum.20060511101147,aum.20060511113333,aum.20060511113333.1,aum.20060511114439,aum.20060511114439.1,aum.20060512150118,aum.20060511114439.2,aum.20060511120059,aum.20060511114604,aum.20060511114604.1,aum.20060511113333.3,aum.20060511130507,aum.20060511120024"><vh>@nosent
 sitemgr.py</vh>
+<v t="aum.20060512172707" a="E" 
tnodeList="aum.20060512172707,aum.20060512172843,aum.20060512173027,aum.20060512175041,aum.20060512175041.1,aum.20060512175218,aum.20060507155016,aum.20060507162314,aum.20060507162314.2,aum.20060507162314.3,aum.20060507162543.1,aum.20060507195029,aum.20060507163143,aum.20060507154638,aum.20060507195029.1,aum.20060506224545"><vh>@file
 fcpxmlrpc.py</vh>
+<v t="aum.20060512172843"><vh>imports</vh></v>
+<v t="aum.20060512173027"><vh>globals</vh></v>
+<v t="aum.20060512175041" a="E"><vh>class FCPXMLRPCServer</vh>
+<v t="aum.20060512175041.1"><vh>__init__</vh></v>
+<v t="aum.20060512175218"><vh>run</vh></v>
+</v>
+<v t="aum.20060507155016" a="E"><vh>class FreenetXMLRPCRequestHandler</vh>
+<v t="aum.20060507162314"><vh>__init__</vh></v>
+<v t="aum.20060507162314.2"><vh>get</vh></v>
+<v t="aum.20060507162314.3"><vh>put</vh></v>
+<v t="aum.20060507162543.1"><vh>genkey</vh></v>
+</v>
+<v t="aum.20060507195029"><vh>usage</vh></v>
+<v t="aum.20060507163143"><vh>testServer</vh></v>
+<v t="aum.20060507154638"><vh>runServer</vh></v>
+<v t="aum.20060507195029.1"><vh>main</vh></v>
+<v t="aum.20060506224545"><vh>mainline</vh></v>
+</v>
+<v t="aum.20060511101147" 
tnodeList="aum.20060511101147,aum.20060511113333,aum.20060511113333.1,aum.20060511114439,aum.20060511114439.1,aum.20060512150118,aum.20060511114439.2,aum.20060511120059,aum.20060511114604,aum.20060511114604.1,aum.20060511113333.3,aum.20060511130507,aum.20060511120024"><vh>@nosent
 sitemgr.py</vh>
 <v t="aum.20060511113333"><vh>imports</vh></v>
 <v t="aum.20060511113333.1"><vh>config</vh></v>
 <v t="aum.20060511114439" a="E"><vh>class SiteMgr</vh>
@@ -149,15 +168,14 @@
 <v t="aum.20060511130507"><vh>help</vh></v>
 <v t="aum.20060511120024"><vh>mainline</vh></v>
 </v>
-<v t="aum.20060506215707" a="E" 
tnodeList="aum.20060506215707,aum.20060506215707.1,aum.20060506220237,aum.20060506215707.2,aum.20060506215707.3,aum.20060506220237.1,aum.20060506220237.2,aum.20060506224238,aum.20060506224238.1,aum.20060506231352.1,aum.20060506231352,aum.20060507003931,aum.20060511001853,aum.20060511205201,aum.20060506232639,aum.20060506232639.1,aum.20060511222538,aum.20060512101715,aum.20060511205201.1,aum.20060511205201.2,aum.20060506223545,aum.20060506231352.2,aum.20060506220856,aum.20060506222005,aum.20060507124316,aum.20060511103841,aum.20060511103841.1,aum.20060511103952,aum.20060511103952.1,aum.20060512102840,aum.20060509184020,aum.20060507155016,aum.20060507162314,aum.20060507162543,aum.20060507162314.1,aum.20060509194923,aum.20060507162314.2,aum.20060507162314.3,aum.20060507162543.1,aum.20060507154638,aum.20060507163143,aum.20060509184020.1,aum.20060509184020.2,aum.20060509224119,aum.20060509224221,aum.20060507195029,aum.20060507195029.1,aum.20060506224545"><vh>@nosent
 fcp.py</vh>
+<v t="aum.20060506215707" a="E" 
tnodeList="aum.20060506215707,aum.20060506215707.1,aum.20060506220237,aum.20060506215707.2,aum.20060506215707.3,aum.20060506220237.1,aum.20060506220237.2,aum.20060506224238,aum.20060506231352.1,aum.20060506231352,aum.20060507003931,aum.20060511001853,aum.20060511205201,aum.20060506232639,aum.20060506232639.1,aum.20060511222538,aum.20060512101715,aum.20060511205201.1,aum.20060511205201.2,aum.20060506223545,aum.20060506224238.1,aum.20060506231352.2,aum.20060506220856,aum.20060506222005,aum.20060507124316,aum.20060511103841,aum.20060511103841.1,aum.20060511103952,aum.20060511103952.1,aum.20060512181209,aum.20060512102840,aum.20060509184020.1,aum.20060509184020.2,aum.20060509224119,aum.20060509224221"><vh>@nosent
 fcp.py</vh>
 <v t="aum.20060506215707.1"><vh>imports</vh></v>
 <v t="aum.20060506220237"><vh>exceptions</vh></v>
 <v t="aum.20060506215707.2"><vh>globals</vh></v>
-<v t="aum.20060506215707.3" a="E"><vh>class FCPNodeConnection</vh>
+<v t="aum.20060506215707.3" a="EV"><vh>class FCPNodeConnection</vh>
 <v t="aum.20060506220237.1"><vh>__init__</vh></v>
 <v t="aum.20060506220237.2"><vh>__del__</vh></v>
 <v t="aum.20060506224238" a="E"><vh>High Level Methods</vh>
-<v t="aum.20060506224238.1"><vh>_hello</vh></v>
 <v t="aum.20060506231352.1"><vh>genkey</vh></v>
 <v t="aum.20060506231352"><vh>get</vh></v>
 <v t="aum.20060507003931"><vh>put</vh></v>
@@ -172,6 +190,7 @@
 <v t="aum.20060511205201.2"><vh>_on_clientReq</vh></v>
 </v>
 <v t="aum.20060506223545" a="E"><vh>Low Level Methods</vh>
+<v t="aum.20060506224238.1"><vh>_hello</vh></v>
 <v t="aum.20060506231352.2"><vh>_getUniqueId</vh></v>
 <v t="aum.20060506220856"><vh>_txMsg</vh></v>
 <v t="aum.20060506222005"><vh>_rxMsg</vh></v>
@@ -182,29 +201,14 @@
 <v t="aum.20060511103841.1"><vh>__init__</vh></v>
 <v t="aum.20060511103952"><vh>isDone</vh></v>
 <v t="aum.20060511103952.1"><vh>wait</vh></v>
+<v t="aum.20060512181209"><vh>callback</vh></v>
 <v t="aum.20060512102840"><vh>_putResult</vh></v>
 </v>
-<v t="aum.20060509184020" a="E"><vh>XML-RPC Server</vh>
-<v t="aum.20060507155016" a="E"><vh>class FreenetXMLRPCRequest</vh>
-<v t="aum.20060507162314"><vh>__init__</vh></v>
-<v t="aum.20060507162543"><vh>_getNode</vh></v>
-<v t="aum.20060507162314.1"><vh>_hello</vh></v>
-<v t="aum.20060509194923"><vh>hello</vh></v>
-<v t="aum.20060507162314.2"><vh>get</vh></v>
-<v t="aum.20060507162314.3"><vh>put</vh></v>
-<v t="aum.20060507162543.1"><vh>genkey</vh></v>
-</v>
-<v t="aum.20060507154638"><vh>runServer</vh></v>
-<v t="aum.20060507163143"><vh>testServer</vh></v>
-</v>
 <v t="aum.20060509184020.1" a="E"><vh>util funcs</vh>
 <v t="aum.20060509184020.2"><vh>toBool</vh></v>
 <v t="aum.20060509224119"><vh>readdir</vh></v>
 <v t="aum.20060509224221"><vh>guessMimetype</vh></v>
 </v>
-<v t="aum.20060507195029"><vh>usage</vh></v>
-<v t="aum.20060507195029.1"><vh>main</vh></v>
-<v t="aum.20060506224545"><vh>mainline</vh></v>
 </v>
 </vnodes>
 <tnodes>
@@ -216,21 +220,16 @@
 <t tx="aum.20060506215707">@first #!/usr/bin/env python
 """
 An implementation of a freenet client library for
-FCP v2
+FCP v2, offering considerable flexibility.

-This can be imported as a module by client apps wanting
-a simple Freenet FCP v2 interface, or it can be executed
-to run an XML-RPC server talking to FCP (run with -h for more info)
+Clients should instantiate FCPNodeConnection, then execute
+its methods to perform tasks with FCP.

-Written by aum, May 2006, released under the GNU Lesser General
+This module was written by aum, May 2006, released under the GNU Lesser General
 Public License.

 No warranty, yada yada

-Python hackers please feel free to hack constructively, but I
-strongly request that you preserve the simplicity and not impose
-any red tape on client writers.
-
 """

 @others
@@ -240,17 +239,11 @@
 import threading, mimetypes, sha, Queue
 import select, traceback

-from SimpleXMLRPCServer import SimpleXMLRPCServer
-
 </t>
 <t tx="aum.20060506215707.2"># where we can find the freenet node FCP port
 defaultFCPHost = "127.0.0.1"
 defaultFCPPort = 9481

-# where to listen, for the xml-rpc server
-xmlrpcHost = "127.0.0.1"
-xmlrpcPort = 19481
-
 # poll timeout period for manager thread
 pollTimeout = 0.1
 #pollTimeout = 3
@@ -276,8 +269,50 @@
 </t>
 <t tx="aum.20060506215707.3">class FCPNodeConnection:
     """
-    Low-level transport for connections to
-    FCP port
+    Represents an interface to a freenet node via its FCP port,
+    and exposes primitives for the basic genkey, get, put and putdir
+    operations.
+    
+    Only one instance of FCPNodeConnection is needed across an entire
+    running client application, because its methods are quite thread-safe.
+    Creating 2 or more instances is a waste of resources.
+
+    Clients, when invoking methods, have several options regarding flow
+    control and event notification:
+
+        - synchronous call (the default). Here, no pending status messages
+          will ever be seen, and the call will only control when it has
+          completed (successfully, or otherwise)
+        
+        - asynchronous call - this is invoked by passing the keyword argument
+          'async=True' to any of the main primitives. When a primitive is 
invoked
+          asynchronously, it will return a 'job ticket object' immediately. 
This
+          job ticket has methods for polling for job completion, or blocking
+          awaiting completion
+        
+        - setting a callback. You can pass to any of the primitives a
+          'callback=somefunc' keyword arg, where 'somefunc' is a callable 
object
+           conforming to::
+               
+               def somefunc(status, value):
+                   ...
+          
+          The callback function will be invoked when a primitive succeeds or 
fails,
+          as well as when a pending message is received from the node.
+          
+          The 'status' argument passed will be one of:
+              - 'successful' - the primitive succeeded, and 'value' will 
contain
+                the result of the primitive
+              - 'pending' - the primitive is still executing, and 'value' will
+                contain the raw pending message sent back from the node, as a
+                dict
+              - 'failed' - the primitive failed, and as with 'pending', the
+                argument 'value' contains a dict containing the message fields
+                sent back from the node
+
+          Note that callbacks can be set in both synchronous and asynchronous
+          calling modes.
+
     """
     @others

@@ -381,6 +416,7 @@
         - args - zero or more (keyword, value) tuples
     Keywords:
         - rawcmd - if given, this is the raw buffer to send
+        - other keywords depend on the value of msgType
     """
     log = self._log

@@ -519,7 +555,9 @@

 </t>
 <t tx="aum.20060506224238.1">def _hello(self):
-    
+    """
+    perform the initial FCP protocol handshake
+    """
     self._txMsg("ClientHello", 
                      Name=self.name,
                      ExpectedVersion=expectedVersion)
@@ -553,12 +591,17 @@
         - if 'dontReturnData' is true, returns (mimetype, 1) if key is returned
     If key is not found, raises an exception
     """
+    self._log(INFO, "get: uri=%s" % uri)
+
+    # ---------------------------------
     # format the request
     opts = {}

     id = self._getUniqueId()

     opts['async'] = kw.pop('async', False)
+    if kw.has_key('callback'):
+        opts['callback'] = kw['callback']

     file = kw.pop("file", None)
     if file:
@@ -593,41 +636,10 @@
     opts['PriorityClass'] = int(kw.get("priority", 1))
     opts['Global'] = "false"

+    # ---------------------------------
     # now enqueue the request
     return self._submitCmd(id, "ClientGet", **opts)

-
-
-    # ------------------------------------------------
-    # DEPRECATED CODE!!
-
-    self._txMsg("ClientGet", **opts)
-   
-
-    # get a response
-    resp = self._rxMsg()
-    hdr = resp['header']
-    if hdr == 'DataFound':
-        mimetype = resp['Metadata.ContentType']
-        if file:
-            # already stored to disk, done
-            resp['file'] = file
-            return (mimetype, file)
-        elif nodata:
-            return (mimetype, 1)
-        else:
-            resp = self._rxMsg()
-            if resp['header'] == 'AllData':
-                return (mimetype, resp['Data'])
-            else:
-                raise FCPProtocolError(resp)
-    elif hdr == 'GetFailed':
-        raise FCPGetFailed(resp)
-    elif hdr == 'ProtocolError':
-        raise FCPProtocolError(resp)
-    else:
-        raise FCPException(resp)
-
 </t>
 <t tx="aum.20060506231352.1">def genkey(self, **kw):
     """
@@ -636,22 +648,24 @@
     Keywords:
         - async - whether to do this call asynchronously, and
           return a JobTicket object
+        - callback - if given, this should be a callable which accepts 2
+          arguments:
+              - status - will be one of 'successful', 'failed' or 'pending'
+              - value - depends on status:
+                  - if status is 'successful', this will contain the value
+                    returned from the command
+                  - if status is 'failed' or 'pending', this will contain
+                    a dict containing the response from node
     """
     id = self._getUniqueId()

     return self._submitCmd(id, "GenerateSSK", Identifier=id, **kw)

-    #self._txMsg("GenerateSSK",
-    #                 Identifier=id)
-    #while True:
-    #    resp = self._rxMsg()
-    #    #print resp
-    #    if resp['header'] == 'SSKKeypair' and str(resp['Identifier']) == id:
-    #        break
-    #return resp['RequestURI'], resp['InsertURI']
-
 </t>
 <t tx="aum.20060506231352.2">def _getUniqueId(self):
+    """
+    Allocate a unique ID for a request
+    """
     return "id" + str(int(time.time() * 1000000))

 </t>
@@ -662,7 +676,8 @@
 </t>
 <t tx="aum.20060506232639.1">def _mgrThread(self):
     """
-    Receives all incoming messages
+    This thread is the nucleus of pyfcp, and coordinates incoming
+    client commands and incoming node responses
     """
     log = self._log
     try:
@@ -734,14 +749,19 @@
     Notes:
         - exactly one of 'file', 'data' or 'dir' keyword arguments must be 
present
     """
+    self._log(INFO, "put: uri=%s" % uri)

     # divert to putdir if dir keyword present
     if kw.has_key('dir'):
         return self.putdir(uri, **kw)

+    # ---------------------------------
+    # format the request
     opts = {}

     opts['async'] = kw.get('async', False)
+    if kw.has_key('callback'):
+        opts['callback'] = kw['callback']

     opts['URI'] = uri
     opts['Metadata.ContentType'] = kw.get("mimetype", "text/plain")
@@ -771,42 +791,10 @@

     #print "sendEnd=%s" % sendEnd

+    # ---------------------------------
     # now dispatch the job
     return self._submitCmd(id, "ClientPut", **opts)

-
-    # ------------------------------------------------------------
-    # DEPRECATED CODE
-
-    # issue the command
-    self._txMsg("ClientPut", **opts)
-
-    # expect URIGenerated
-    resp1 = self._rxMsg()
-    hdr = resp1['header']
-    if hdr != 'URIGenerated':
-        raise FCPException(resp1)
-
-    newUri = resp1['URI']
-
-    # bail here if no data coming back
-    if opts.get('UploadFrom', None) == 'redirect' or opts['GetCHKOnly'] == 
'true':
-        if not kw.has_key('redirect'):
-            return newUri
-    
-    # expect outcome
-    resp2 = self._rxMsg()
-    hdr = resp2['header']
-    if hdr == 'PutSuccessful':
-        return resp2['URI']
-    elif hdr == 'PutFailed':
-        raise FCPPutFailed(resp2)
-    elif hdr == 'ProtocolError':
-        raise FCPProtocolError(resp2)
-    else:
-        raise FCPException(resp2)
-
-
 </t>
 <t tx="aum.20060507124316">def _log(self, level, msg):
     """
@@ -822,22 +810,14 @@
 </t>
 <t tx="aum.20060507154638">def runServer(**kw):
     """
-    Runs a basic XML-RPC server for FCP access
+    Creates and runs a basic XML-RPC server for FCP access
+    
+    For keyword parameters, refer FCPXMLRPCServer constructor
     """
-    host = kw.get('host', xmlrpcHost)
-    port = kw.get('port', xmlrpcPort)
-    fcpHost = kw.get('fcpHost', defaultFCPHost)
-    fcpPort = kw.get('fcpPort', defaultFCPPort)
-    verbosity = kw.get('verbosity', SILENT)
+    FCPXMLRPCServer(**kw).run()

-    server = SimpleXMLRPCServer((xmlrpcHost, xmlrpcPort))
-    inst = FreenetXMLRPCRequest(host=fcpHost, port=fcpPort, 
verbosity=verbosity)
-    server.register_instance(inst)
-    server.register_introspection_methods()
-    server.serve_forever()
-
 </t>
-<t tx="aum.20060507155016">class FreenetXMLRPCRequest:
+<t tx="aum.20060507155016">class FreenetXMLRPCRequestHandler:
     """
     Simple class which exposes basic primitives
     for freenet xmlrpc server
@@ -845,14 +825,10 @@
     @others

 </t>
-<t tx="aum.20060507162314">def __init__(self, **kw):
+<t tx="aum.20060507162314">def __init__(self, node):

-    self.kw = kw
+    self.node = node

-</t>
-<t tx="aum.20060507162314.1">def _hello(self):
-    
-    self.node.hello()

 </t>
 <t tx="aum.20060507162314.2">def get(self, uri, options=None):
@@ -867,10 +843,8 @@
     if options==None:
         options = {}

-    node = self._getNode()
+    return self.node.get(uri, **options)

-    return node.get(uri, **options)
-
 </t>
 <t tx="aum.20060507162314.3">def put(self, uri, options=None):
     """
@@ -884,22 +858,11 @@
     if options==None:
         options = {}

-    node = self._getNode()
+    return self.node.put(uri, data=data, **options)

-    return node.put(uri, data=data, **options)
-
 </t>
-<t tx="aum.20060507162543">def _getNode(self):
-    
-    node = FCPNodeConnection(**self.kw)
-    node.hello()
-    return node
-
-</t>
 <t tx="aum.20060507162543.1">def genkey(self):

-    node = self._getNode()
-
     return self.node.genkey()

 </t>
@@ -933,9 +896,11 @@
         "  --port=",
         "       listen port number for xml-rpc requests, default %s" % 
xmlrpcPort,
         "  --fcphost=",
-        "       set hostname of freenet FCP interface, default %s" % 
defaultFCPHost,
+        "       set hostname of freenet FCP interface, default %s" \
+             % fcp.defaultFCPHost,
         "  --fcpport=",
-        "       set port number of freenet FCP interface, default %s" % 
defaultFCPPort,
+        "       set port number of freenet FCP interface, default %s" \
+             % fcp.defaultFCPPort,
         ])

     sys.exit(ret)
@@ -947,11 +912,11 @@
     """
     import getopt

-    opts = {'verbosity': 0,
+    opts = {'verbosity': fcp.INFO,
             'host':xmlrpcHost,
             'port':xmlrpcPort,
-            'fcpHost':defaultFCPHost,
-            'fcpPort':defaultFCPPort,
+            'fcpHost':fcp.defaultFCPHost,
+            'fcpPort':fcp.defaultFCPPort,
             }

     try:
@@ -967,9 +932,7 @@
     verbose = False
     #print cmdopts
     for o, a in cmdopts:
-        if o == "-v":
-            verbose = True
-        elif o in ("-h", "--help"):
+        if o in ("-h", "--help"):
             usage(ret=0)
         elif o == "--host":
             opts['host'] = a
@@ -983,13 +946,16 @@
         elif o == "--fcpport":
             opts['fcpPort'] = a
         elif o in ['-v', '--verbosity']:
+            print "setting verbosity"
             try:
                 opts['verbosity'] = int(a)
                 #print "verbosity=%s" % opts['verbosity']
             except:
                 usage("Invalid verbosity '%s'" % a)

-    if opts['verbosity'] &gt;= INFO:
+    #print "Verbosity=%s" % opts['verbosity']
+
+    if opts['verbosity'] &gt;= fcp.INFO:
         print "Launching Freenet XML-RPC server"
         print "Listening on %s:%s" % (opts['host'], opts['port'])
         print "Talking to Freenet FCP at %s:%s" % (opts['fcpHost'], 
opts['fcpPort'])
@@ -1002,9 +968,6 @@


 </t>
-<t tx="aum.20060509184020">@others
-
-</t>
 <t tx="aum.20060509184020.1">@others

 </t>
@@ -1028,17 +991,6 @@
         return False

 </t>
-<t tx="aum.20060509194923">def hello(self):
-    """
-    pings the FCP interface. just creates the connection,
-    sends a hello, then closes
-    """
-    if options==None:
-        options = {}
-
-    node = self._getNode()
-
-</t>
 <t tx="aum.20060509223528">@language python
 # ***********************************************************************
 #
@@ -6179,9 +6131,15 @@
     Returns:
         - the URI under which the freesite can be retrieved
     """
-    # alloc a job ID for FCP
-    id = self._getUniqueId()
+    self._log(INFO, "putdir: uri=%s dir=%s" % (uri, kw['dir']))

+    # -------------------------------------
+    # format the command
+    # 
+    # note that with this primitive, we have to format the command
+    # buffer ourselves, not just drop it through as a bunch of keywords,
+    # since we want to control the order of keyword lines
+
     # get keyword args
     dir = kw['dir']
     sitename = kw.get('name', 'freesite')
@@ -6190,14 +6148,15 @@
     maxretries = kw.get('maxretries', 3)
     priority = kw.get('priority', 1)

+    id = self._getUniqueId()
+
     # derive final URI for insert
     uriFull = uri + sitename + "/"
     if kw.get('usk', False):
         uriFull += "%d/" % int(version)
         uriFull = uriFull.replace("SSK@", "USK@")

-    # issue the command
-    #self._txMsg("ClientPutComplexDir", True, **opts)
+    # build a big command buffer
     msgLines = ["ClientPutComplexDir",
                 "Identifier=%s" % id,
                 "Verbosity=0",
@@ -6205,9 +6164,10 @@
                 "PriorityClass=%s" % priority,
                 "URI=%s" % uriFull,
                 ]
+
+    # scan directory and add its files
     n = 0
     manifest = readdir(kw['dir'])
-
     default = None
     for file in manifest:
         relpath = file['relpath']
@@ -6236,39 +6196,14 @@
         self._log(DETAIL, line)
     fullbuf = "\n".join(msgLines) + "\n"

+    # --------------------------------------
     # now dispatch the job
     return self._submitCmd(id, "ClientPutComplexDir",
                            rawcmd=fullbuf,
                            async=kw.get('async', False),
+                           callback=kw.get('callback', False),
                            )

-    # ------------------------------------------------------------
-    # DEPRECATED CODE
-
-
-    self.socket.send(fullbuf)
-
-    # expect URIGenerated
-    resp1 = self._rxMsg()
-    hdr = resp1['header']
-    if hdr != 'URIGenerated':
-        raise FCPException(resp1)
-
-    newUri = resp1['URI']
-
-    # expect outcome
-    resp2 = self._rxMsg()
-    hdr = resp2['header']
-    if hdr == 'PutSuccessful':
-        return resp2['URI']
-    elif hdr == 'PutFailed':
-        raise FCPPutFailed(resp2)
-    elif hdr == 'ProtocolError':
-        raise FCPProtocolError(resp2)
-    else:
-        raise FCPException(resp2)
-
-
 </t>
 <t tx="aum.20060511003500">from fcp import *

@@ -6305,6 +6240,11 @@
     """
     self.id = id
     self.cmd = cmd
+
+    callback = kw.pop('callback', None)
+    if callback:
+        self.callback = callback
+
     self.kw = kw

     self.lock = threading.Lock()
@@ -6544,6 +6484,9 @@
 <t tx="aum.20060511205201">def shutdown(self):
     """
     Terminates the manager thread
+    
+    You should explicitly shutdown any existing nodes
+    before exiting your client application
     """
     self.running = False

@@ -6559,11 +6502,13 @@
     if self.logfile not in [sys.stdout, sys.stderr]:
         self.logfile.close()

-
 </t>
 <t tx="aum.20060511205201.1">def _on_rxMsg(self, msg):
     """
-    Handler for incoming messages from node
+    Handles incoming messages from node
+    
+    If an incoming message represents the termination of a command,
+    the job ticket object will be notified accordingly
     """
     log = self._log

@@ -6585,7 +6530,9 @@

     if hdr == 'SSKKeypair':
         # got requested keys back
-        job._putResult((msg['RequestURI'], msg['InsertURI']))
+        keys = (msg['RequestURI'], msg['InsertURI'])
+        job.callback('successful', keys)
+        job._putResult(keys)

         # and remove job from queue
         self.jobs.pop(id, None)
@@ -6599,27 +6546,35 @@
         if job.kw.has_key('Filename'):
             # already stored to disk, done
             #resp['file'] = file
-            job._putResult((mimetype, job.kw['Filename']))
+            result = (mimetype, job.kw['Filename'])
+            job.callback('successful', result)
+            job._putResult(result)
             del self.jobs[id]
             return

         elif job.kw['ReturnType'] == 'none':
-            job._putResult((mimetype, 1))
+            result = (mimetype, 1)
+            job.callback('successful', result)
+            job._putResult(result)
             del self.jobs[id]
             return

         # otherwise, we're expecting an AllData and will react to it then
         else:
+            job.callback('pending', msg)
             job.mimetype = mimetype
             return

     if hdr == 'AllData':
-        job._putResult((job.mimetype, msg['Data']))
+        result = (job.mimetype, msg['Data'])
+        job.callback('successful', result)
+        job._putResult(result)
         del self.jobs[id]
         return

     if hdr == 'GetFailed':
         # return an exception
+        job.callback("failed", msg)
         job._putResult(FCPGetFailed(msg))
         del self.jobs[id]
         return
@@ -6631,6 +6586,7 @@

         job.uri = msg['URI']
         newUri = msg['URI']
+        job.callback('pending', msg)

         return

@@ -6642,11 +6598,14 @@
             return

     if hdr == 'PutSuccessful':
-        job._putResult(msg['URI'])
+        result = msg['URI']
+        job.callback('successful', result)
+        job._putResult(result)
         del self.jobs[id]
         return

     if hdr == 'PutFailed':
+        job.callback('failed', msg)
         job._putResult(FCPPutFailed(msg))
         del self.jobs[id]
         return
@@ -6655,41 +6614,48 @@
     # handle progress messages

     if hdr == 'StartedCompression':
-        job.notify(msg)
+        job.callback('pending', msg)
         return

     if hdr == 'FinishedCompression':
-        job.notify(msg)
+        job.callback('pending', msg)
         return

     if hdr == 'SimpleProgress':
+        job.callback('pending', msg)
         return

     # -----------------------------
     # handle persistent job messages

     if hdr == 'PersistentGet':
+        job.callback('pending', msg)
         return

     if hdr == 'PersistentPut':
+        job.callback('pending', msg)
         return

     if hdr == 'EndListPersistentRequests':
+        job.callback('pending', msg)
         return

     if hdr == 'PersistentPutDir':
+        job.callback('pending', msg)
         return

     # -----------------------------
     # handle various errors

     if hdr == 'ProtocolError':
+        job.callback('failed', msg)
         job._putResult(FCPProtocolError(msg))
         del self.jobs[id]
         return

     if hdr == 'IdentifierCollision':
         log(ERROR, "IdentifierCollision on id %s ???" % id)
+        job.callback('failed', msg)
         job._putResult(Exception("Duplicate job identifier %s" % id))
         del self.jobs[id]
         return
@@ -6698,6 +6664,7 @@
     # wtf is happening here?!?

     log(ERROR, "Unknown message type from node: %s" % hdr)
+    job.callback('failed', msg)
     job._putResult(FCPException(msg))
     del self.jobs[id]
     return
@@ -6705,7 +6672,9 @@
 </t>
 <t tx="aum.20060511205201.2">def _on_clientReq(self, req):
     """
-    handler for incoming requests from clients
+    takes an incoming requests from client and transmits it to
+    the fcp port, and also registers it so the manager thread
+    can action responses from the fcp port.
     """
     id = req.id
     cmd = req.cmd
@@ -6736,8 +6705,12 @@
     Keywords:
         - async - whether to return a JobTicket object, rather than
           the command result
+        - callback - a function taking 2 args 'status' and 'value'.
+          Status is one of 'successful', 'pending' or 'failed'.
+          value is the primitive return value if successful, or the raw
+          node message if pending or failed
         - rawcmd - a raw command buffer to send directly
-        - options specific to command
+        - options specific to command such as 'URI'

     Returns:
         - if command is sent in sync mode, returns the result
@@ -6745,7 +6718,9 @@
           object which the client can poll or block on later
     """
     async = kw.pop('async', False)
+
     job = JobTicket(id, cmd, kw)
+
     self.clientReqQueue.put(job)

     self._log(DEBUG, "_submitCmd: id=%s cmd=%s kw=%s" % (id, cmd, 
str(kw)[:256]))
@@ -6793,12 +6768,15 @@
     else:
         print "Freenet node is already running!"
         startingFreenet = False
-    
+
+    # add verbosity argument if needed    
     if verbose:
         kw = {"verbosity" : sitemgr.fcp.DETAIL}
     else:
         kw = {}
     #print "updatesites: kw=%s" % str(kw)
+
+    # get a site manager object, and perform the actual insertions
     s = sitemgr.SiteMgr(**kw)
     uri = s.update()
     del s
@@ -6843,5 +6821,88 @@
 #print "done"

 </t>
+<t tx="aum.20060512172707">@first #! /usr/bin/env python
+"""
+fcpxmlrpc.py
+
+Exposes some pyfcp primitives over an XML-RPC service
+"""
+
+ at others
+</t>
+<t tx="aum.20060512172843">import sys
+from SimpleXMLRPCServer import SimpleXMLRPCServer
+from SocketServer import ThreadingMixIn
+
+import fcp
+
+</t>
+<t tx="aum.20060512173027"># where to listen, for the xml-rpc server
+xmlrpcHost = "127.0.0.1"
+xmlrpcPort = 19481
+
+</t>
+<t tx="aum.20060512175041">class FCPXMLRPCServer(ThreadingMixIn, 
SimpleXMLRPCServer):
+    """
+    Multi-threaded XML-RPC server for freenet FCP access
+    """
+    @others
+
+</t>
+<t tx="aum.20060512175041.1">def __init__(self, **kw):
+    """
+    Creates the xml-rpc server
+
+    Keywords:
+        - host - hostname to listen on for xml-rpc requests, default 127.0.0.1
+        - port - port  to listen on for xml-rpc requests, default 19481
+        - fcpHost - hostname where FCP port is
+        - fcpPort - port where FCP port is
+        - verbosity - verbosity of output messages, 0 (silent) through 6 
(noisy),
+          default 4. Refer verbosity constants in fcp module
+    """
+    # create the server
+    host = kw.get('host', xmlrpcHost)
+    port = kw.get('port', xmlrpcPort)
+
+    SimpleXMLRPCServer.__init__(self, (host, port))
+
+    # create the fcp node interface
+    fcpHost = kw.get('fcpHost', fcp.defaultFCPHost)
+    fcpPort = kw.get('fcpPort', fcp.defaultFCPPort)
+    verbosity = kw.get('verbosity', fcp.SILENT)
+
+    node = self.node = fcp.FCPNodeConnection(host=fcpHost,
+                                             port=fcpPort,
+                                             verbosity=verbosity,
+                                             )
+
+    # create the request handler
+    hdlr = FreenetXMLRPCRequestHandler(node)
+
+    # link in the request handler object
+    self.register_instance(hdlr)
+    self.register_introspection_functions()
+
+</t>
+<t tx="aum.20060512175218">def run(self):
+    """
+    Launch the server to run forever
+    """
+    try:
+        self.serve_forever()
+    except KeyboardInterrupt:
+        self.node.shutdown()
+        raise
+
+</t>
+<t tx="aum.20060512181209">def callback(self, status, value):
+    """
+    This will be replaced in job ticket instances wherever
+    user provides callback arguments
+    """
+    # no action needed
+
+</t>
 </tnodes>
 </leo_file>

Modified: trunk/apps/pyFreenet/fcp.py
===================================================================
--- trunk/apps/pyFreenet/fcp.py 2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/fcp.py 2006-05-12 06:45:49 UTC (rev 8674)
@@ -1,29 +1,22 @@
 #!/usr/bin/env python
 """
 An implementation of a freenet client library for
-FCP v2
+FCP v2, offering considerable flexibility.

-This can be imported as a module by client apps wanting
-a simple Freenet FCP v2 interface, or it can be executed
-to run an XML-RPC server talking to FCP (run with -h for more info)
+Clients should instantiate FCPNodeConnection, then execute
+its methods to perform tasks with FCP.

-Written by aum, May 2006, released under the GNU Lesser General
+This module was written by aum, May 2006, released under the GNU Lesser General
 Public License.

 No warranty, yada yada

-Python hackers please feel free to hack constructively, but I
-strongly request that you preserve the simplicity and not impose
-any red tape on client writers.
-
 """

 import sys, os, socket, time, thread
 import threading, mimetypes, sha, Queue
 import select, traceback

-from SimpleXMLRPCServer import SimpleXMLRPCServer
-
 class ConnectionRefused(Exception):
     """
     cannot connect to given host/port
@@ -59,10 +52,6 @@
 defaultFCPHost = "127.0.0.1"
 defaultFCPPort = 9481

-# where to listen, for the xml-rpc server
-xmlrpcHost = "127.0.0.1"
-xmlrpcPort = 19481
-
 # poll timeout period for manager thread
 pollTimeout = 0.1
 #pollTimeout = 3
@@ -87,8 +76,50 @@

 class FCPNodeConnection:
     """
-    Low-level transport for connections to
-    FCP port
+    Represents an interface to a freenet node via its FCP port,
+    and exposes primitives for the basic genkey, get, put and putdir
+    operations.
+    
+    Only one instance of FCPNodeConnection is needed across an entire
+    running client application, because its methods are quite thread-safe.
+    Creating 2 or more instances is a waste of resources.
+
+    Clients, when invoking methods, have several options regarding flow
+    control and event notification:
+
+        - synchronous call (the default). Here, no pending status messages
+          will ever be seen, and the call will only control when it has
+          completed (successfully, or otherwise)
+        
+        - asynchronous call - this is invoked by passing the keyword argument
+          'async=True' to any of the main primitives. When a primitive is 
invoked
+          asynchronously, it will return a 'job ticket object' immediately. 
This
+          job ticket has methods for polling for job completion, or blocking
+          awaiting completion
+        
+        - setting a callback. You can pass to any of the primitives a
+          'callback=somefunc' keyword arg, where 'somefunc' is a callable 
object
+           conforming to::
+               
+               def somefunc(status, value):
+                   ...
+          
+          The callback function will be invoked when a primitive succeeds or 
fails,
+          as well as when a pending message is received from the node.
+          
+          The 'status' argument passed will be one of:
+              - 'successful' - the primitive succeeded, and 'value' will 
contain
+                the result of the primitive
+              - 'pending' - the primitive is still executing, and 'value' will
+                contain the raw pending message sent back from the node, as a
+                dict
+              - 'failed' - the primitive failed, and as with 'pending', the
+                argument 'value' contains a dict containing the message fields
+                sent back from the node
+
+          Note that callbacks can be set in both synchronous and asynchronous
+          calling modes.
+
     """
     def __init__(self, **kw):
         """
@@ -148,15 +179,6 @@

     # high level client methods

-    def _hello(self):
-        
-        self._txMsg("ClientHello", 
-                         Name=self.name,
-                         ExpectedVersion=expectedVersion)
-        
-        resp = self._rxMsg()
-        return resp
-    
     def genkey(self, **kw):
         """
         Generates and returns an SSK keypair
@@ -164,20 +186,19 @@
         Keywords:
             - async - whether to do this call asynchronously, and
               return a JobTicket object
+            - callback - if given, this should be a callable which accepts 2
+              arguments:
+                  - status - will be one of 'successful', 'failed' or 'pending'
+                  - value - depends on status:
+                      - if status is 'successful', this will contain the value
+                        returned from the command
+                      - if status is 'failed' or 'pending', this will contain
+                        a dict containing the response from node
         """
         id = self._getUniqueId()

         return self._submitCmd(id, "GenerateSSK", Identifier=id, **kw)

-        #self._txMsg("GenerateSSK",
-        #                 Identifier=id)
-        #while True:
-        #    resp = self._rxMsg()
-        #    #print resp
-        #    if resp['header'] == 'SSKKeypair' and str(resp['Identifier']) == 
id:
-        #        break
-        #return resp['RequestURI'], resp['InsertURI']
-    
     def get(self, uri, **kw):
         """
         Does a direct get of a key
@@ -198,12 +219,17 @@
             - if 'dontReturnData' is true, returns (mimetype, 1) if key is 
returned
         If key is not found, raises an exception
         """
+        self._log(INFO, "get: uri=%s" % uri)
+    
+        # ---------------------------------
         # format the request
         opts = {}

         id = self._getUniqueId()

         opts['async'] = kw.pop('async', False)
+        if kw.has_key('callback'):
+            opts['callback'] = kw['callback']

         file = kw.pop("file", None)
         if file:
@@ -238,41 +264,10 @@
         opts['PriorityClass'] = int(kw.get("priority", 1))
         opts['Global'] = "false"

+        # ---------------------------------
         # now enqueue the request
         return self._submitCmd(id, "ClientGet", **opts)

-    
-    
-        # ------------------------------------------------
-        # DEPRECATED CODE!!
-    
-        self._txMsg("ClientGet", **opts)
-       
-    
-        # get a response
-        resp = self._rxMsg()
-        hdr = resp['header']
-        if hdr == 'DataFound':
-            mimetype = resp['Metadata.ContentType']
-            if file:
-                # already stored to disk, done
-                resp['file'] = file
-                return (mimetype, file)
-            elif nodata:
-                return (mimetype, 1)
-            else:
-                resp = self._rxMsg()
-                if resp['header'] == 'AllData':
-                    return (mimetype, resp['Data'])
-                else:
-                    raise FCPProtocolError(resp)
-        elif hdr == 'GetFailed':
-            raise FCPGetFailed(resp)
-        elif hdr == 'ProtocolError':
-            raise FCPProtocolError(resp)
-        else:
-            raise FCPException(resp)
-    
     def put(self, uri="CHK@", **kw):
         """
         Inserts a key
@@ -307,14 +302,19 @@
         Notes:
             - exactly one of 'file', 'data' or 'dir' keyword arguments must be 
present
         """
+        self._log(INFO, "put: uri=%s" % uri)

         # divert to putdir if dir keyword present
         if kw.has_key('dir'):
             return self.putdir(uri, **kw)

+        # ---------------------------------
+        # format the request
         opts = {}

         opts['async'] = kw.get('async', False)
+        if kw.has_key('callback'):
+            opts['callback'] = kw['callback']

         opts['URI'] = uri
         opts['Metadata.ContentType'] = kw.get("mimetype", "text/plain")
@@ -344,42 +344,10 @@

         #print "sendEnd=%s" % sendEnd

+        # ---------------------------------
         # now dispatch the job
         return self._submitCmd(id, "ClientPut", **opts)

-    
-        # ------------------------------------------------------------
-        # DEPRECATED CODE
-    
-        # issue the command
-        self._txMsg("ClientPut", **opts)
-    
-        # expect URIGenerated
-        resp1 = self._rxMsg()
-        hdr = resp1['header']
-        if hdr != 'URIGenerated':
-            raise FCPException(resp1)
-    
-        newUri = resp1['URI']
-    
-        # bail here if no data coming back
-        if opts.get('UploadFrom', None) == 'redirect' or opts['GetCHKOnly'] == 
'true':
-            if not kw.has_key('redirect'):
-                return newUri
-        
-        # expect outcome
-        resp2 = self._rxMsg()
-        hdr = resp2['header']
-        if hdr == 'PutSuccessful':
-            return resp2['URI']
-        elif hdr == 'PutFailed':
-            raise FCPPutFailed(resp2)
-        elif hdr == 'ProtocolError':
-            raise FCPProtocolError(resp2)
-        else:
-            raise FCPException(resp2)
-    
-    
     def putdir(self, uri, **kw):
         """
         Inserts a freesite
@@ -402,9 +370,15 @@
         Returns:
             - the URI under which the freesite can be retrieved
         """
-        # alloc a job ID for FCP
-        id = self._getUniqueId()
+        self._log(INFO, "putdir: uri=%s dir=%s" % (uri, kw['dir']))

+        # -------------------------------------
+        # format the command
+        # 
+        # note that with this primitive, we have to format the command
+        # buffer ourselves, not just drop it through as a bunch of keywords,
+        # since we want to control the order of keyword lines
+    
         # get keyword args
         dir = kw['dir']
         sitename = kw.get('name', 'freesite')
@@ -413,14 +387,15 @@
         maxretries = kw.get('maxretries', 3)
         priority = kw.get('priority', 1)

+        id = self._getUniqueId()
+    
         # derive final URI for insert
         uriFull = uri + sitename + "/"
         if kw.get('usk', False):
             uriFull += "%d/" % int(version)
             uriFull = uriFull.replace("SSK@", "USK@")

-        # issue the command
-        #self._txMsg("ClientPutComplexDir", True, **opts)
+        # build a big command buffer
         msgLines = ["ClientPutComplexDir",
                     "Identifier=%s" % id,
                     "Verbosity=0",
@@ -428,9 +403,10 @@
                     "PriorityClass=%s" % priority,
                     "URI=%s" % uriFull,
                     ]
+    
+        # scan directory and add its files
         n = 0
         manifest = readdir(kw['dir'])
-    
         default = None
         for file in manifest:
             relpath = file['relpath']
@@ -459,42 +435,20 @@
             self._log(DETAIL, line)
         fullbuf = "\n".join(msgLines) + "\n"

+        # --------------------------------------
         # now dispatch the job
         return self._submitCmd(id, "ClientPutComplexDir",
                                rawcmd=fullbuf,
                                async=kw.get('async', False),
+                               callback=kw.get('callback', False),
                                )

-        # ------------------------------------------------------------
-        # DEPRECATED CODE
-    
-    
-        self.socket.send(fullbuf)
-    
-        # expect URIGenerated
-        resp1 = self._rxMsg()
-        hdr = resp1['header']
-        if hdr != 'URIGenerated':
-            raise FCPException(resp1)
-    
-        newUri = resp1['URI']
-    
-        # expect outcome
-        resp2 = self._rxMsg()
-        hdr = resp2['header']
-        if hdr == 'PutSuccessful':
-            return resp2['URI']
-        elif hdr == 'PutFailed':
-            raise FCPPutFailed(resp2)
-        elif hdr == 'ProtocolError':
-            raise FCPProtocolError(resp2)
-        else:
-            raise FCPException(resp2)
-    
-    
     def shutdown(self):
         """
         Terminates the manager thread
+        
+        You should explicitly shutdown any existing nodes
+        before exiting your client application
         """
         self.running = False

@@ -513,12 +467,12 @@



-    
     # methods for manager thread

     def _mgrThread(self):
         """
-        Receives all incoming messages
+        This thread is the nucleus of pyfcp, and coordinates incoming
+        client commands and incoming node responses
         """
         log = self._log
         try:
@@ -572,8 +526,12 @@
         Keywords:
             - async - whether to return a JobTicket object, rather than
               the command result
+            - callback - a function taking 2 args 'status' and 'value'.
+              Status is one of 'successful', 'pending' or 'failed'.
+              value is the primitive return value if successful, or the raw
+              node message if pending or failed
             - rawcmd - a raw command buffer to send directly
-            - options specific to command
+            - options specific to command such as 'URI'

         Returns:
             - if command is sent in sync mode, returns the result
@@ -581,7 +539,9 @@
               object which the client can poll or block on later
         """
         async = kw.pop('async', False)
+    
         job = JobTicket(id, cmd, kw)
+    
         self.clientReqQueue.put(job)

         self._log(DEBUG, "_submitCmd: id=%s cmd=%s kw=%s" % (id, cmd, 
str(kw)[:256]))
@@ -593,7 +553,10 @@

     def _on_rxMsg(self, msg):
         """
-        Handler for incoming messages from node
+        Handles incoming messages from node
+        
+        If an incoming message represents the termination of a command,
+        the job ticket object will be notified accordingly
         """
         log = self._log

@@ -615,7 +578,9 @@

         if hdr == 'SSKKeypair':
             # got requested keys back
-            job._putResult((msg['RequestURI'], msg['InsertURI']))
+            keys = (msg['RequestURI'], msg['InsertURI'])
+            job.callback('successful', keys)
+            job._putResult(keys)

             # and remove job from queue
             self.jobs.pop(id, None)
@@ -629,27 +594,35 @@
             if job.kw.has_key('Filename'):
                 # already stored to disk, done
                 #resp['file'] = file
-                job._putResult((mimetype, job.kw['Filename']))
+                result = (mimetype, job.kw['Filename'])
+                job.callback('successful', result)
+                job._putResult(result)
                 del self.jobs[id]
                 return

             elif job.kw['ReturnType'] == 'none':
-                job._putResult((mimetype, 1))
+                result = (mimetype, 1)
+                job.callback('successful', result)
+                job._putResult(result)
                 del self.jobs[id]
                 return

             # otherwise, we're expecting an AllData and will react to it then
             else:
+                job.callback('pending', msg)
                 job.mimetype = mimetype
                 return

         if hdr == 'AllData':
-            job._putResult((job.mimetype, msg['Data']))
+            result = (job.mimetype, msg['Data'])
+            job.callback('successful', result)
+            job._putResult(result)
             del self.jobs[id]
             return

         if hdr == 'GetFailed':
             # return an exception
+            job.callback("failed", msg)
             job._putResult(FCPGetFailed(msg))
             del self.jobs[id]
             return
@@ -661,6 +634,7 @@

             job.uri = msg['URI']
             newUri = msg['URI']
+            job.callback('pending', msg)

             return

@@ -672,11 +646,14 @@
                 return

         if hdr == 'PutSuccessful':
-            job._putResult(msg['URI'])
+            result = msg['URI']
+            job.callback('successful', result)
+            job._putResult(result)
             del self.jobs[id]
             return

         if hdr == 'PutFailed':
+            job.callback('failed', msg)
             job._putResult(FCPPutFailed(msg))
             del self.jobs[id]
             return
@@ -685,41 +662,48 @@
         # handle progress messages

         if hdr == 'StartedCompression':
-            job.notify(msg)
+            job.callback('pending', msg)
             return

         if hdr == 'FinishedCompression':
-            job.notify(msg)
+            job.callback('pending', msg)
             return

         if hdr == 'SimpleProgress':
+            job.callback('pending', msg)
             return

         # -----------------------------
         # handle persistent job messages

         if hdr == 'PersistentGet':
+            job.callback('pending', msg)
             return

         if hdr == 'PersistentPut':
+            job.callback('pending', msg)
             return

         if hdr == 'EndListPersistentRequests':
+            job.callback('pending', msg)
             return

         if hdr == 'PersistentPutDir':
+            job.callback('pending', msg)
             return

         # -----------------------------
         # handle various errors

         if hdr == 'ProtocolError':
+            job.callback('failed', msg)
             job._putResult(FCPProtocolError(msg))
             del self.jobs[id]
             return

         if hdr == 'IdentifierCollision':
             log(ERROR, "IdentifierCollision on id %s ???" % id)
+            job.callback('failed', msg)
             job._putResult(Exception("Duplicate job identifier %s" % id))
             del self.jobs[id]
             return
@@ -728,13 +712,16 @@
         # wtf is happening here?!?

         log(ERROR, "Unknown message type from node: %s" % hdr)
+        job.callback('failed', msg)
         job._putResult(FCPException(msg))
         del self.jobs[id]
         return

     def _on_clientReq(self, req):
         """
-        handler for incoming requests from clients
+        takes an incoming requests from client and transmits it to
+        the fcp port, and also registers it so the manager thread
+        can action responses from the fcp port.
         """
         id = req.id
         cmd = req.cmd
@@ -749,7 +736,21 @@

     # low level noce comms methods

+    def _hello(self):
+        """
+        perform the initial FCP protocol handshake
+        """
+        self._txMsg("ClientHello", 
+                         Name=self.name,
+                         ExpectedVersion=expectedVersion)
+        
+        resp = self._rxMsg()
+        return resp
+    
     def _getUniqueId(self):
+        """
+        Allocate a unique ID for a request
+        """
         return "id" + str(int(time.time() * 1000000))

     def _txMsg(self, msgType, **kw):
@@ -761,6 +762,7 @@
             - args - zero or more (keyword, value) tuples
         Keywords:
             - rawcmd - if given, this is the raw buffer to send
+            - other keywords depend on the value of msgType
         """
         log = self._log

@@ -914,6 +916,11 @@
         """
         self.id = id
         self.cmd = cmd
+    
+        callback = kw.pop('callback', None)
+        if callback:
+            self.callback = callback
+    
         self.kw = kw

         self.lock = threading.Lock()
@@ -937,6 +944,13 @@
         else:
             return self.result

+    def callback(self, status, value):
+        """
+        This will be replaced in job ticket instances wherever
+        user provides callback arguments
+        """
+        # no action needed
+    
     def _putResult(self, result):
         """
         Called by manager thread to indicate job is complete,
@@ -946,95 +960,6 @@
         self.lock.release()


-class FreenetXMLRPCRequest:
-    """
-    Simple class which exposes basic primitives
-    for freenet xmlrpc server
-    """
-    def __init__(self, **kw):
-    
-        self.kw = kw
-    
-    def _getNode(self):
-        
-        node = FCPNodeConnection(**self.kw)
-        node.hello()
-        return node
-    
-    def _hello(self):
-        
-        self.node.hello()
-    
-    def hello(self):
-        """
-        pings the FCP interface. just creates the connection,
-        sends a hello, then closes
-        """
-        if options==None:
-            options = {}
-    
-        node = self._getNode()
-    
-    def get(self, uri, options=None):
-        """
-        Performs a fetch of a key
-    
-        Arguments:
-            - uri - the URI to retrieve
-            - options - a mapping (dict) object containing various
-              options - refer to FCPNodeConnection.get documentation
-        """
-        if options==None:
-            options = {}
-    
-        node = self._getNode()
-    
-        return node.get(uri, **options)
-    
-    def put(self, uri, options=None):
-        """
-        Inserts data to node
-    
-        Arguments:
-            - uri - the URI to insert under
-            - options - a mapping (dict) object containing various
-              options - refer to FCPNodeConnection.get documentation
-        """
-        if options==None:
-            options = {}
-    
-        node = self._getNode()
-    
-        return node.put(uri, data=data, **options)
-    
-    def genkey(self):
-        
-        node = self._getNode()
-    
-        return self.node.genkey()
-    
-
-def runServer(**kw):
-    """
-    Runs a basic XML-RPC server for FCP access
-    """
-    host = kw.get('host', xmlrpcHost)
-    port = kw.get('port', xmlrpcPort)
-    fcpHost = kw.get('fcpHost', defaultFCPHost)
-    fcpPort = kw.get('fcpPort', defaultFCPPort)
-    verbosity = kw.get('verbosity', SILENT)
-
-    server = SimpleXMLRPCServer((xmlrpcHost, xmlrpcPort))
-    inst = FreenetXMLRPCRequest(host=fcpHost, port=fcpPort, 
verbosity=verbosity)
-    server.register_instance(inst)
-    server.register_introspection_methods()
-    server.serve_forever()
-
-def testServer():
-    
-    runServer(host="", fcpHost="10.0.0.1", verbosity=DETAIL)
-
-
 def toBool(arg):
     try:
         arg = int(arg)
@@ -1111,100 +1036,4 @@
         m = "text/plain"
     return m

-def usage(msg="", ret=1):

-    if msg:
-        sys.stderr.write(msg+"\n")
-
-    print "\n".join([
-        "Freenet XML-RPC Server",
-        "Usage: %s [options]" % sys.argv[0],
-        "Options:",
-        "  -h, --help",
-        "       show this usage message",
-        "  -v, --verbosity=",
-        "       set verbosity level, values are:",
-        "         0 (SILENT) show only 1 line for incoming hits",
-        "         1 (FATAL) show only fatal messages",
-        "         2 (CRITICAL) show only major failures",
-        "         3 (ERROR) show significant errors",
-        "         4 (INFO) show basic request details",
-        "         5 (DETAIL) show FCP dialogue",
-        "         6 (DEBUG) show ridiculous amounts of debug info",
-        "  --host=",
-        "       listen hostname for xml-rpc requests, default %s" % xmlrpcHost,
-        "  --port=",
-        "       listen port number for xml-rpc requests, default %s" % 
xmlrpcPort,
-        "  --fcphost=",
-        "       set hostname of freenet FCP interface, default %s" % 
defaultFCPHost,
-        "  --fcpport=",
-        "       set port number of freenet FCP interface, default %s" % 
defaultFCPPort,
-        ])
-
-    sys.exit(ret)
-
-def main():
-    """
-    When this script is executed, it runs the XML-RPC server
-    """
-    import getopt
-
-    opts = {'verbosity': 0,
-            'host':xmlrpcHost,
-            'port':xmlrpcPort,
-            'fcpHost':defaultFCPHost,
-            'fcpPort':defaultFCPPort,
-            }
-
-    try:
-        cmdopts, args = getopt.getopt(sys.argv[1:],
-                                   "?hv:",
-                                   ["help", "verbosity=", "host=", "port=",
-                                    "fcphost=", "fcpport="])
-    except getopt.GetoptError:
-        # print help information and exit:
-        usage()
-        sys.exit(2)
-    output = None
-    verbose = False
-    #print cmdopts
-    for o, a in cmdopts:
-        if o == "-v":
-            verbose = True
-        elif o in ("-h", "--help"):
-            usage(ret=0)
-        elif o == "--host":
-            opts['host'] = a
-        elif o == "--port":
-            try:
-                opts['port'] = int(a)
-            except:
-                usage("Invalid port number '%s'" % a)
-        elif o == "--fcphost":
-            opts['fcpHost'] = a
-        elif o == "--fcpport":
-            opts['fcpPort'] = a
-        elif o in ['-v', '--verbosity']:
-            try:
-                opts['verbosity'] = int(a)
-                #print "verbosity=%s" % opts['verbosity']
-            except:
-                usage("Invalid verbosity '%s'" % a)
-
-    if opts['verbosity'] >= INFO:
-        print "Launching Freenet XML-RPC server"
-        print "Listening on %s:%s" % (opts['host'], opts['port'])
-        print "Talking to Freenet FCP at %s:%s" % (opts['fcpHost'], 
opts['fcpPort'])
-
-    try:
-        runServer(**opts)
-    except KeyboardInterrupt:
-        print "Freenet XML-RPC server terminated by user"
-
-
-
-if __name__ == '__main__':
-    
-    main()
-
-

Added: trunk/apps/pyFreenet/fcpxmlrpc.py
===================================================================
--- trunk/apps/pyFreenet/fcpxmlrpc.py   2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/fcpxmlrpc.py   2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,262 @@
+#! /usr/bin/env python
+#@+leo-ver=4
+#@+node:@file fcpxmlrpc.py
+#@@first
+"""
+fcpxmlrpc.py
+
+Exposes some pyfcp primitives over an XML-RPC service
+"""
+
+#@+others
+#@+node:imports
+import sys
+from SimpleXMLRPCServer import SimpleXMLRPCServer
+from SocketServer import ThreadingMixIn
+
+import fcp
+
+#@-node:imports
+#@+node:globals
+# where to listen, for the xml-rpc server
+xmlrpcHost = "127.0.0.1"
+xmlrpcPort = 19481
+
+#@-node:globals
+#@+node:class FCPXMLRPCServer
+class FCPXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
+    """
+    Multi-threaded XML-RPC server for freenet FCP access
+    """
+    #@    @+others
+    #@+node:__init__
+    def __init__(self, **kw):
+        """
+        Creates the xml-rpc server
+    
+        Keywords:
+            - host - hostname to listen on for xml-rpc requests, default 
127.0.0.1
+            - port - port  to listen on for xml-rpc requests, default 19481
+            - fcpHost - hostname where FCP port is
+            - fcpPort - port where FCP port is
+            - verbosity - verbosity of output messages, 0 (silent) through 6 
(noisy),
+              default 4. Refer verbosity constants in fcp module
+        """
+        # create the server
+        host = kw.get('host', xmlrpcHost)
+        port = kw.get('port', xmlrpcPort)
+    
+        SimpleXMLRPCServer.__init__(self, (host, port))
+    
+        # create the fcp node interface
+        fcpHost = kw.get('fcpHost', fcp.defaultFCPHost)
+        fcpPort = kw.get('fcpPort', fcp.defaultFCPPort)
+        verbosity = kw.get('verbosity', fcp.SILENT)
+    
+        node = self.node = fcp.FCPNodeConnection(host=fcpHost,
+                                                 port=fcpPort,
+                                                 verbosity=verbosity,
+                                                 )
+    
+        # create the request handler
+        hdlr = FreenetXMLRPCRequestHandler(node)
+    
+        # link in the request handler object
+        self.register_instance(hdlr)
+        self.register_introspection_functions()
+    
+    #@-node:__init__
+    #@+node:run
+    def run(self):
+        """
+        Launch the server to run forever
+        """
+        try:
+            self.serve_forever()
+        except KeyboardInterrupt:
+            self.node.shutdown()
+            raise
+    
+    #@-node:run
+    #@-others
+
+#@-node:class FCPXMLRPCServer
+#@+node:class FreenetXMLRPCRequestHandler
+class FreenetXMLRPCRequestHandler:
+    """
+    Simple class which exposes basic primitives
+    for freenet xmlrpc server
+    """
+    #@    @+others
+    #@+node:__init__
+    def __init__(self, node):
+    
+        self.node = node
+    
+    
+    #@-node:__init__
+    #@+node:get
+    def get(self, uri, options=None):
+        """
+        Performs a fetch of a key
+    
+        Arguments:
+            - uri - the URI to retrieve
+            - options - a mapping (dict) object containing various
+              options - refer to FCPNodeConnection.get documentation
+        """
+        if options==None:
+            options = {}
+    
+        return self.node.get(uri, **options)
+    
+    #@-node:get
+    #@+node:put
+    def put(self, uri, options=None):
+        """
+        Inserts data to node
+    
+        Arguments:
+            - uri - the URI to insert under
+            - options - a mapping (dict) object containing various
+              options - refer to FCPNodeConnection.get documentation
+        """
+        if options==None:
+            options = {}
+    
+        return self.node.put(uri, data=data, **options)
+    
+    #@-node:put
+    #@+node:genkey
+    def genkey(self):
+        
+        return self.node.genkey()
+    
+    #@-node:genkey
+    #@-others
+
+#@-node:class FreenetXMLRPCRequestHandler
+#@+node:usage
+def usage(msg="", ret=1):
+
+    if msg:
+        sys.stderr.write(msg+"\n")
+
+    print "\n".join([
+        "Freenet XML-RPC Server",
+        "Usage: %s [options]" % sys.argv[0],
+        "Options:",
+        "  -h, --help",
+        "       show this usage message",
+        "  -v, --verbosity=",
+        "       set verbosity level, values are:",
+        "         0 (SILENT) show only 1 line for incoming hits",
+        "         1 (FATAL) show only fatal messages",
+        "         2 (CRITICAL) show only major failures",
+        "         3 (ERROR) show significant errors",
+        "         4 (INFO) show basic request details",
+        "         5 (DETAIL) show FCP dialogue",
+        "         6 (DEBUG) show ridiculous amounts of debug info",
+        "  --host=",
+        "       listen hostname for xml-rpc requests, default %s" % xmlrpcHost,
+        "  --port=",
+        "       listen port number for xml-rpc requests, default %s" % 
xmlrpcPort,
+        "  --fcphost=",
+        "       set hostname of freenet FCP interface, default %s" \
+             % fcp.defaultFCPHost,
+        "  --fcpport=",
+        "       set port number of freenet FCP interface, default %s" \
+             % fcp.defaultFCPPort,
+        ])
+
+    sys.exit(ret)
+
+#@-node:usage
+#@+node:testServer
+def testServer():
+    
+    runServer(host="", fcpHost="10.0.0.1", verbosity=DETAIL)
+
+#@-node:testServer
+#@+node:runServer
+def runServer(**kw):
+    """
+    Creates and runs a basic XML-RPC server for FCP access
+    
+    For keyword parameters, refer FCPXMLRPCServer constructor
+    """
+    FCPXMLRPCServer(**kw).run()
+
+#@-node:runServer
+#@+node:main
+def main():
+    """
+    When this script is executed, it runs the XML-RPC server
+    """
+    import getopt
+
+    opts = {'verbosity': fcp.INFO,
+            'host':xmlrpcHost,
+            'port':xmlrpcPort,
+            'fcpHost':fcp.defaultFCPHost,
+            'fcpPort':fcp.defaultFCPPort,
+            }
+
+    try:
+        cmdopts, args = getopt.getopt(sys.argv[1:],
+                                   "?hv:",
+                                   ["help", "verbosity=", "host=", "port=",
+                                    "fcphost=", "fcpport="])
+    except getopt.GetoptError:
+        # print help information and exit:
+        usage()
+        sys.exit(2)
+    output = None
+    verbose = False
+    #print cmdopts
+    for o, a in cmdopts:
+        if o in ("-h", "--help"):
+            usage(ret=0)
+        elif o == "--host":
+            opts['host'] = a
+        elif o == "--port":
+            try:
+                opts['port'] = int(a)
+            except:
+                usage("Invalid port number '%s'" % a)
+        elif o == "--fcphost":
+            opts['fcpHost'] = a
+        elif o == "--fcpport":
+            opts['fcpPort'] = a
+        elif o in ['-v', '--verbosity']:
+            print "setting verbosity"
+            try:
+                opts['verbosity'] = int(a)
+                #print "verbosity=%s" % opts['verbosity']
+            except:
+                usage("Invalid verbosity '%s'" % a)
+
+    #print "Verbosity=%s" % opts['verbosity']
+
+    if opts['verbosity'] >= fcp.INFO:
+        print "Launching Freenet XML-RPC server"
+        print "Listening on %s:%s" % (opts['host'], opts['port'])
+        print "Talking to Freenet FCP at %s:%s" % (opts['fcpHost'], 
opts['fcpPort'])
+
+    try:
+        runServer(**opts)
+    except KeyboardInterrupt:
+        print "Freenet XML-RPC server terminated by user"
+
+
+
+#@-node:main
+#@+node:mainline
+if __name__ == '__main__':
+    
+    main()
+
+#@-node:mainline
+#@-others
+#@-node:@file fcpxmlrpc.py
+#@-leo


Property changes on: trunk/apps/pyFreenet/fcpxmlrpc.py
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/apps/pyFreenet/html/epydoc.css
===================================================================
--- trunk/apps/pyFreenet/html/epydoc.css        2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/epydoc.css        2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,100 @@
+
+/* Body color */ 
+body               { background: #ffffff; color: #000000; } 
+ 
+/* Tables */ 
+table.summary, table.details, table.index
+                   { background: #e8f0f8; color: #000000; } 
+tr.summary, tr.details, tr.index
+                   { background: #70b0f0; color: #000000;  
+                     text-align: left; font-size: 120%; } 
+tr.group           { background: #c0e0f8; color: #000000;
+                     text-align: left; font-size: 120%;
+                     font-style: italic; } 
+
+/* Documentation page titles */
+h2.module          { margin-top: 0.2em; }
+h2.class           { margin-top: 0.2em; }
+ 
+/* Headings */
+h1.heading         { font-size: +140%; font-style: italic;
+                     font-weight: bold; }
+h2.heading         { font-size: +125%; font-style: italic;
+                     font-weight: bold; }
+h3.heading         { font-size: +110%; font-style: italic;
+                     font-weight: normal; }
+                    
+/* Base tree */
+pre.base-tree      { font-size: 80%; margin: 0; }
+
+/* Details Sections */
+table.func-details { background: #e8f0f8; color: #000000;
+                     border: 2px groove #c0d0d0;
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.func-detail     { background: transparent; color: #000000;
+                     margin: 0 0 1em 0; }
+
+table.var-details  { background: #e8f0f8; color: #000000;
+                     border: 2px groove #c0d0d0;
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.var-details     { background: transparent; color: #000000;
+                     margin: 0 0 1em 0; }
+
+/* Function signatures */
+.sig               { background: transparent; color: #000000;
+                     font-weight: bold; }  
+.sig-name          { background: transparent; color: #006080; }  
+.sig-arg, .sig-kwarg, .sig-vararg
+                   { background: transparent; color: #008060; }  
+.sig-default       { background: transparent; color: #602000; }  
+.summary-sig       { background: transparent; color: #000000; }  
+.summary-sig-name  { background: transparent; color: #204080; }
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
+                   { background: transparent; color: #008060; }  
+
+/* Doctest blocks */
+.py-src            { background: transparent; color: #000000; }
+.py-prompt         { background: transparent; color: #005050;
+                     font-weight: bold;}
+.py-string         { background: transparent; color: #006030; }
+.py-comment        { background: transparent; color: #003060; }
+.py-keyword        { background: transparent; color: #600000; }
+.py-output         { background: transparent; color: #404040; }
+pre.doctestblock   { background: #f4faff; color: #000000; 
+                     padding: .5em; margin: 1em;
+                     border: 1px solid #708890; }
+table pre.doctestblock
+                   { background: #dce4ec; color: #000000; 
+                     padding: .5em; margin: 1em;
+                     border: 1px solid #708890; }
+
+/* Variable values */
+pre.variable       { background: #dce4ec; color: #000000;
+                     padding: .5em; margin: 0;
+                     border: 1px solid #708890; }
+.variable-linewrap { background: transparent; color: #604000; }
+.variable-ellipsis { background: transparent; color: #604000; }
+.variable-quote    { background: transparent; color: #604000; }
+.re                { background: transparent; color: #000000; }
+.re-char           { background: transparent; color: #006030; }
+.re-op             { background: transparent; color: #600000; }
+.re-group          { background: transparent; color: #003060; }
+.re-ref            { background: transparent; color: #404040; }
+
+/* Navigation bar */ 
+table.navbar       { background: #a0c0ff; color: #0000ff;
+                     border: 2px groove #c0d0d0; }
+th.navbar          { background: #a0c0ff; color: #0000ff; } 
+th.navselect       { background: #70b0ff; color: #000000; } 
+.nomargin          { margin: 0; }
+
+/* Links */ 
+a:link             { background: transparent; color: #0000ff; }  
+a:visited          { background: transparent; color: #204080; }  
+a.navbar:link      { background: transparent; color: #0000ff; 
+                     text-decoration: none; }  
+a.navbar:visited   { background: transparent; color: #204080; 
+                     text-decoration: none; }  
+
+/* Lists */
+ul { margin-top: 0; }

Added: trunk/apps/pyFreenet/html/index.html
===================================================================
--- trunk/apps/pyFreenet/html/index.html        2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/index.html        2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+  <title> PyFCP - Python client interface to Freenet FCP </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="public/toc.html" name="moduleListFrame">
+    <frame src="public/toc-everything.html" name="moduleFrame">
+  </frameset>
+  <frame src="public/trees.html" name="mainFrame">
+</frameset>
+</html>

Added: 
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
===================================================================
--- 
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
      2006-05-12 03:47:00 UTC (rev 8673)
+++ 
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
      2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SimpleXMLRPCServer ::
+        Class&nbsp;SimpleXMLRPCDispatcher
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class SimpleXMLRPCDispatcher</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+<p>Mix-in class that dispatches XML-RPC requests.</p>
+This class is used to register XML-RPC method handlers and then to 
+dispatch them. There should never be any reason to instantiate this class 
+directly.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function" 
class="summary-sig-name"><code>register_function</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>function</span>,
+          <span class=summary-sig-arg>name</span>)</span></code>
+<br />
+Registers a function to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance" 
class="summary-sig-name"><code>register_instance</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>instance</span>,
+          <span class=summary-sig-arg>allow_dotted_names</span>)</span></code>
+<br />
+Registers an instance to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"
 
class="summary-sig-name"><code>register_introspection_functions</code></a>(<span
 class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC introspection methods in the system 
+namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"
 class="summary-sig-name"><code>register_multicall_functions</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC multicall method in the system namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods" 
class="summary-sig-name"><code>system_listMethods</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+system.listMethods() =&gt; ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp" 
class="summary-sig-name"><code>system_methodHelp</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodHelp('add') =&gt; &quot;Adds two integers 
+together&quot;</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"
 class="summary-sig-name"><code>system_methodSignature</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodSignature('add') =&gt; [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall" 
class="summary-sig-name"><code>system_multicall</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>call_list</span>)</span></code>
+<br />
+system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) =&gt; 
+[[4], ...]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_dispatch"
 class="summary-sig-name"><code>_dispatch</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method</span>,
+          <span class=summary-sig-arg>params</span>)</span></code>
+<br />
+Dispatches the XML-RPC method.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_marshaled_dispatch"
 class="summary-sig-name"><code>_marshaled_dispatch</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>data</span>,
+          <span class=summary-sig-arg>dispatch_method</span>)</span></code>
+<br />
+Dispatches an XML-RPC method from marshalled (XML) data.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="register_function"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">register_function</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>function</span>,
+          <span class=sig-arg>name</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Registers a function to respond to XML-RPC requests.</p>
+  The optional name argument can be used to set a Unicode name for the 
+  function.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="register_instance"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">register_instance</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>instance</span>,
+          <span class=sig-arg>allow_dotted_names</span>=<span 
class=sig-default>False</span>)</span>
+  </h3>
+<pre class="literalblock">
+Registers an instance to respond to XML-RPC requests.
+
+Only one instance can be installed at a time.
+
+If the registered instance has a _dispatch method then that
+method will be called with the name of the XML-RPC method and
+it's parameters as a tuple
+e.g. instance._dispatch('add',(2,3))
+
+If the registered instance does not have a _dispatch method
+then the instance will be searched to find a matching method
+and, if found, will be called. Methods beginning with an '_'
+are considered private and will not be called by
+SimpleXMLRPCServer.
+
+If a registered function matches a XML-RPC request, then it
+will be called instead of the registered instance.
+
+If the optional allow_dotted_names argument is true and the
+instance does not have a _dispatch method, method names
+containing dots are supported and resolved, as long as none of
+the name segments start with an '_'.
+
+    *** SECURITY WARNING: ***
+
+    Enabling the allow_dotted_names options allows intruders
+    to access your module's global variables and may allow
+    intruders to execute arbitrary code on your machine.  Only
+    use this option on a secure, closed network.
+</pre>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="register_introspection_functions"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">register_introspection_functions</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Registers the XML-RPC introspection methods in the system 
+  namespace.</p>
+  see http://xmlrpc.usefulinc.com/doc/reserved.html
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="register_multicall_functions"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">register_multicall_functions</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Registers the XML-RPC multicall method in the system namespace.</p>
+  see http://www.xmlrpc.com/discuss/msgReader$1208
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_listMethods"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">system_listMethods</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>system.listMethods() =&gt; ['add', 'subtract', 'multiple']</p>
+  Returns a list of the methods supported by the server.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_methodHelp"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">system_methodHelp</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>method_name</span>)</span>
+  </h3>
+  <p>system.methodHelp('add') =&gt; &quot;Adds two integers 
+  together&quot;</p>
+  Returns a string containing documentation for the specified 
+  method.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_methodSignature"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">system_methodSignature</span>(<span class=sig-arg>self</span>,
+          <span class=sig-arg>method_name</span>)</span>
+  </h3>
+  <p>system.methodSignature('add') =&gt; [double, int, int]</p>
+  <p>Returns a list describing the signature of the method. In the above 
+  example, the add method takes two integers as arguments and returns a 
+  double result.</p>
+  This server does NOT support system.methodSignature.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_multicall"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">system_multicall</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>call_list</span>)</span>
+  </h3>
+  <p>system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) 
+  =&gt; [[4], ...]</p>
+  <p>Allows the caller to package multiple XML-RPC calls into a single 
+  request.</p>
+  See http://www.xmlrpc.com/discuss/msgReader$1208
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_dispatch"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_dispatch</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>method</span>,
+          <span class=sig-arg>params</span>)</span>
+  </h3>
+  <p>Dispatches the XML-RPC method.</p>
+  <p>XML-RPC calls are forwarded to a registered function that matches 
+  the called XML-RPC method name. If no such function exists then the 
+  call is forwarded to the registered instance, if available.</p>
+  <p>If the registered instance has a _dispatch method then that method 
+  will be called with the name of the XML-RPC method and it's parameters 
+  as a tuple e.g. instance._dispatch('add',(2,3))</p>
+  <p>If the registered instance does not have a _dispatch method then the 
+  instance will be searched to find a matching method and, if found, will 
+  be called.</p>
+  Methods beginning with an '_' are considered private and will not be 
+  called.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_marshaled_dispatch"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">_marshaled_dispatch</span>(<span class=sig-arg>self</span>,
+          <span class=sig-arg>data</span>,
+          <span class=sig-arg>dispatch_method</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Dispatches an XML-RPC method from marshalled (XML) data.</p>
+  XML-RPC methods are dispatched from the marshalled (XML) data using 
+  the _dispatch method and the result is returned as marshalled data. For 
+  backwards compatibility, a dispatch function can be provided as an 
+  argument (see comment in SimpleXMLRPCRequestHandler.do_POST) but 
+  overriding the existing method through subclassing is the prefered 
+  means of changing method dispatch behavior.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: 
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
===================================================================
--- 
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
  2006-05-12 03:47:00 UTC (rev 8673)
+++ 
trunk/apps/pyFreenet/html/private/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
  2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SimpleXMLRPCServer.SimpleXMLRPCServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SimpleXMLRPCServer ::
+        Class&nbsp;SimpleXMLRPCServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class SimpleXMLRPCServer</h2>
+
+<pre class="base-tree">
+<a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCDispatcher</code></a>
 --+
+                         |
+        <a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a>
 --+   |
+                     |   |
+             <a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a> --+
+                         |
+                        <b>SimpleXMLRPCServer</b>
+</pre><br />
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+<p>Simple XML-RPC server.</p>
+Simple XML-RPC server that allows functions and a single instance to 
+be installed to handle requests. The default implementation attempts to 
+dispatch XML-RPC calls to the functions or instance installed in the 
+server. Override the _dispatch method inhereted from 
+SimpleXMLRPCDispatcher to change this behavior.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>addr</span>,
+          <span class=summary-sig-arg>requestHandler</span>,
+          <span class=summary-sig-arg>logRequests</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#fileno" 
class="summary-sig-name"><code>fileno</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Return socket file number.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#get_request" 
class="summary-sig-name"><code>get_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Get the request and client address from the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_bind" 
class="summary-sig-name"><code>server_bind</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to bind the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#finish_request" 
class="summary-sig-name"><code>finish_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Finish one request by instantiating RequestHandlerClass.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_error" 
class="summary-sig-name"><code>handle_error</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Handle an error gracefully.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_request" 
class="summary-sig-name"><code>handle_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request, possibly blocking.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Call finish_request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#serve_forever" 
class="summary-sig-name"><code>serve_forever</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request at a time until doomsday.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#verify_request" 
class="summary-sig-name"><code>verify_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Verify the request.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function" 
class="summary-sig-name"><code>register_function</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>function</span>,
+          <span class=summary-sig-arg>name</span>)</span></code>
+<br />
+Registers a function to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance" 
class="summary-sig-name"><code>register_instance</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>instance</span>,
+          <span class=summary-sig-arg>allow_dotted_names</span>)</span></code>
+<br />
+Registers an instance to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"
 
class="summary-sig-name"><code>register_introspection_functions</code></a>(<span
 class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC introspection methods in the system 
+namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"
 class="summary-sig-name"><code>register_multicall_functions</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC multicall method in the system namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods" 
class="summary-sig-name"><code>system_listMethods</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+system.listMethods() =&gt; ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp" 
class="summary-sig-name"><code>system_methodHelp</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodHelp('add') =&gt; &quot;Adds two integers 
+together&quot;</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"
 class="summary-sig-name"><code>system_methodSignature</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodSignature('add') =&gt; [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall" 
class="summary-sig-name"><code>system_multicall</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>call_list</span>)</span></code>
+<br />
+system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) =&gt; 
+[[4], ...]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_dispatch"
 class="summary-sig-name"><code>_dispatch</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method</span>,
+          <span class=summary-sig-arg>params</span>)</span></code>
+<br />
+Dispatches the XML-RPC method.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_marshaled_dispatch"
 class="summary-sig-name"><code>_marshaled_dispatch</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>data</span>,
+          <span class=summary-sig-arg>dispatch_method</span>)</span></code>
+<br />
+Dispatches an XML-RPC method from marshalled (XML) data.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b>
 = <span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b>
 = <span title="False"><code>False                              </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b>
 = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b>
 = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/SocketServer.BaseServer-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/SocketServer.BaseServer-class.html        
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/SocketServer.BaseServer-class.html        
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SocketServer.BaseServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SocketServer ::
+        Class&nbsp;BaseServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font 
size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="../private/SocketServer.BaseServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class BaseServer</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a></dd></dl>
+
+<hr/>
+
+<pre class="literalblock">
+Base class for server classes.
+
+Methods for the caller:
+
+- __init__(server_address, RequestHandlerClass)
+- serve_forever()
+- handle_request()  # if you do not use serve_forever()
+- fileno() -&gt; int   # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -&gt; request, client_address
+- verify_request(request, client_address)
+- server_close()
+- process_request(request, client_address)
+- close_request(request)
+- handle_error()
+
+Methods for derived classes:
+
+- finish_request(request, client_address)
+
+Class variables that may be overridden by derived classes or
+instances:
+
+- address_family
+- socket_type
+- allow_reuse_address
+
+Instance variables:
+
+- RequestHandlerClass
+- socket
+</pre>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>server_address</span>,
+          <span class=summary-sig-arg>RequestHandlerClass</span>)</span></code>
+<br />
+Constructor.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#finish_request" 
class="summary-sig-name"><code>finish_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Finish one request by instantiating RequestHandlerClass.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_error" 
class="summary-sig-name"><code>handle_error</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Handle an error gracefully.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_request" 
class="summary-sig-name"><code>handle_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request, possibly blocking.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Call finish_request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#serve_forever" 
class="summary-sig-name"><code>serve_forever</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request at a time until doomsday.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#verify_request" 
class="summary-sig-name"><code>verify_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Verify the request.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>server_address</span>,
+          <span class=sig-arg>RequestHandlerClass</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  Constructor. May be extended, do not override.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="close_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">close_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>)</span>
+  </h3>
+  Called to clean up an individual request.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="finish_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">finish_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  Finish one request by instantiating RequestHandlerClass.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="handle_error"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">handle_error</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  <p>Handle an error gracefully. May be overridden.</p>
+  The default is to print a traceback and continue.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="handle_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">handle_request</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Handle one request, possibly blocking.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="process_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">process_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  <p>Call finish_request.</p>
+  Overridden by ForkingMixIn and ThreadingMixIn.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="serve_forever"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">serve_forever</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Handle one request at a time until doomsday.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_activate"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_activate</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called by constructor to activate the server.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_close"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_close</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called to clean-up the server.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="verify_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">verify_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  <p>Verify the request. May be overridden.</p>
+  Return True if we should proceed with this request.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/SocketServer.TCPServer-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/SocketServer.TCPServer-class.html 
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/SocketServer.TCPServer-class.html 
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SocketServer.TCPServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SocketServer ::
+        Class&nbsp;TCPServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/SocketServer.TCPServer-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SocketServer.TCPServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class TCPServer</h2>
+
+<pre class="base-tree">
+<a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a>
 --+
+             |
+            <b>TCPServer</b>
+</pre><br />
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+<pre class="literalblock">
+Base class for various socket-based server classes.
+
+Defaults to synchronous IP stream (i.e., TCP).
+
+Methods for the caller:
+
+- __init__(server_address, RequestHandlerClass)
+- serve_forever()
+- handle_request()  # if you don't use serve_forever()
+- fileno() -&gt; int   # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -&gt; request, client_address
+- verify_request(request, client_address)
+- process_request(request, client_address)
+- close_request(request)
+- handle_error()
+
+Methods for derived classes:
+
+- finish_request(request, client_address)
+
+Class variables that may be overridden by derived classes or
+instances:
+
+- address_family
+- socket_type
+- request_queue_size (only for stream sockets)
+- allow_reuse_address
+
+Instance variables:
+
+- server_address
+- RequestHandlerClass
+- socket
+</pre>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>server_address</span>,
+          <span class=summary-sig-arg>RequestHandlerClass</span>)</span></code>
+<br />
+Constructor.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#fileno" 
class="summary-sig-name"><code>fileno</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Return socket file number.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#get_request" 
class="summary-sig-name"><code>get_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Get the request and client address from the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_bind" 
class="summary-sig-name"><code>server_bind</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to bind the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#finish_request" 
class="summary-sig-name"><code>finish_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Finish one request by instantiating RequestHandlerClass.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_error" 
class="summary-sig-name"><code>handle_error</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Handle an error gracefully.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_request" 
class="summary-sig-name"><code>handle_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request, possibly blocking.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Call finish_request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#serve_forever" 
class="summary-sig-name"><code>serve_forever</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request at a time until doomsday.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#verify_request" 
class="summary-sig-name"><code>verify_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Verify the request.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b>
 = <span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b>
 = <span title="False"><code>False                              </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b>
 = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b>
 = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>server_address</span>,
+          <span class=sig-arg>RequestHandlerClass</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  Constructor. May be extended, do not override.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#__init__"><code>SocketServer.BaseServer.__init__</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="close_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">close_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>)</span>
+  </h3>
+  Called to clean up an individual request.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#close_request"><code>SocketServer.BaseServer.close_request</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="fileno"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">fileno</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Return socket file number.</p>
+  Interface required by select().
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="get_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">get_request</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Get the request and client address from the socket.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_activate"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_activate</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called by constructor to activate the server.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#server_activate"><code>SocketServer.BaseServer.server_activate</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_bind"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_bind</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called by constructor to bind the socket.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_close"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_close</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called to clean-up the server.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#server_close"><code>SocketServer.BaseServer.server_close</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Class Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="address_family"></a>
+<h3>address_family</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="2">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="allow_reuse_address"></a>
+<h3>allow_reuse_address</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>bool</code>
+
+      </dd>
+<span title="False">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+False                                                                  </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="request_queue_size"></a>
+<h3>request_queue_size</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="5">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="socket_type"></a>
+<h3>socket_type</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="1">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/SocketServer.ThreadingMixIn-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/SocketServer.ThreadingMixIn-class.html    
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/SocketServer.ThreadingMixIn-class.html    
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SocketServer.ThreadingMixIn</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SocketServer ::
+        Class&nbsp;ThreadingMixIn
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/SocketServer.ThreadingMixIn-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SocketServer.ThreadingMixIn-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class ThreadingMixIn</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+Mix-in class to handle each request in a new thread.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Start a new thread to process the request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request_thread" 
class="summary-sig-name"><code>process_request_thread</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Same as in BaseServer but as a thread.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></b>
 = <span title="False"><code>False                                   </code>
+</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="process_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">process_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  Start a new thread to process the request.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="process_request_thread"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">process_request_thread</span>(<span class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  <p>Same as in BaseServer but as a thread.</p>
+  In addition, exception handling is done here.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Class Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="daemon_threads"></a>
+<h3>daemon_threads</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>bool</code>
+
+      </dd>
+<span title="False">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+False                                                                  </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/epydoc.css
===================================================================
--- trunk/apps/pyFreenet/html/private/epydoc.css        2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/private/epydoc.css        2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,100 @@
+
+/* Body color */ 
+body               { background: #ffffff; color: #000000; } 
+ 
+/* Tables */ 
+table.summary, table.details, table.index
+                   { background: #e8f0f8; color: #000000; } 
+tr.summary, tr.details, tr.index
+                   { background: #70b0f0; color: #000000;  
+                     text-align: left; font-size: 120%; } 
+tr.group           { background: #c0e0f8; color: #000000;
+                     text-align: left; font-size: 120%;
+                     font-style: italic; } 
+
+/* Documentation page titles */
+h2.module          { margin-top: 0.2em; }
+h2.class           { margin-top: 0.2em; }
+ 
+/* Headings */
+h1.heading         { font-size: +140%; font-style: italic;
+                     font-weight: bold; }
+h2.heading         { font-size: +125%; font-style: italic;
+                     font-weight: bold; }
+h3.heading         { font-size: +110%; font-style: italic;
+                     font-weight: normal; }
+                    
+/* Base tree */
+pre.base-tree      { font-size: 80%; margin: 0; }
+
+/* Details Sections */
+table.func-details { background: #e8f0f8; color: #000000;
+                     border: 2px groove #c0d0d0;
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.func-detail     { background: transparent; color: #000000;
+                     margin: 0 0 1em 0; }
+
+table.var-details  { background: #e8f0f8; color: #000000;
+                     border: 2px groove #c0d0d0;
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.var-details     { background: transparent; color: #000000;
+                     margin: 0 0 1em 0; }
+
+/* Function signatures */
+.sig               { background: transparent; color: #000000;
+                     font-weight: bold; }  
+.sig-name          { background: transparent; color: #006080; }  
+.sig-arg, .sig-kwarg, .sig-vararg
+                   { background: transparent; color: #008060; }  
+.sig-default       { background: transparent; color: #602000; }  
+.summary-sig       { background: transparent; color: #000000; }  
+.summary-sig-name  { background: transparent; color: #204080; }
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
+                   { background: transparent; color: #008060; }  
+
+/* Doctest blocks */
+.py-src            { background: transparent; color: #000000; }
+.py-prompt         { background: transparent; color: #005050;
+                     font-weight: bold;}
+.py-string         { background: transparent; color: #006030; }
+.py-comment        { background: transparent; color: #003060; }
+.py-keyword        { background: transparent; color: #600000; }
+.py-output         { background: transparent; color: #404040; }
+pre.doctestblock   { background: #f4faff; color: #000000; 
+                     padding: .5em; margin: 1em;
+                     border: 1px solid #708890; }
+table pre.doctestblock
+                   { background: #dce4ec; color: #000000; 
+                     padding: .5em; margin: 1em;
+                     border: 1px solid #708890; }
+
+/* Variable values */
+pre.variable       { background: #dce4ec; color: #000000;
+                     padding: .5em; margin: 0;
+                     border: 1px solid #708890; }
+.variable-linewrap { background: transparent; color: #604000; }
+.variable-ellipsis { background: transparent; color: #604000; }
+.variable-quote    { background: transparent; color: #604000; }
+.re                { background: transparent; color: #000000; }
+.re-char           { background: transparent; color: #006030; }
+.re-op             { background: transparent; color: #600000; }
+.re-group          { background: transparent; color: #003060; }
+.re-ref            { background: transparent; color: #404040; }
+
+/* Navigation bar */ 
+table.navbar       { background: #a0c0ff; color: #0000ff;
+                     border: 2px groove #c0d0d0; }
+th.navbar          { background: #a0c0ff; color: #0000ff; } 
+th.navselect       { background: #70b0ff; color: #000000; } 
+.nomargin          { margin: 0; }
+
+/* Links */ 
+a:link             { background: transparent; color: #0000ff; }  
+a:visited          { background: transparent; color: #204080; }  
+a.navbar:link      { background: transparent; color: #0000ff; 
+                     text-decoration: none; }  
+a.navbar:visited   { background: transparent; color: #204080; 
+                     text-decoration: none; }  
+
+/* Lists */
+ul { margin-top: 0; }

Added: trunk/apps/pyFreenet/html/private/exceptions.Exception-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/exceptions.Exception-class.html   
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/exceptions.Exception-class.html   
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>exceptions.Exception</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;exceptions ::
+        Class&nbsp;Exception
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/exceptions.Exception-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="exceptions.Exception-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class Exception</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="fcp.ConnectionRefused-class.html"><code>ConnectionRefused</code></a>,
+    <a 
href="fcp.FCPException-class.html"><code>FCPException</code></a></dd></dl>
+
+<hr/>
+
+Common base class for all exceptions.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span 
class="summary-sig-name">__getitem__</span>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__str__"></a><span class="summary-sig"><span 
class="summary-sig-name">__str__</span>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp-module.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp-module.html   2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp-module.html   2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;fcp
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp-module.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE DESCRIPTION =========== -->
+<h2 class="module">Module fcp</h2>
+
+<p>An implementation of a freenet client library for FCP v2, offering 
+considerable flexibility.</p>
+<p>Clients should instantiate FCPNodeConnection, then execute its methods 
+to perform tasks with FCP.</p>
+<p>This module was written by aum, May 2006, released under the GNU 
+Lesser General Public License.</p>
+No warranty, yada yada
+<hr/>
+
+<!-- =========== START OF CLASSES =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Classes</th></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPNodeConnection-class.html"><code>FCPNodeConnection</code></a></b></td>
+  <td>Represents an interface to a freenet node via its FCP port,
+and exposes primitives for the basic genkey, get, put and putdir
+operations.</td></tr>
+<tr><td width="15%">
+  <b><a href="fcp.JobTicket-class.html"><code>JobTicket</code></a></b></td>
+  <td>A JobTicket is an object returned to clients making asynchronous 
+requests.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF EXCEPTIONS =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Exceptions</th></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.ConnectionRefused-class.html"><code>ConnectionRefused</code></a></b></td>
+  <td>cannot connect to given host/port</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPException-class.html"><code>FCPException</code></a></b></td>
+  <td>&nbsp;</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a></b></td>
+  <td>&nbsp;</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a></b></td>
+  <td>&nbsp;</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></b></td>
+  <td>&nbsp;</td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Function Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcp-module.html#guessMimetype" 
class="summary-sig-name"><code>guessMimetype</code></a>(<span 
class=summary-sig-arg>filename</span>)</span></code>
+<br />
+Returns a guess of a mimetype based on a filename's extension</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcp-module.html#readdir" 
class="summary-sig-name"><code>readdir</code></a>(<span 
class=summary-sig-arg>dirpath</span>,
+          <span class=summary-sig-arg>prefix</span>,
+          <span class=summary-sig-arg>gethashes</span>)</span></code>
+<br />
+Reads a directory, returning a sequence of file dicts.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="toBool"></a><span class="summary-sig"><span 
class="summary-sig-name">toBool</span>(<span 
class=summary-sig-arg>arg</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#CRITICAL"><code>CRITICAL</code></a></b> = 
<span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#DEBUG"><code>DEBUG</code></a></b> = <span 
title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a 
href="fcp-module.html#defaultFCPHost"><code>defaultFCPHost</code></a></b> = 
<span title="'127.0.0.1'"><code><span 
class="variable-quote">'</span>127.0.0.1<span class="variable-quote">'</span>   
                          </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="fcp-module.html#defaultFCPPort"><code>defaultFCPPort</code></a></b> = 
<span 
title="9481">9481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#DETAIL"><code>DETAIL</code></a></b> = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#ERROR"><code>ERROR</code></a></b> = <span 
title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a 
href="fcp-module.html#expectedVersion"><code>expectedVersion</code></a></b> = 
<span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span 
class="variable-quote">'</span>                                  </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#FATAL"><code>FATAL</code></a></b> = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#INFO"><code>INFO</code></a></b> = <span 
title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>list</code></font></td>
+<td><b><a href="fcp-module.html#intKeys"><code>intKeys</code></a></b> = <span 
title="['DataLength', 'Code']"><code>['DataLength',&nbsp;'Code']                
         </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>float</code></font></td>
+<td><b><a href="fcp-module.html#pollTimeout"><code>pollTimeout</code></a></b> 
= <span 
title="0.10000000000000001">0.10000000000000001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#SILENT"><code>SILENT</code></a></b> = <span 
title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Function Details</th></tr>
+</table>
+
+<a name="guessMimetype"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">guessMimetype</span>(<span 
class=sig-arg>filename</span>)</span>
+  </h3>
+  Returns a guess of a mimetype based on a filename's extension
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="readdir"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">readdir</span>(<span 
class=sig-arg>dirpath</span>,
+          <span class=sig-arg>prefix</span>=<span class=sig-default>''</span>,
+          <span class=sig-arg>gethashes</span>=<span 
class=sig-default>False</span>)</span>
+  </h3>
+  <p>Reads a directory, returning a sequence of file dicts.</p>
+  Arguments:
+  <ul>
+    <li>
+      dirpath - relative or absolute pathname of directory to scan
+    </li>
+    <li>
+      gethashes - also include a 'hash' key in each file dict, being 
+      the SHA1 hash of the file's name and contents
+    </li>
+  </ul>
+  Each returned dict in the sequence has the keys:
+  <ul>
+    <li>
+      fullpath - usable for opening/reading file
+    </li>
+    <li>
+      relpath - relative path of file (the part after 'dirpath'), for 
+      the 'SSK&#64;blahblah//relpath' URI
+    </li>
+    <li>
+      mimetype - guestimated mimetype for file
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="CRITICAL"></a>
+<h3>CRITICAL</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="2">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="DEBUG"></a>
+<h3>DEBUG</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="6">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="defaultFCPHost"></a>
+<h3>defaultFCPHost</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'127.0.0.1'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>127.0.0.1<span 
class="variable-quote">'</span>                                                 
           </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="defaultFCPPort"></a>
+<h3>defaultFCPPort</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="9481">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+9481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="DETAIL"></a>
+<h3>DETAIL</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="5">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="ERROR"></a>
+<h3>ERROR</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="3">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="expectedVersion"></a>
+<h3>expectedVersion</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'2.0'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>  
                                                                </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="FATAL"></a>
+<h3>FATAL</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="1">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="INFO"></a>
+<h3>INFO</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="4">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="intKeys"></a>
+<h3>intKeys</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>list</code>
+
+      </dd>
+<span title="['DataLength', 'Code']">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+['DataLength', 'Code']                                                 </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="pollTimeout"></a>
+<h3>pollTimeout</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>float</code>
+
+      </dd>
+<span title="0.10000000000000001">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+0.10000000000000001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="SILENT"></a>
+<h3>SILENT</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="0">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.ConnectionRefused-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.ConnectionRefused-class.html  
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.ConnectionRefused-class.html  
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.ConnectionRefused</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;ConnectionRefused
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.ConnectionRefused-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.ConnectionRefused-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class ConnectionRefused</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
+            |
+           <b>ConnectionRefused</b>
+</pre><br />
+
+<hr/>
+
+cannot connect to given host/port
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.FCPException-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.FCPException-class.html       
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.FCPException-class.html       
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPException</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPException
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.FCPException-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPException-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPException</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
+            |
+           <b>FCPException</b>
+</pre><br />
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a>,
+    <a 
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a>,
+    <a 
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></dd></dl>
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__str__"></a><span class="summary-sig"><span 
class="summary-sig-name">__str__</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.FCPGetFailed-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.FCPGetFailed-class.html       
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.FCPGetFailed-class.html       
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPGetFailed</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPGetFailed
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.FCPGetFailed-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPGetFailed-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPGetFailed</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    
+            |    
+ <a href="fcp.FCPException-class.html"><code>FCPException</code></a> --+
+                |
+               <b>FCPGetFailed</b>
+</pre><br />
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.FCPNodeConnection-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.FCPNodeConnection-class.html  
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.FCPNodeConnection-class.html  
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,655 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPNodeConnection</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPNodeConnection
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.FCPNodeConnection-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPNodeConnection-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPNodeConnection</h2>
+
+<hr/>
+
+<pre class="literalblock">
+Represents an interface to a freenet node via its FCP port,
+and exposes primitives for the basic genkey, get, put and putdir
+operations.
+
+Only one instance of FCPNodeConnection is needed across an entire
+running client application, because its methods are quite thread-safe.
+Creating 2 or more instances is a waste of resources.
+
+Clients, when invoking methods, have several options regarding flow
+control and event notification:
+
+    - synchronous call (the default). Here, no pending status messages
+      will ever be seen, and the call will only control when it has
+      completed (successfully, or otherwise)
+    
+    - asynchronous call - this is invoked by passing the keyword argument
+      'async=True' to any of the main primitives. When a primitive is invoked
+      asynchronously, it will return a 'job ticket object' immediately. This
+      job ticket has methods for polling for job completion, or blocking
+      awaiting completion
+    
+    - setting a callback. You can pass to any of the primitives a
+      'callback=somefunc' keyword arg, where 'somefunc' is a callable object
+       conforming to::
+           
+           def somefunc(status, value):
+               ...
+      
+      The callback function will be invoked when a primitive succeeds or fails,
+      as well as when a pending message is received from the node.
+      
+      The 'status' argument passed will be one of:
+          - 'successful' - the primitive succeeded, and 'value' will contain
+            the result of the primitive
+          - 'pending' - the primitive is still executing, and 'value' will
+            contain the raw pending message sent back from the node, as a
+            dict
+          - 'failed' - the primitive failed, and as with 'pending', the
+            argument 'value' contains a dict containing the message fields
+            sent back from the node
+
+      Note that callbacks can be set in both synchronous and asynchronous
+      calling modes.
+</pre>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Create a connection object</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#__del__" 
class="summary-sig-name"><code>__del__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+object is getting cleaned up, so disconnect</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#genkey" 
class="summary-sig-name"><code>genkey</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Generates and returns an SSK keypair</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#get" 
class="summary-sig-name"><code>get</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Does a direct get of a key</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#put" 
class="summary-sig-name"><code>put</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Inserts a key</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#putdir" 
class="summary-sig-name"><code>putdir</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Inserts a freesite</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#shutdown" 
class="summary-sig-name"><code>shutdown</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Terminates the manager thread</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_getUniqueId" 
class="summary-sig-name"><code>_getUniqueId</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Allocate a unique ID for a request</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_hello" 
class="summary-sig-name"><code>_hello</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+perform the initial FCP protocol handshake</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_log" 
class="summary-sig-name"><code>_log</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>level</span>,
+          <span class=summary-sig-arg>msg</span>)</span></code>
+<br />
+Logs a message.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_mgrThread" 
class="summary-sig-name"><code>_mgrThread</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+This thread is the nucleus of pyfcp, and coordinates incoming client 
+commands and incoming node responses</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_msgIncoming" 
class="summary-sig-name"><code>_msgIncoming</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Returns True if a message is coming in from the node</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_on_clientReq" 
class="summary-sig-name"><code>_on_clientReq</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>req</span>)</span></code>
+<br />
+takes an incoming requests from client and transmits it to the fcp 
+port, and also registers it so the manager thread can action responses 
+from the fcp port.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_on_rxMsg" 
class="summary-sig-name"><code>_on_rxMsg</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>msg</span>)</span></code>
+<br />
+Handles incoming messages from node</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_rxMsg" 
class="summary-sig-name"><code>_rxMsg</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Receives and returns a message as a dict</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_submitCmd" 
class="summary-sig-name"><code>_submitCmd</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>id</span>,
+          <span class=summary-sig-arg>cmd</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Submits a command for execution</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.FCPNodeConnection-class.html#_txMsg" 
class="summary-sig-name"><code>_txMsg</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>msgType</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+low level message send</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  <p>Create a connection object</p>
+  Arguments:
+  <ul>
+    <li>
+      clientName - name of client to use with reqs, defaults to 
+      random
+    </li>
+    <li>
+      host - hostname, defaults to defaultFCPHost
+    </li>
+    <li>
+      port - port number, defaults to defaultFCPPort
+    </li>
+    <li>
+      logfile - a pathname or writable file object, to which log 
+      messages should be written, defaults to stdout
+    </li>
+    <li>
+      verbosity - how detailed the log messages should be, defaults to 
+      0 (silence)
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="__del__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__del__</span>(<span 
class=sig-arg>self</span>)</span>
+    <br /><i>(Destructor)</i>
+  </h3>
+  object is getting cleaned up, so disconnect
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="genkey"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">genkey</span>(<span 
class=sig-arg>self</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Generates and returns an SSK keypair</p>
+  Keywords:
+  <ul>
+    <li>
+      async - whether to do this call asynchronously, and return a 
+      JobTicket object
+    </li>
+    <li>
+      callback - if given, this should be a callable which accepts 2 
+      arguments:
+      <ul>
+        <li>
+          status - will be one of 'successful', 'failed' or 
+          'pending'
+        </li>
+        <li>
+          value - depends on status:
+          <ul>
+            <li>
+              if status is 'successful', this will contain the value 
+              returned from the command
+            </li>
+            <li>
+              if status is 'failed' or 'pending', this will contain a 
+              dict containing the response from node
+            </li>
+          </ul>
+        </li>
+      </ul>
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="get"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">get</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Does a direct get of a key</p>
+  Keywords:
+  <ul>
+    <li>
+      async - whether to return immediately with a job ticket object, 
+      default False (wait for completion)
+    </li>
+    <li>
+      dsnly - whether to only check local datastore
+    </li>
+    <li>
+      ignoreds - don't check local datastore
+    </li>
+    <li>
+      file - if given, this is a pathname to which to store the 
+      retrieved key
+    </li>
+    <li>
+      nodata - if true, no data will be returned. This can be a useful 
+      test of whether a key is retrievable, without having to consume 
+      resources by retrieving it
+    </li>
+  </ul>
+  Returns a 2-tuple, depending on keyword args:
+  <ul>
+    <li>
+      if 'file' is given, returns (mimetype, pathname) if key is 
+      returned
+    </li>
+    <li>
+      if 'file' is not given, returns (mimetype, data) if key is 
+      returned
+    </li>
+    <li>
+      if 'dontReturnData' is true, returns (mimetype, 1) if key is 
+      returned
+    </li>
+  </ul>
+  If key is not found, raises an exception
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="put"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">put</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>=<span 
class=sig-default>'CHK&#64;'</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Inserts a key</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - uri under which to insert the key
+    </li>
+  </ul>
+  Keywords - you must specify one of the following to choose an insert 
+  mode:
+  <ul>
+    <li>
+      file - path of file from which to read the key data
+    </li>
+    <li>
+      data - the raw data of the key as string
+    </li>
+    <li>
+      dir - the directory to insert, for freesite insertion
+    </li>
+    <li>
+      redirect - the target URI to redirect to
+    </li>
+  </ul>
+  Keywords for 'dir' mode:
+  <ul>
+    <li>
+      name - name of the freesite, the 'sitename' in 
+      SSK&#64;privkey/sitename'
+    </li>
+    <li>
+      usk - whether to insert as a USK 
+      (USK&#64;privkey/sitename/version/), default False
+    </li>
+    <li>
+      version - valid if usk is true, default 0
+    </li>
+  </ul>
+  Keywords for 'file' and 'data' modes:
+  <ul>
+    <li>
+      chkonly - only generate CHK, don't insert - default false
+    </li>
+    <li>
+      dontcompress - do not compress on insert - default false
+    </li>
+  </ul>
+  Keywords for 'file', 'data' and 'redirect' modes:
+  <ul>
+    <li>
+      mimetype - the mime type, default text/plain
+    </li>
+  </ul>
+  Keywords valid for all modes:
+  <ul>
+    <li>
+      maxretries - maximum number of retries, default 3
+    </li>
+    <li>
+      priority - default 1
+    </li>
+    <li>
+      async - whether to do the job asynchronously, returning a job 
+      ticket object (default False)
+    </li>
+  </ul>
+  Notes:
+  <ul>
+    <li>
+      exactly one of 'file', 'data' or 'dir' keyword arguments must be 
+      present
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="putdir"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">putdir</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Inserts a freesite</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - uri under which to insert the key
+    </li>
+  </ul>
+  Keywords:
+  <ul>
+    <li>
+      dir - the directory to insert - mandatory, no default. This 
+      directory must contain a toplevel index.html file
+    </li>
+    <li>
+      name - the name of the freesite, defaults to 'freesite'
+    </li>
+    <li>
+      usk - set to True to insert as USK (Default false)
+    </li>
+    <li>
+      version - the USK version number, default 0
+    </li>
+    <li>
+      maxretries - maximum number of retries, default 3
+    </li>
+    <li>
+      priority - default 1
+    </li>
+    <li>
+      async - default False - if True, return a job ticket
+    </li>
+  </ul>
+  Returns:
+  <ul>
+    <li>
+      the URI under which the freesite can be retrieved
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="shutdown"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">shutdown</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Terminates the manager thread</p>
+  You should explicitly shutdown any existing nodes before exiting 
+  your client application
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_getUniqueId"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_getUniqueId</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Allocate a unique ID for a request
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_hello"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_hello</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  perform the initial FCP protocol handshake
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_log"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_log</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>level</span>,
+          <span class=sig-arg>msg</span>)</span>
+  </h3>
+  Logs a message. If level &gt; verbosity, don't output it
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_mgrThread"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_mgrThread</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  This thread is the nucleus of pyfcp, and coordinates incoming client 
+  commands and incoming node responses
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_msgIncoming"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_msgIncoming</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Returns True if a message is coming in from the node
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_on_clientReq"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_on_clientReq</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>req</span>)</span>
+  </h3>
+  takes an incoming requests from client and transmits it to the fcp 
+  port, and also registers it so the manager thread can action responses 
+  from the fcp port.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_on_rxMsg"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_on_rxMsg</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>msg</span>)</span>
+  </h3>
+  <p>Handles incoming messages from node</p>
+  If an incoming message represents the termination of a command, the 
+  job ticket object will be notified accordingly
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_rxMsg"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_rxMsg</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Receives and returns a message as a dict</p>
+  The header keyword is included as key 'header'
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_submitCmd"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_submitCmd</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>id</span>,
+          <span class=sig-arg>cmd</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Submits a command for execution</p>
+  Arguments:
+  <ul>
+    <li>
+      id - the command identifier
+    </li>
+    <li>
+      cmd - the command name, such as 'ClientPut'
+    </li>
+  </ul>
+  Keywords:
+  <ul>
+    <li>
+      async - whether to return a JobTicket object, rather than the 
+      command result
+    </li>
+    <li>
+      callback - a function taking 2 args 'status' and 'value'. Status 
+      is one of 'successful', 'pending' or 'failed'. value is the 
+      primitive return value if successful, or the raw node message if 
+      pending or failed
+    </li>
+    <li>
+      rawcmd - a raw command buffer to send directly
+    </li>
+    <li>
+      options specific to command such as 'URI'
+    </li>
+  </ul>
+  Returns:
+  <ul>
+    <li>
+      if command is sent in sync mode, returns the result
+    </li>
+    <li>
+      if command is sent in async mode, returns a JobTicket object 
+      which the client can poll or block on later
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_txMsg"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_txMsg</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>msgType</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>low level message send</p>
+  Arguments:
+  <ul>
+    <li>
+      msgType - one of the FCP message headers, such as 
+      'ClientHello'
+    </li>
+    <li>
+      args - zero or more (keyword, value) tuples
+    </li>
+  </ul>
+  Keywords:
+  <ul>
+    <li>
+      rawcmd - if given, this is the raw buffer to send
+    </li>
+    <li>
+      other keywords depend on the value of msgType
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.FCPProtocolError-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.FCPProtocolError-class.html   
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.FCPProtocolError-class.html   
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPProtocolError</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPProtocolError
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.FCPProtocolError-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPProtocolError-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPProtocolError</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    
+            |    
+ <a href="fcp.FCPException-class.html"><code>FCPException</code></a> --+
+                |
+               <b>FCPProtocolError</b>
+</pre><br />
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.FCPPutFailed-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.FCPPutFailed-class.html       
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.FCPPutFailed-class.html       
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPPutFailed</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPPutFailed
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.FCPPutFailed-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPPutFailed-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPPutFailed</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    
+            |    
+ <a href="fcp.FCPException-class.html"><code>FCPException</code></a> --+
+                |
+               <b>FCPPutFailed</b>
+</pre><br />
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcp.JobTicket-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcp.JobTicket-class.html  2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcp.JobTicket-class.html  2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.JobTicket</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;JobTicket
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcp.JobTicket-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.JobTicket-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class JobTicket</h2>
+
+<hr/>
+
+<p>A JobTicket is an object returned to clients making asynchronous 
+requests. It puts them in control of how they manage n concurrent 
+requests.</p>
+When you as a client receive a JobTicket, you can choose to:
+<ul>
+  <li>
+    block, awaiting completion of the job
+  </li>
+  <li>
+    poll the job for completion status
+  </li>
+  <li>
+    receive a callback upon completion
+  </li>
+</ul>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.JobTicket-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>id</span>,
+          <span class=summary-sig-arg>cmd</span>,
+          <span class=summary-sig-arg>kw</span>)</span></code>
+<br />
+You should never instantiate a JobTicket object yourself</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.JobTicket-class.html#callback" 
class="summary-sig-name"><code>callback</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>status</span>,
+          <span class=summary-sig-arg>value</span>)</span></code>
+<br />
+This will be replaced in job ticket instances wherever user provides 
+callback arguments</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.JobTicket-class.html#isComplete" 
class="summary-sig-name"><code>isComplete</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Returns True if the job has been completed</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcp.JobTicket-class.html#wait" 
class="summary-sig-name"><code>wait</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>timeout</span>)</span></code>
+<br />
+Waits forever (or for a given timeout) for a job to complete</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/fcp.JobTicket-class.html#_putResult" 
class="summary-sig-name"><code>_putResult</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>result</span>)</span></code>
+<br />
+Called by manager thread to indicate job is complete, and submit a 
+result to be picked up by client</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>id</span>,
+          <span class=sig-arg>cmd</span>,
+          <span class=sig-arg>kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  You should never instantiate a JobTicket object yourself
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="callback"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">callback</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>status</span>,
+          <span class=sig-arg>value</span>)</span>
+  </h3>
+  This will be replaced in job ticket instances wherever user provides 
+  callback arguments
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="isComplete"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">isComplete</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Returns True if the job has been completed
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="wait"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">wait</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>timeout</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  Waits forever (or for a given timeout) for a job to complete
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="_putResult"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">_putResult</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>result</span>)</span>
+  </h3>
+  Called by manager thread to indicate job is complete, and submit a 
+  result to be picked up by client
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcpxmlrpc-module.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcpxmlrpc-module.html     2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcpxmlrpc-module.html     2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;fcpxmlrpc
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcpxmlrpc-module.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcpxmlrpc-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE DESCRIPTION =========== -->
+<h2 class="module">Module fcpxmlrpc</h2>
+
+<p>fcpxmlrpc.py</p>
+Exposes some pyfcp primitives over an XML-RPC service
+<hr/>
+
+<!-- =========== START OF CLASSES =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Classes</th></tr>
+<tr><td width="15%">
+  <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></b></td>
+  <td>Multi-threaded XML-RPC server for freenet FCP access</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>FreenetXMLRPCRequestHandler</code></a></b></td>
+  <td>Simple class which exposes basic primitives for freenet xmlrpc 
+server</td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Function Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcpxmlrpc-module.html#main" 
class="summary-sig-name"><code>main</code></a>()</span></code>
+<br />
+When this script is executed, it runs the XML-RPC server</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc-module.html#runServer" 
class="summary-sig-name"><code>runServer</code></a>(<span 
class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Creates and runs a basic XML-RPC server for FCP access</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="testServer"></a><span class="summary-sig"><span 
class="summary-sig-name">testServer</span>()</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="usage"></a><span class="summary-sig"><span 
class="summary-sig-name">usage</span>(<span class=summary-sig-arg>msg</span>,
+          <span class=summary-sig-arg>ret</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a 
href="fcpxmlrpc-module.html#xmlrpcHost"><code>xmlrpcHost</code></a></b> = <span 
title="'127.0.0.1'"><code><span class="variable-quote">'</span>127.0.0.1<span 
class="variable-quote">'</span>                                 </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="fcpxmlrpc-module.html#xmlrpcPort"><code>xmlrpcPort</code></a></b> = <span 
title="19481">19481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Function Details</th></tr>
+</table>
+
+<a name="main"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">main</span>()</span>
+  </h3>
+  When this script is executed, it runs the XML-RPC server
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="runServer"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">runServer</span>(<span 
class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Creates and runs a basic XML-RPC server for FCP access</p>
+  For keyword parameters, refer FCPXMLRPCServer constructor
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="xmlrpcHost"></a>
+<h3>xmlrpcHost</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'127.0.0.1'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>127.0.0.1<span 
class="variable-quote">'</span>                                                 
           </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="xmlrpcPort"></a>
+<h3>xmlrpcPort</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="19481">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+19481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/fcpxmlrpc.FCPXMLRPCServer-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/fcpxmlrpc.FCPXMLRPCServer-class.html      
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/fcpxmlrpc.FCPXMLRPCServer-class.html      
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc.FCPXMLRPCServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcpxmlrpc-module.html">Module&nbsp;fcpxmlrpc</a> ::
+        Class&nbsp;FCPXMLRPCServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcpxmlrpc.FCPXMLRPCServer-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPXMLRPCServer</h2>
+
+<pre class="base-tree">
+<a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCDispatcher</code></a>
 --+    
+                         |    
+        <a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a>
 --+   |    
+                     |   |    
+             <a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a> --+    
+                         |    
+        <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a>
 --+
+                             |
+            <a 
href="SocketServer.ThreadingMixIn-class.html"><code>ThreadingMixIn</code></a> 
--+
+                             |
+                            <b>FCPXMLRPCServer</b>
+</pre><br />
+
+<hr/>
+
+Multi-threaded XML-RPC server for freenet FCP access
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Creates the xml-rpc server</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#run" 
class="summary-sig-name"><code>run</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Launch the server to run forever</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
ThreadingMixIn</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Start a new thread to process the request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request_thread" 
class="summary-sig-name"><code>process_request_thread</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Same as in BaseServer but as a thread.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#fileno" 
class="summary-sig-name"><code>fileno</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Return socket file number.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#get_request" 
class="summary-sig-name"><code>get_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Get the request and client address from the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_bind" 
class="summary-sig-name"><code>server_bind</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to bind the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#finish_request" 
class="summary-sig-name"><code>finish_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Finish one request by instantiating RequestHandlerClass.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_error" 
class="summary-sig-name"><code>handle_error</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Handle an error gracefully.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#handle_request" 
class="summary-sig-name"><code>handle_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request, possibly blocking.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#serve_forever" 
class="summary-sig-name"><code>serve_forever</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Handle one request at a time until doomsday.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SocketServer.BaseServer-class.html#verify_request" 
class="summary-sig-name"><code>verify_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Verify the request.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function" 
class="summary-sig-name"><code>register_function</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>function</span>,
+          <span class=summary-sig-arg>name</span>)</span></code>
+<br />
+Registers a function to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance" 
class="summary-sig-name"><code>register_instance</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>instance</span>,
+          <span class=summary-sig-arg>allow_dotted_names</span>)</span></code>
+<br />
+Registers an instance to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"
 
class="summary-sig-name"><code>register_introspection_functions</code></a>(<span
 class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC introspection methods in the system 
+namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"
 class="summary-sig-name"><code>register_multicall_functions</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC multicall method in the system namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods" 
class="summary-sig-name"><code>system_listMethods</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+system.listMethods() =&gt; ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp" 
class="summary-sig-name"><code>system_methodHelp</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodHelp('add') =&gt; &quot;Adds two integers 
+together&quot;</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"
 class="summary-sig-name"><code>system_methodSignature</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodSignature('add') =&gt; [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall" 
class="summary-sig-name"><code>system_multicall</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>call_list</span>)</span></code>
+<br />
+system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) =&gt; 
+[[4], ...]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_dispatch"
 class="summary-sig-name"><code>_dispatch</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method</span>,
+          <span class=summary-sig-arg>params</span>)</span></code>
+<br />
+Dispatches the XML-RPC method.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_marshaled_dispatch"
 class="summary-sig-name"><code>_marshaled_dispatch</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>data</span>,
+          <span class=summary-sig-arg>dispatch_method</span>)</span></code>
+<br />
+Dispatches an XML-RPC method from marshalled (XML) data.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
ThreadingMixIn</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></b>
 = <span title="False"><code>False                                   </code>
+</span></td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b>
 = <span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b>
 = <span title="False"><code>False                              </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b>
 = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b>
 = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  <p>Creates the xml-rpc server</p>
+  Keywords:
+  <ul>
+    <li>
+      host - hostname to listen on for xml-rpc requests, default 
+      127.0.0.1
+    </li>
+    <li>
+      port - port to listen on for xml-rpc requests, default 19481
+    </li>
+    <li>
+      fcpHost - hostname where FCP port is
+    </li>
+    <li>
+      fcpPort - port where FCP port is
+    </li>
+    <li>
+      verbosity - verbosity of output messages, 0 (silent) through 6 
+      (noisy), default 4. Refer verbosity constants in fcp module
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html#__init__"><code>SimpleXMLRPCServer.SimpleXMLRPCServer.__init__</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="run"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">run</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Launch the server to run forever
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: 
trunk/apps/pyFreenet/html/private/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
===================================================================
--- 
trunk/apps/pyFreenet/html/private/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
  2006-05-12 03:47:00 UTC (rev 8673)
+++ 
trunk/apps/pyFreenet/html/private/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
  2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc.FreenetXMLRPCRequestHandler</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcpxmlrpc-module.html">Module&nbsp;fcpxmlrpc</a> ::
+        Class&nbsp;FreenetXMLRPCRequestHandler
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FreenetXMLRPCRequestHandler</h2>
+
+<hr/>
+
+Simple class which exposes basic primitives for freenet xmlrpc 
+server
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>node</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="genkey"></a><span class="summary-sig"><span 
class="summary-sig-name">genkey</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#get" 
class="summary-sig-name"><code>get</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class=summary-sig-arg>options</span>)</span></code>
+<br />
+Performs a fetch of a key</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#put" 
class="summary-sig-name"><code>put</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class=summary-sig-arg>options</span>)</span></code>
+<br />
+Inserts data to node</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="get"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">get</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class=sig-arg>options</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Performs a fetch of a key</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - the URI to retrieve
+    </li>
+    <li>
+      options - a mapping (dict) object containing various options - 
+      refer to FCPNodeConnection.get documentation
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="put"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">put</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class=sig-arg>options</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Inserts data to node</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - the URI to insert under
+    </li>
+    <li>
+      options - a mapping (dict) object containing various options - 
+      refer to FCPNodeConnection.get documentation
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/frames.html
===================================================================
--- trunk/apps/pyFreenet/html/private/frames.html       2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/private/frames.html       2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+  <title> PyFCP - Python client interface to Freenet FCP </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame">
+    <frame src="toc-everything.html" name="moduleFrame">
+  </frameset>
+  <frame src="trees.html" name="mainFrame">
+</frameset>
+</html>

Added: trunk/apps/pyFreenet/html/private/help.html
===================================================================
--- trunk/apps/pyFreenet/html/private/help.html 2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/private/help.html 2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Help</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/help.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<center><h2> API Documentation </h2></center>
+
+<p> This document contains the API (Application Programming Interface)
+documentation for PyFCP - Python client interface to Freenet FCP.  
Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class.  The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.  </p>
+
+<h2> Object Documentation </h2>
+
+  <p>Each <b>Package Documentation</b> page contains: 
+  <ul>
+    <li> A description of the package. </li>
+    <li> A list of the modules and sub-packages contained by the
+    package.  </li>
+    <li> A summary of the classes defined by the package. </li>
+    <li> A summary of the functions defined by the package. </li>
+    <li> A summary of the variables defined by the package. </li>
+    <li> A detailed description of each function defined by the
+    package. </li>
+    <li> A detailed description of each variable defined by the
+    package. </li>
+  </ul></p>
+  
+  <p>Each <b>Module Documentation</b> page contains:
+  <ul>
+    <li> A description of the module. </li>
+    <li> A summary of the classes defined by the module. </li>
+    <li> A summary of the functions defined by the module. </li>
+    <li> A summary of the variables defined by the module. </li>
+    <li> A detailed description of each function defined by the
+    module. </li>
+    <li> A detailed description of each variable defined by the
+    module. </li>
+  </ul></p>
+  
+  <p>Each <b>Class Documentation</b> page contains:
+  <ul>
+    <li> A class inheritance diagram. </li>
+    <li> A list of known subclasses. </li>
+    <li> A description of the class. </li>
+    <li> A summary of the methods defined by the class. </li>
+    <li> A summary of the instance variables defined by the class. </li>
+    <li> A summary of the class (static) variables defined by the
+    class. </li> 
+    <li> A detailed description of each method defined by the
+    class. </li>
+    <li> A detailed description of each instance variable defined by the
+    class. </li> 
+    <li> A detailed description of each class (static) variable defined
+    by the class. </li> 
+  </ul></p>
+
+<h2> Project Documentation </h2>
+
+  <p> The <b>Trees</b> page contains the module and class hierarchies:
+  <ul>
+    <li> The <i>module hierarchy</i> lists every package and module, with
+    modules grouped into packages.  At the top level, and within each
+    package, modules and sub-packages are listed alphabetically. </li>
+    <li> The <i>class hierarchy</i> lists every class, grouped by base
+    class.  If a class has more than one base class, then it will be
+    listed under each base class.  At the top level, and under each base
+    class, classes are listed alphabetically. </li>
+  </ul></p>
+  
+  <p> The <b>Index</b> page contains indices of terms and
+  identifiers: 
+  <ul>
+    <li> The <i>term index</i> lists every term indexed by any object's
+    documentation.  For each term, the index provides links to each
+    place where the term is indexed. </li>
+    <li> The <i>identifier index</i> lists the (short) name of every package,
+    module, class, method, function, variable, and parameter.  For each
+    identifier, the index provides a short description, and a link to
+    its documentation. </li>
+  </ul></p>
+
+<h2> The Table of Contents </h2>
+
+<p> The table of contents occupies the two frames on the left side of
+the window.  The upper-left frame displays the <i>project
+contents</i>, and the lower-left frame displays the <i>module
+contents</i>: </p>
+
+<center>
+<table class="summary" border="1" cellspacing="0" cellpadding="3">
+  <tr heigh="30%">
+    <td align="center">
+       <font size="-1">Project<br>Contents<hr>...</font></td>
+    <td align="center" rowspan="2" width="70%">
+      API<br>Documentation<br>Frame<br><br><br>
+    </td>
+  </tr>
+  <tr>
+    <td align="center">
+      <font size="-1">Module<br>Contents<hr>&nbsp;<br>...<br>&nbsp;</font>
+    </td>
+  </tr>
+</table><br>
+</center>
+
+<p> The <b>project contents frame</b> contains a list of all packages
+and modules that are defined by the project.  Clicking on an entry
+will display its contents in the module contents frame.  Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project. </p>
+
+<p> The <b>module contents frame</b> contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package.  Clicking on an entry will display its
+documentation in the API documentation frame.  Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself. </p>
+
+<p> The "<b>frames</b>" and "<b>no frames</b>" buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not. </p>
+
+<h2> The Navigation Bar </h2>
+
+<p> A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages.  The following table describes the labels
+on the navigation bar.  Note that not some labels (such as
+[Parent]) are not displayed on all pages. </p>
+
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
+<tr class="summary">
+  <th>Label</th>
+  <th>Highlighted when...</th>
+  <th>Links to...</th>
+</tr>
+  <tr><td valign="top"><b>[Parent]</b></td>
+      <td valign="top"><i>(never highlighted)</i></td>
+      <td valign="top"> the parent of the current package </td></tr>
+  <tr><td valign="top"><b>[Package]</b></td>
+      <td valign="top">viewing a package</td>
+      <td valign="top">the package containing the current object
+      </td></tr>
+  <tr><td valign="top"><b>[Module]</b></td>
+      <td valign="top">viewing a module</td>
+      <td valign="top">the module containing the current object
+      </td></tr> 
+  <tr><td valign="top"><b>[Class]</b></td>
+      <td valign="top">viewing a class </td>
+      <td valign="top">the class containing the current object</td></tr>
+  <tr><td valign="top"><b>[Trees]</b></td>
+      <td valign="top">viewing the trees page</td>
+      <td valign="top"> the trees page </td></tr>
+  <tr><td valign="top"><b>[Index]</b></td>
+      <td valign="top">viewing the index page</td>
+      <td valign="top"> the index page </td></tr>
+  <tr><td valign="top"><b>[Help]</b></td>
+      <td valign="top">viewing the help page</td>
+      <td valign="top"> the help page </td></tr>
+</table>
+
+<p> The "<b>show private</b>" and "<b>hide private</b>" buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed.  Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore.  For example, "<code>_x</code>",
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
+are private objects; but "<code>re.sub</code>",
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,
+if a module defines the "<code>__all__</code>" variable, then its
+contents are used to decide which objects are private. </p>
+
+<p> A timestamp below the bottom navigation bar indicates when each
+page was last updated. </p>
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/index.html
===================================================================
--- trunk/apps/pyFreenet/html/private/index.html        2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/private/index.html        2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+  <title> PyFCP - Python client interface to Freenet FCP </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame">
+    <frame src="toc-everything.html" name="moduleFrame">
+  </frameset>
+  <frame src="trees.html" name="mainFrame">
+</frameset>
+</html>

Added: trunk/apps/pyFreenet/html/private/indices.html
===================================================================
--- trunk/apps/pyFreenet/html/private/indices.html      2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/private/indices.html      2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Index</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/indices.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+<br />
+
+<!-- =========== START OF IDENTIFIER INDEX =========== -->
+<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="index">
+  <th colspan="2">Identifier Index</th></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#__del__"><code>__del__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#__del__"><code>__del__</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>
+    <td>Method in class <a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPException-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPException-class.html"><code>fcp.FCPException</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>
+    <td>Method in class <a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPException-class.html#__str__"><code>__str__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPException-class.html"><code>fcp.FCPException</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_dispatch"><code>_dispatch</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_getUniqueId"><code>_getUniqueId</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_hello"><code>_hello</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_log"><code>_log</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#_marshaled_dispatch"><code>_marshaled_dispatch</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_mgrThread"><code>_mgrThread</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_msgIncoming"><code>_msgIncoming</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_on_clientReq"><code>_on_clientReq</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_on_rxMsg"><code>_on_rxMsg</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.JobTicket-class.html#_putResult"><code>_putResult</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_rxMsg"><code>_rxMsg</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_submitCmd"><code>_submitCmd</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/fcp.FCPNodeConnection-class.html#_txMsg"><code>_txMsg</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a></td>
+    <td>Class in module <code>SocketServer</code></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#callback"><code>callback</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#close_request"><code>close_request</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#close_request"><code>close_request</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.ConnectionRefused-class.html"><code>ConnectionRefused</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#createConfig"><code>createConfig</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#createNode"><code>createNode</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#CRITICAL"><code>CRITICAL</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#DEBUG"><code>DEBUG</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#defaultFCPHost"><code>defaultFCPHost</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#defaultFCPPort"><code>defaultFCPPort</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#DETAIL"><code>DETAIL</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#ERROR"><code>ERROR</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html"><code>Exception</code></a></td>
+    <td>Class in module <code>exceptions</code></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#expectedVersion"><code>expectedVersion</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#FATAL"><code>FATAL</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a href="fcp-module.html"><code>fcp</code></a></td>
+    <td>Module</td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPException-class.html"><code>FCPException</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#fcpHost"><code>fcpHost</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html"><code>FCPNodeConnection</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#fcpPort"><code>fcpPort</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td>
+    <td>Module</td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></td>
+    <td>Class in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#fileno"><code>fileno</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#finish_request"><code>finish_request</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>FreenetXMLRPCRequestHandler</code></a></td>
+    <td>Class in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#genkey"><code>genkey</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#genkey"><code>genkey</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#get"><code>get</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#get"><code>get</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#get_request"><code>get_request</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#guessMimetype"><code>guessMimetype</code></a></td>
+    <td>Function in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#handle_error"><code>handle_error</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#handle_request"><code>handle_request</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#help"><code>help</code></a></td>
+    <td>Function in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a href="fcp-module.html#INFO"><code>INFO</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#intKeys"><code>intKeys</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#isComplete"><code>isComplete</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html"><code>JobTicket</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#loadConfig"><code>loadConfig</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#logfile"><code>logfile</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#main"><code>main</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#pollTimeout"><code>pollTimeout</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#process_request"><code>process_request</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request"><code>process_request</code></a></td>
+    <td>Method in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request_thread"><code>process_request_thread</code></a></td>
+    <td>Method in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#put"><code>put</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#put"><code>put</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#putdir"><code>putdir</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#readdir"><code>readdir</code></a></td>
+    <td>Function in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function"><code>register_function</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance"><code>register_instance</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"><code>register_introspection_functions</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"><code>register_multicall_functions</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#run"><code>run</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#runServer"><code>runServer</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#saveConfig"><code>saveConfig</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#serve_forever"><code>serve_forever</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#server_activate"><code>server_activate</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#server_activate"><code>server_activate</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#server_bind"><code>server_bind</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#server_close"><code>server_close</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#server_close"><code>server_close</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#shutdown"><code>shutdown</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#SILENT"><code>SILENT</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCDispatcher</code></a></td>
+    <td>Class in module <code>SimpleXMLRPCServer</code></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a></td>
+    <td>Class in module <code>SimpleXMLRPCServer</code></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html"><code>sitemgr</code></a></td>
+    <td>Module</td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html"><code>SiteMgr</code></a></td>
+    <td>Class in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods"><code>system_listMethods</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp"><code>system_methodHelp</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"><code>system_methodSignature</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall"><code>system_multicall</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a></td>
+    <td>Class in module <code>SocketServer</code></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#testServer"><code>testServer</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html"><code>ThreadingMixIn</code></a></td>
+    <td>Class in module <code>SocketServer</code></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#toBool"><code>toBool</code></a></td>
+    <td>Function in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#update"><code>update</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#usage"><code>usage</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#verbosity"><code>verbosity</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="../private/SocketServer.BaseServer-class.html#verify_request"><code>verify_request</code></a></td>
+    <td>Method in class <a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#wait"><code>wait</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#xmlrpcHost"><code>xmlrpcHost</code></a></td>
+    <td>Variable in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#xmlrpcPort"><code>xmlrpcPort</code></a></td>
+    <td>Variable in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+</table>
+<br />
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/sitemgr-module.html
===================================================================
--- trunk/apps/pyFreenet/html/private/sitemgr-module.html       2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/sitemgr-module.html       2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>sitemgr</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;sitemgr
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/sitemgr-module.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="sitemgr-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE DESCRIPTION =========== -->
+<h2 class="module">Module sitemgr</h2>
+
+A small freesite insertion/management utility
+<hr/>
+
+<!-- =========== START OF CLASSES =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Classes</th></tr>
+<tr><td width="15%">
+  <b><a href="sitemgr.SiteMgr-class.html"><code>SiteMgr</code></a></b></td>
+  <td>Manages insertion and updating of freesites</td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Function Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="help"></a><span class="summary-sig"><span 
class="summary-sig-name">help</span>()</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a href="sitemgr-module.html#fcpHost"><code>fcpHost</code></a></b> = 
<span title="'thoth'"><code><span class="variable-quote">'</span>thoth<span 
class="variable-quote">'</span>                                        </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>NoneType</code></font></td>
+<td><b><a href="sitemgr-module.html#fcpPort"><code>fcpPort</code></a></b> = 
<span 
title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>NoneType</code></font></td>
+<td><b><a href="sitemgr-module.html#logfile"><code>logfile</code></a></b> = 
<span 
title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>NoneType</code></font></td>
+<td><b><a href="sitemgr-module.html#verbosity"><code>verbosity</code></a></b> 
= <span 
title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="fcpHost"></a>
+<h3>fcpHost</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'thoth'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>thoth<span 
class="variable-quote">'</span>                                                 
               </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="fcpPort"></a>
+<h3>fcpPort</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>NoneType</code>
+
+      </dd>
+<span title="None">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="logfile"></a>
+<h3>logfile</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>NoneType</code>
+
+      </dd>
+<span title="None">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="verbosity"></a>
+<h3>verbosity</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>NoneType</code>
+
+      </dd>
+<span title="None">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/sitemgr.SiteMgr-class.html
===================================================================
--- trunk/apps/pyFreenet/html/private/sitemgr.SiteMgr-class.html        
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/sitemgr.SiteMgr-class.html        
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>sitemgr.SiteMgr</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="sitemgr-module.html">Module&nbsp;sitemgr</a> ::
+        Class&nbsp;SiteMgr
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/sitemgr.SiteMgr-class.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="sitemgr.SiteMgr-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class SiteMgr</h2>
+
+<hr/>
+
+Manages insertion and updating of freesites
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>configFile</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Creates a site manager object.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__del__"></a><span class="summary-sig"><span 
class="summary-sig-name">__del__</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#createConfig" 
class="summary-sig-name"><code>createConfig</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Creates a whole new config</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="createNode"></a><span class="summary-sig"><span 
class="summary-sig-name">createNode</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#loadConfig" 
class="summary-sig-name"><code>loadConfig</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Loads the sites config file into self.config as a SafeConfigParser 
+object</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#saveConfig" 
class="summary-sig-name"><code>saveConfig</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Saves the amended config file to disk</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#update" 
class="summary-sig-name"><code>update</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Insert/update all registered freesites</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>configFile</span>=<span 
class=sig-default>None</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  <p>Creates a site manager object.</p>
+  Arguments:
+  <ul>
+    <li>
+      configFile - ini-format file containing site specifications, 
+      defaults to ~/.freesitesrc on *nix or ~/freesites.ini
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="createConfig"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">createConfig</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Creates a whole new config
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="loadConfig"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">loadConfig</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Loads the sites config file into self.config as a SafeConfigParser 
+  object
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="saveConfig"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">saveConfig</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Saves the amended config file to disk
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="update"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">update</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Insert/update all registered freesites
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/toc-everything.html
===================================================================
--- trunk/apps/pyFreenet/html/private/toc-everything.html       2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/toc-everything.html       2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Everything</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b>Everything</b></font></center>
+<hr>
+
+<!-- =========== START OF ALL CLASSES =========== -->
+<font size="+1"><b>All&nbsp;Classes</b></font><br />
+<a target="mainFrame" 
href="fcp.FCPNodeConnection-class.html">fcp.FCPNodeConnection</a><br />
+<a target="mainFrame" href="fcp.JobTicket-class.html">fcp.JobTicket</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FCPXMLRPCServer-class.html">fcpxmlrpc.FCPXMLRPCServer</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">fcpxmlrpc.FreenetXMLRPCRequestHandler</a><br
 />
+<a target="mainFrame" href="sitemgr.SiteMgr-class.html">sitemgr.SiteMgr</a><br 
/>
+<br />
+
+<!-- =========== START OF ALL EXCEPTIONS =========== -->
+<font size="+1"><b>All&nbsp;Exceptions</b></font><br />
+<a target="mainFrame" 
href="fcp.ConnectionRefused-class.html">fcp.ConnectionRefused</a><br />
+<a target="mainFrame" 
href="fcp.FCPException-class.html">fcp.FCPException</a><br />
+<a target="mainFrame" 
href="fcp.FCPGetFailed-class.html">fcp.FCPGetFailed</a><br />
+<a target="mainFrame" 
href="fcp.FCPProtocolError-class.html">fcp.FCPProtocolError</a><br />
+<a target="mainFrame" 
href="fcp.FCPPutFailed-class.html">fcp.FCPPutFailed</a><br />
+<br />
+
+<!-- =========== START OF ALL FUNCTIONS =========== -->
+<font size="+1"><b>All&nbsp;Functions</b></font><br />
+<a target="mainFrame" 
href="fcp-module.html#guessMimetype">guessMimetype</a><br />
+<a target="mainFrame" href="sitemgr-module.html#help">help</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#main">main</a><br />
+<a target="mainFrame" href="fcp-module.html#readdir">readdir</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#runServer">runServer</a><br 
/>
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#testServer">testServer</a><br />
+<a target="mainFrame" href="fcp-module.html#toBool">toBool</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#usage">usage</a><br />
+<br />
+
+<!-- =========== START OF ALL VARIABLES =========== -->
+<font size="+1"><b>All&nbsp;Variables</b></font><br />
+<a target="mainFrame" href="fcp-module.html#CRITICAL">CRITICAL</a><br />
+<a target="mainFrame" href="fcp-module.html#DEBUG">DEBUG</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPHost">defaultFCPHost</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPPort">defaultFCPPort</a><br />
+<a target="mainFrame" href="fcp-module.html#DETAIL">DETAIL</a><br />
+<a target="mainFrame" href="fcp-module.html#ERROR">ERROR</a><br />
+<a target="mainFrame" 
href="fcp-module.html#expectedVersion">expectedVersion</a><br />
+<a target="mainFrame" href="fcp-module.html#FATAL">FATAL</a><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpHost">fcpHost</a><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpPort">fcpPort</a><br />
+<a target="mainFrame" href="fcp-module.html#INFO">INFO</a><br />
+<a target="mainFrame" href="fcp-module.html#intKeys">intKeys</a><br />
+<a target="mainFrame" href="sitemgr-module.html#logfile">logfile</a><br />
+<a target="mainFrame" href="fcp-module.html#pollTimeout">pollTimeout</a><br />
+<a target="mainFrame" href="fcp-module.html#SILENT">SILENT</a><br />
+<a target="mainFrame" href="sitemgr-module.html#verbosity">verbosity</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcHost">xmlrpcHost</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcPort">xmlrpcPort</a><br />
+<br />
+
+<hr>
+<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/toc-everything.html">hide&nbsp;private</a>]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/toc-fcp-module.html
===================================================================
--- trunk/apps/pyFreenet/html/private/toc-fcp-module.html       2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/toc-fcp-module.html       2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b><a target="mainFrame" 
href="fcp-module.html">fcp</a></b></font></center>
+<hr>
+
+<!-- =========== START OF CLASSES =========== -->
+<font size="+1"><b>Classes</b></font><br />
+<a target="mainFrame" 
href="fcp.FCPNodeConnection-class.html">FCPNodeConnection</a><br />
+<a target="mainFrame" href="fcp.JobTicket-class.html">JobTicket</a><br />
+<br />
+
+<!-- =========== START OF EXCEPTIONS =========== -->
+<font size="+1"><b>Exceptions</b></font><br />
+<a target="mainFrame" 
href="fcp.ConnectionRefused-class.html">ConnectionRefused</a><br />
+<a target="mainFrame" href="fcp.FCPException-class.html">FCPException</a><br />
+<a target="mainFrame" href="fcp.FCPGetFailed-class.html">FCPGetFailed</a><br />
+<a target="mainFrame" 
href="fcp.FCPProtocolError-class.html">FCPProtocolError</a><br />
+<a target="mainFrame" href="fcp.FCPPutFailed-class.html">FCPPutFailed</a><br />
+<br />
+
+<!-- =========== START OF FUNCTIONS =========== -->
+<font size="+1"><b>Functions</b></font><br />
+<a target="mainFrame" 
href="fcp-module.html#guessMimetype">guessMimetype</a><br />
+<a target="mainFrame" href="fcp-module.html#readdir">readdir</a><br />
+<a target="mainFrame" href="fcp-module.html#toBool">toBool</a><br />
+<br />
+
+<!-- =========== START OF VARIABLES =========== -->
+<font size="+1"><b>Variables</b></font><br />
+<a target="mainFrame" href="fcp-module.html#CRITICAL">CRITICAL</a><br />
+<a target="mainFrame" href="fcp-module.html#DEBUG">DEBUG</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPHost">defaultFCPHost</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPPort">defaultFCPPort</a><br />
+<a target="mainFrame" href="fcp-module.html#DETAIL">DETAIL</a><br />
+<a target="mainFrame" href="fcp-module.html#ERROR">ERROR</a><br />
+<a target="mainFrame" 
href="fcp-module.html#expectedVersion">expectedVersion</a><br />
+<a target="mainFrame" href="fcp-module.html#FATAL">FATAL</a><br />
+<a target="mainFrame" href="fcp-module.html#INFO">INFO</a><br />
+<a target="mainFrame" href="fcp-module.html#intKeys">intKeys</a><br />
+<a target="mainFrame" href="fcp-module.html#pollTimeout">pollTimeout</a><br />
+<a target="mainFrame" href="fcp-module.html#SILENT">SILENT</a><br />
+<br />
+
+<hr>
+<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/toc-fcp-module.html">hide&nbsp;private</a>]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/toc-fcpxmlrpc-module.html
===================================================================
--- trunk/apps/pyFreenet/html/private/toc-fcpxmlrpc-module.html 2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/toc-fcpxmlrpc-module.html 2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b><a target="mainFrame" 
href="fcpxmlrpc-module.html">fcpxmlrpc</a></b></font></center>
+<hr>
+
+<!-- =========== START OF CLASSES =========== -->
+<font size="+1"><b>Classes</b></font><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FCPXMLRPCServer-class.html">FCPXMLRPCServer</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">FreenetXMLRPCRequestHandler</a><br
 />
+<br />
+
+<!-- =========== START OF FUNCTIONS =========== -->
+<font size="+1"><b>Functions</b></font><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#main">main</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#runServer">runServer</a><br 
/>
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#testServer">testServer</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#usage">usage</a><br />
+<br />
+
+<!-- =========== START OF VARIABLES =========== -->
+<font size="+1"><b>Variables</b></font><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcHost">xmlrpcHost</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcPort">xmlrpcPort</a><br />
+<br />
+
+<hr>
+<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/toc-fcpxmlrpc-module.html">hide&nbsp;private</a>]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/toc-sitemgr-module.html
===================================================================
--- trunk/apps/pyFreenet/html/private/toc-sitemgr-module.html   2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/private/toc-sitemgr-module.html   2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>sitemgr</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b><a target="mainFrame" 
href="sitemgr-module.html">sitemgr</a></b></font></center>
+<hr>
+
+<!-- =========== START OF CLASSES =========== -->
+<font size="+1"><b>Classes</b></font><br />
+<a target="mainFrame" href="sitemgr.SiteMgr-class.html">SiteMgr</a><br />
+<br />
+
+<!-- =========== START OF FUNCTIONS =========== -->
+<font size="+1"><b>Functions</b></font><br />
+<a target="mainFrame" href="sitemgr-module.html#help">help</a><br />
+<br />
+
+<!-- =========== START OF VARIABLES =========== -->
+<font size="+1"><b>Variables</b></font><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpHost">fcpHost</a><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpPort">fcpPort</a><br />
+<a target="mainFrame" href="sitemgr-module.html#logfile">logfile</a><br />
+<a target="mainFrame" href="sitemgr-module.html#verbosity">verbosity</a><br />
+<br />
+
+<hr>
+<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/toc-sitemgr-module.html">hide&nbsp;private</a>]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/toc.html
===================================================================
--- trunk/apps/pyFreenet/html/private/toc.html  2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/private/toc.html  2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Table of Contents</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b>Table&nbsp;of&nbsp;Contents</b></font></center>
+<hr>
+<a target="moduleFrame" href="toc-everything.html">Everything</a><br />
+
+<!-- =========== START OF PACKAGES =========== -->
+<br /><font size="+1"><b>Packages</b></font><br />
+
+<!-- =========== START OF MODULES =========== -->
+<br /><font size="+1"><b>Modules</b></font><br />
+<a target="moduleFrame" href="toc-fcp-module.html">fcp</a><br />
+<a target="moduleFrame" href="toc-fcpxmlrpc-module.html">fcpxmlrpc</a><br />
+<a target="moduleFrame" href="toc-sitemgr-module.html">sitemgr</a><br />
+
+<br /><hr>
+<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/toc.html">hide&nbsp;private</a>]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/private/trees.html
===================================================================
--- trunk/apps/pyFreenet/html/private/trees.html        2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/private/trees.html        2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Module and Class Hierarchies</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a 
href="../public/trees.html">hide&nbsp;private</a>]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE HIERARCHY =========== -->
+<h2>Module Hierarchy</h2>
+<ul>
+<li> <b><a href="fcp-module.html"><code>fcp</code></a></b>: <i>An 
implementation of a freenet client library for FCP v2, offering 
+considerable flexibility.</i>
+<li> <b><a href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></b>: 
<i>fcpxmlrpc.py</i>
+<li> <b><a href="sitemgr-module.html"><code>sitemgr</code></a></b>: <i>A small 
freesite insertion/management utility</i>
+</ul>
+
+<!-- =========== START OF CLASS HIERARCHY =========== -->
+<h2>Class Hierarchy</h2>
+<ul>
+  <li> <b><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></b>:
 <i>
+Mix-in class that dispatches XML-RPC requests.</i>
+    <ul>
+  <li> <b><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCServer</code></a></b>:
 <i>
+Simple XML-RPC server.</i>
+    <ul>
+  <li> <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></b>:
 <i>
+Multi-threaded XML-RPC server for freenet FCP access</i>
+    </ul>
+    </ul>
+  <li> <b><a 
href="../private/SocketServer.BaseServer-class.html"><code>SocketServer.BaseServer</code></a></b>:
 <i>
+Base class for server classes.</i>
+    <ul>
+  <li> <b><a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></b>:
 <i>
+Base class for various socket-based server classes.</i>
+    <ul>
+  <li> <b><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCServer</code></a></b>:
 <i>
+Simple XML-RPC server.</i>
+    <ul>
+  <li> <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></b>:
 <i>
+Multi-threaded XML-RPC server for freenet FCP access</i>
+    </ul>
+    </ul>
+    </ul>
+  <li> <b><a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></b>:
 <i>
+Mix-in class to handle each request in a new thread.</i>
+    <ul>
+  <li> <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></b>:
 <i>
+Multi-threaded XML-RPC server for freenet FCP access</i>
+    </ul>
+  <li> <b><a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></b>:
 <i>
+Common base class for all exceptions.</i>
+    <ul>
+  <li> <b><a 
href="fcp.ConnectionRefused-class.html"><code>fcp.ConnectionRefused</code></a></b>:
 <i>
+cannot connect to given host/port</i>
+  <li> <b><a 
href="fcp.FCPException-class.html"><code>fcp.FCPException</code></a></b>
+    <ul>
+  <li> <b><a 
href="fcp.FCPGetFailed-class.html"><code>fcp.FCPGetFailed</code></a></b>
+  <li> <b><a 
href="fcp.FCPProtocolError-class.html"><code>fcp.FCPProtocolError</code></a></b>
+  <li> <b><a 
href="fcp.FCPPutFailed-class.html"><code>fcp.FCPPutFailed</code></a></b>
+    </ul>
+    </ul>
+  <li> <b><a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></b>:
 <i>
+Represents an interface to a freenet node via its FCP port,
+and exposes primitives for the basic genkey, get, put and putdir
+operations.</i>
+  <li> <b><a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></b>: <i>
+A JobTicket is an object returned to clients making asynchronous 
+requests.</i>
+  <li> <b><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></b>:
 <i>
+Simple class which exposes basic primitives for freenet xmlrpc 
+server</i>
+  <li> <b><a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></b>: <i>
+Manages insertion and updating of freesites</i>
+</ul>
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: 
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
===================================================================
--- 
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
       2006-05-12 03:47:00 UTC (rev 8673)
+++ 
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html
       2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SimpleXMLRPCServer ::
+        Class&nbsp;SimpleXMLRPCDispatcher
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class SimpleXMLRPCDispatcher</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+<p>Mix-in class that dispatches XML-RPC requests.</p>
+This class is used to register XML-RPC method handlers and then to 
+dispatch them. There should never be any reason to instantiate this class 
+directly.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function" 
class="summary-sig-name"><code>register_function</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>function</span>,
+          <span class=summary-sig-arg>name</span>)</span></code>
+<br />
+Registers a function to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance" 
class="summary-sig-name"><code>register_instance</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>instance</span>,
+          <span class=summary-sig-arg>allow_dotted_names</span>)</span></code>
+<br />
+Registers an instance to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"
 
class="summary-sig-name"><code>register_introspection_functions</code></a>(<span
 class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC introspection methods in the system 
+namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"
 class="summary-sig-name"><code>register_multicall_functions</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC multicall method in the system namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods" 
class="summary-sig-name"><code>system_listMethods</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+system.listMethods() =&gt; ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp" 
class="summary-sig-name"><code>system_methodHelp</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodHelp('add') =&gt; &quot;Adds two integers 
+together&quot;</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"
 class="summary-sig-name"><code>system_methodSignature</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodSignature('add') =&gt; [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall" 
class="summary-sig-name"><code>system_multicall</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>call_list</span>)</span></code>
+<br />
+system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) =&gt; 
+[[4], ...]</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="register_function"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">register_function</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>function</span>,
+          <span class=sig-arg>name</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Registers a function to respond to XML-RPC requests.</p>
+  The optional name argument can be used to set a Unicode name for the 
+  function.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="register_instance"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">register_instance</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>instance</span>,
+          <span class=sig-arg>allow_dotted_names</span>=<span 
class=sig-default>False</span>)</span>
+  </h3>
+<pre class="literalblock">
+Registers an instance to respond to XML-RPC requests.
+
+Only one instance can be installed at a time.
+
+If the registered instance has a _dispatch method then that
+method will be called with the name of the XML-RPC method and
+it's parameters as a tuple
+e.g. instance._dispatch('add',(2,3))
+
+If the registered instance does not have a _dispatch method
+then the instance will be searched to find a matching method
+and, if found, will be called. Methods beginning with an '_'
+are considered private and will not be called by
+SimpleXMLRPCServer.
+
+If a registered function matches a XML-RPC request, then it
+will be called instead of the registered instance.
+
+If the optional allow_dotted_names argument is true and the
+instance does not have a _dispatch method, method names
+containing dots are supported and resolved, as long as none of
+the name segments start with an '_'.
+
+    *** SECURITY WARNING: ***
+
+    Enabling the allow_dotted_names options allows intruders
+    to access your module's global variables and may allow
+    intruders to execute arbitrary code on your machine.  Only
+    use this option on a secure, closed network.
+</pre>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="register_introspection_functions"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">register_introspection_functions</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Registers the XML-RPC introspection methods in the system 
+  namespace.</p>
+  see http://xmlrpc.usefulinc.com/doc/reserved.html
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="register_multicall_functions"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">register_multicall_functions</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Registers the XML-RPC multicall method in the system namespace.</p>
+  see http://www.xmlrpc.com/discuss/msgReader$1208
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_listMethods"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">system_listMethods</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>system.listMethods() =&gt; ['add', 'subtract', 'multiple']</p>
+  Returns a list of the methods supported by the server.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_methodHelp"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">system_methodHelp</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>method_name</span>)</span>
+  </h3>
+  <p>system.methodHelp('add') =&gt; &quot;Adds two integers 
+  together&quot;</p>
+  Returns a string containing documentation for the specified 
+  method.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_methodSignature"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">system_methodSignature</span>(<span class=sig-arg>self</span>,
+          <span class=sig-arg>method_name</span>)</span>
+  </h3>
+  <p>system.methodSignature('add') =&gt; [double, int, int]</p>
+  <p>Returns a list describing the signature of the method. In the above 
+  example, the add method takes two integers as arguments and returns a 
+  double result.</p>
+  This server does NOT support system.methodSignature.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="system_multicall"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">system_multicall</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>call_list</span>)</span>
+  </h3>
+  <p>system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) 
+  =&gt; [[4], ...]</p>
+  <p>Allows the caller to package multiple XML-RPC calls into a single 
+  request.</p>
+  See http://www.xmlrpc.com/discuss/msgReader$1208
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: 
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
===================================================================
--- 
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
   2006-05-12 03:47:00 UTC (rev 8673)
+++ 
trunk/apps/pyFreenet/html/public/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html
   2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SimpleXMLRPCServer.SimpleXMLRPCServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SimpleXMLRPCServer ::
+        Class&nbsp;SimpleXMLRPCServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class SimpleXMLRPCServer</h2>
+
+<pre class="base-tree">
+<a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCDispatcher</code></a>
 --+
+                         |
+        <a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a>
 --+   |
+                     |   |
+             <a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a> --+
+                         |
+                        <b>SimpleXMLRPCServer</b>
+</pre><br />
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+<p>Simple XML-RPC server.</p>
+Simple XML-RPC server that allows functions and a single instance to 
+be installed to handle requests. The default implementation attempts to 
+dispatch XML-RPC calls to the functions or instance installed in the 
+server. Override the _dispatch method inhereted from 
+SimpleXMLRPCDispatcher to change this behavior.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>addr</span>,
+          <span class=summary-sig-arg>requestHandler</span>,
+          <span class=summary-sig-arg>logRequests</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#fileno" 
class="summary-sig-name"><code>fileno</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Return socket file number.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#get_request" 
class="summary-sig-name"><code>get_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Get the request and client address from the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_bind" 
class="summary-sig-name"><code>server_bind</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to bind the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function" 
class="summary-sig-name"><code>register_function</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>function</span>,
+          <span class=summary-sig-arg>name</span>)</span></code>
+<br />
+Registers a function to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance" 
class="summary-sig-name"><code>register_instance</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>instance</span>,
+          <span class=summary-sig-arg>allow_dotted_names</span>)</span></code>
+<br />
+Registers an instance to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"
 
class="summary-sig-name"><code>register_introspection_functions</code></a>(<span
 class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC introspection methods in the system 
+namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"
 class="summary-sig-name"><code>register_multicall_functions</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC multicall method in the system namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods" 
class="summary-sig-name"><code>system_listMethods</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+system.listMethods() =&gt; ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp" 
class="summary-sig-name"><code>system_methodHelp</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodHelp('add') =&gt; &quot;Adds two integers 
+together&quot;</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"
 class="summary-sig-name"><code>system_methodSignature</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodSignature('add') =&gt; [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall" 
class="summary-sig-name"><code>system_multicall</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>call_list</span>)</span></code>
+<br />
+system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) =&gt; 
+[[4], ...]</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b>
 = <span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b>
 = <span title="False"><code>False                              </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b>
 = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b>
 = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/SocketServer.TCPServer-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/SocketServer.TCPServer-class.html  
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/SocketServer.TCPServer-class.html  
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SocketServer.TCPServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SocketServer ::
+        Class&nbsp;TCPServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/SocketServer.TCPServer-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SocketServer.TCPServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class TCPServer</h2>
+
+<pre class="base-tree">
+<a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a>
 --+
+             |
+            <b>TCPServer</b>
+</pre><br />
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+<pre class="literalblock">
+Base class for various socket-based server classes.
+
+Defaults to synchronous IP stream (i.e., TCP).
+
+Methods for the caller:
+
+- __init__(server_address, RequestHandlerClass)
+- serve_forever()
+- handle_request()  # if you don't use serve_forever()
+- fileno() -&gt; int   # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -&gt; request, client_address
+- verify_request(request, client_address)
+- process_request(request, client_address)
+- close_request(request)
+- handle_error()
+
+Methods for derived classes:
+
+- finish_request(request, client_address)
+
+Class variables that may be overridden by derived classes or
+instances:
+
+- address_family
+- socket_type
+- request_queue_size (only for stream sockets)
+- allow_reuse_address
+
+Instance variables:
+
+- server_address
+- RequestHandlerClass
+- socket
+</pre>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>server_address</span>,
+          <span class=summary-sig-arg>RequestHandlerClass</span>)</span></code>
+<br />
+Constructor.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#fileno" 
class="summary-sig-name"><code>fileno</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Return socket file number.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#get_request" 
class="summary-sig-name"><code>get_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Get the request and client address from the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_bind" 
class="summary-sig-name"><code>server_bind</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to bind the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b>
 = <span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b>
 = <span title="False"><code>False                              </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b>
 = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b>
 = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>server_address</span>,
+          <span class=sig-arg>RequestHandlerClass</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  Constructor. May be extended, do not override.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#__init__"><code>SocketServer.BaseServer.__init__</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="close_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">close_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>)</span>
+  </h3>
+  Called to clean up an individual request.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#close_request"><code>SocketServer.BaseServer.close_request</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="fileno"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">fileno</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Return socket file number.</p>
+  Interface required by select().
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="get_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">get_request</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Get the request and client address from the socket.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_activate"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_activate</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called by constructor to activate the server.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#server_activate"><code>SocketServer.BaseServer.server_activate</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_bind"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_bind</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called by constructor to bind the socket.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="server_close"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">server_close</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Called to clean-up the server.</p>
+  May be overridden.
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="../private/SocketServer.BaseServer-class.html#server_close"><code>SocketServer.BaseServer.server_close</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Class Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="address_family"></a>
+<h3>address_family</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="2">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="allow_reuse_address"></a>
+<h3>allow_reuse_address</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>bool</code>
+
+      </dd>
+<span title="False">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+False                                                                  </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="request_queue_size"></a>
+<h3>request_queue_size</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="5">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="socket_type"></a>
+<h3>socket_type</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="1">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/SocketServer.ThreadingMixIn-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/SocketServer.ThreadingMixIn-class.html     
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/SocketServer.ThreadingMixIn-class.html     
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>SocketServer.ThreadingMixIn</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;SocketServer ::
+        Class&nbsp;ThreadingMixIn
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/SocketServer.ThreadingMixIn-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="SocketServer.ThreadingMixIn-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class ThreadingMixIn</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></dd></dl>
+
+<hr/>
+
+Mix-in class to handle each request in a new thread.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Start a new thread to process the request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request_thread" 
class="summary-sig-name"><code>process_request_thread</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Same as in BaseServer but as a thread.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></b>
 = <span title="False"><code>False                                   </code>
+</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="process_request"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">process_request</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  Start a new thread to process the request.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="process_request_thread"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span 
class="sig-name">process_request_thread</span>(<span class=sig-arg>self</span>,
+          <span class=sig-arg>request</span>,
+          <span class=sig-arg>client_address</span>)</span>
+  </h3>
+  <p>Same as in BaseServer but as a thread.</p>
+  In addition, exception handling is done here.
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Class Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="daemon_threads"></a>
+<h3>daemon_threads</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>bool</code>
+
+      </dd>
+<span title="False">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+False                                                                  </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/epydoc.css
===================================================================
--- trunk/apps/pyFreenet/html/public/epydoc.css 2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/public/epydoc.css 2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,100 @@
+
+/* Body color */ 
+body               { background: #ffffff; color: #000000; } 
+ 
+/* Tables */ 
+table.summary, table.details, table.index
+                   { background: #e8f0f8; color: #000000; } 
+tr.summary, tr.details, tr.index
+                   { background: #70b0f0; color: #000000;  
+                     text-align: left; font-size: 120%; } 
+tr.group           { background: #c0e0f8; color: #000000;
+                     text-align: left; font-size: 120%;
+                     font-style: italic; } 
+
+/* Documentation page titles */
+h2.module          { margin-top: 0.2em; }
+h2.class           { margin-top: 0.2em; }
+ 
+/* Headings */
+h1.heading         { font-size: +140%; font-style: italic;
+                     font-weight: bold; }
+h2.heading         { font-size: +125%; font-style: italic;
+                     font-weight: bold; }
+h3.heading         { font-size: +110%; font-style: italic;
+                     font-weight: normal; }
+                    
+/* Base tree */
+pre.base-tree      { font-size: 80%; margin: 0; }
+
+/* Details Sections */
+table.func-details { background: #e8f0f8; color: #000000;
+                     border: 2px groove #c0d0d0;
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.func-detail     { background: transparent; color: #000000;
+                     margin: 0 0 1em 0; }
+
+table.var-details  { background: #e8f0f8; color: #000000;
+                     border: 2px groove #c0d0d0;
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
+h3.var-details     { background: transparent; color: #000000;
+                     margin: 0 0 1em 0; }
+
+/* Function signatures */
+.sig               { background: transparent; color: #000000;
+                     font-weight: bold; }  
+.sig-name          { background: transparent; color: #006080; }  
+.sig-arg, .sig-kwarg, .sig-vararg
+                   { background: transparent; color: #008060; }  
+.sig-default       { background: transparent; color: #602000; }  
+.summary-sig       { background: transparent; color: #000000; }  
+.summary-sig-name  { background: transparent; color: #204080; }
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
+                   { background: transparent; color: #008060; }  
+
+/* Doctest blocks */
+.py-src            { background: transparent; color: #000000; }
+.py-prompt         { background: transparent; color: #005050;
+                     font-weight: bold;}
+.py-string         { background: transparent; color: #006030; }
+.py-comment        { background: transparent; color: #003060; }
+.py-keyword        { background: transparent; color: #600000; }
+.py-output         { background: transparent; color: #404040; }
+pre.doctestblock   { background: #f4faff; color: #000000; 
+                     padding: .5em; margin: 1em;
+                     border: 1px solid #708890; }
+table pre.doctestblock
+                   { background: #dce4ec; color: #000000; 
+                     padding: .5em; margin: 1em;
+                     border: 1px solid #708890; }
+
+/* Variable values */
+pre.variable       { background: #dce4ec; color: #000000;
+                     padding: .5em; margin: 0;
+                     border: 1px solid #708890; }
+.variable-linewrap { background: transparent; color: #604000; }
+.variable-ellipsis { background: transparent; color: #604000; }
+.variable-quote    { background: transparent; color: #604000; }
+.re                { background: transparent; color: #000000; }
+.re-char           { background: transparent; color: #006030; }
+.re-op             { background: transparent; color: #600000; }
+.re-group          { background: transparent; color: #003060; }
+.re-ref            { background: transparent; color: #404040; }
+
+/* Navigation bar */ 
+table.navbar       { background: #a0c0ff; color: #0000ff;
+                     border: 2px groove #c0d0d0; }
+th.navbar          { background: #a0c0ff; color: #0000ff; } 
+th.navselect       { background: #70b0ff; color: #000000; } 
+.nomargin          { margin: 0; }
+
+/* Links */ 
+a:link             { background: transparent; color: #0000ff; }  
+a:visited          { background: transparent; color: #204080; }  
+a.navbar:link      { background: transparent; color: #0000ff; 
+                     text-decoration: none; }  
+a.navbar:visited   { background: transparent; color: #204080; 
+                     text-decoration: none; }  
+
+/* Lists */
+ul { margin-top: 0; }

Added: trunk/apps/pyFreenet/html/public/exceptions.Exception-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/exceptions.Exception-class.html    
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/exceptions.Exception-class.html    
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>exceptions.Exception</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;exceptions ::
+        Class&nbsp;Exception
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/exceptions.Exception-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="exceptions.Exception-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class Exception</h2>
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a 
href="fcp.ConnectionRefused-class.html"><code>ConnectionRefused</code></a>,
+    <a 
href="fcp.FCPException-class.html"><code>FCPException</code></a></dd></dl>
+
+<hr/>
+
+Common base class for all exceptions.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span 
class="summary-sig-name">__getitem__</span>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__str__"></a><span class="summary-sig"><span 
class="summary-sig-name">__str__</span>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp-module.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp-module.html    2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp-module.html    2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;fcp
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE DESCRIPTION =========== -->
+<h2 class="module">Module fcp</h2>
+
+<p>An implementation of a freenet client library for FCP v2, offering 
+considerable flexibility.</p>
+<p>Clients should instantiate FCPNodeConnection, then execute its methods 
+to perform tasks with FCP.</p>
+<p>This module was written by aum, May 2006, released under the GNU 
+Lesser General Public License.</p>
+No warranty, yada yada
+<hr/>
+
+<!-- =========== START OF CLASSES =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Classes</th></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPNodeConnection-class.html"><code>FCPNodeConnection</code></a></b></td>
+  <td>Represents an interface to a freenet node via its FCP port,
+and exposes primitives for the basic genkey, get, put and putdir
+operations.</td></tr>
+<tr><td width="15%">
+  <b><a href="fcp.JobTicket-class.html"><code>JobTicket</code></a></b></td>
+  <td>A JobTicket is an object returned to clients making asynchronous 
+requests.</td></tr>
+</table><br />
+
+
+<!-- =========== START OF EXCEPTIONS =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Exceptions</th></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.ConnectionRefused-class.html"><code>ConnectionRefused</code></a></b></td>
+  <td>cannot connect to given host/port</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPException-class.html"><code>FCPException</code></a></b></td>
+  <td>&nbsp;</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a></b></td>
+  <td>&nbsp;</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a></b></td>
+  <td>&nbsp;</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></b></td>
+  <td>&nbsp;</td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Function Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcp-module.html#guessMimetype" 
class="summary-sig-name"><code>guessMimetype</code></a>(<span 
class=summary-sig-arg>filename</span>)</span></code>
+<br />
+Returns a guess of a mimetype based on a filename's extension</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcp-module.html#readdir" 
class="summary-sig-name"><code>readdir</code></a>(<span 
class=summary-sig-arg>dirpath</span>,
+          <span class=summary-sig-arg>prefix</span>,
+          <span class=summary-sig-arg>gethashes</span>)</span></code>
+<br />
+Reads a directory, returning a sequence of file dicts.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="toBool"></a><span class="summary-sig"><span 
class="summary-sig-name">toBool</span>(<span 
class=summary-sig-arg>arg</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#CRITICAL"><code>CRITICAL</code></a></b> = 
<span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#DEBUG"><code>DEBUG</code></a></b> = <span 
title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a 
href="fcp-module.html#defaultFCPHost"><code>defaultFCPHost</code></a></b> = 
<span title="'127.0.0.1'"><code><span 
class="variable-quote">'</span>127.0.0.1<span class="variable-quote">'</span>   
                          </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="fcp-module.html#defaultFCPPort"><code>defaultFCPPort</code></a></b> = 
<span 
title="9481">9481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#DETAIL"><code>DETAIL</code></a></b> = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#ERROR"><code>ERROR</code></a></b> = <span 
title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a 
href="fcp-module.html#expectedVersion"><code>expectedVersion</code></a></b> = 
<span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span 
class="variable-quote">'</span>                                  </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#FATAL"><code>FATAL</code></a></b> = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#INFO"><code>INFO</code></a></b> = <span 
title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>list</code></font></td>
+<td><b><a href="fcp-module.html#intKeys"><code>intKeys</code></a></b> = <span 
title="['DataLength', 'Code']"><code>['DataLength',&nbsp;'Code']                
         </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>float</code></font></td>
+<td><b><a href="fcp-module.html#pollTimeout"><code>pollTimeout</code></a></b> 
= <span 
title="0.10000000000000001">0.10000000000000001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a href="fcp-module.html#SILENT"><code>SILENT</code></a></b> = <span 
title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Function Details</th></tr>
+</table>
+
+<a name="guessMimetype"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">guessMimetype</span>(<span 
class=sig-arg>filename</span>)</span>
+  </h3>
+  Returns a guess of a mimetype based on a filename's extension
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="readdir"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">readdir</span>(<span 
class=sig-arg>dirpath</span>,
+          <span class=sig-arg>prefix</span>=<span class=sig-default>''</span>,
+          <span class=sig-arg>gethashes</span>=<span 
class=sig-default>False</span>)</span>
+  </h3>
+  <p>Reads a directory, returning a sequence of file dicts.</p>
+  Arguments:
+  <ul>
+    <li>
+      dirpath - relative or absolute pathname of directory to scan
+    </li>
+    <li>
+      gethashes - also include a 'hash' key in each file dict, being 
+      the SHA1 hash of the file's name and contents
+    </li>
+  </ul>
+  Each returned dict in the sequence has the keys:
+  <ul>
+    <li>
+      fullpath - usable for opening/reading file
+    </li>
+    <li>
+      relpath - relative path of file (the part after 'dirpath'), for 
+      the 'SSK&#64;blahblah//relpath' URI
+    </li>
+    <li>
+      mimetype - guestimated mimetype for file
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="CRITICAL"></a>
+<h3>CRITICAL</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="2">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="DEBUG"></a>
+<h3>DEBUG</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="6">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="defaultFCPHost"></a>
+<h3>defaultFCPHost</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'127.0.0.1'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>127.0.0.1<span 
class="variable-quote">'</span>                                                 
           </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="defaultFCPPort"></a>
+<h3>defaultFCPPort</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="9481">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+9481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="DETAIL"></a>
+<h3>DETAIL</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="5">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="ERROR"></a>
+<h3>ERROR</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="3">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="expectedVersion"></a>
+<h3>expectedVersion</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'2.0'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>  
                                                                </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="FATAL"></a>
+<h3>FATAL</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="1">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="INFO"></a>
+<h3>INFO</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="4">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="intKeys"></a>
+<h3>intKeys</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>list</code>
+
+      </dd>
+<span title="['DataLength', 'Code']">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+['DataLength', 'Code']                                                 </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="pollTimeout"></a>
+<h3>pollTimeout</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>float</code>
+
+      </dd>
+<span title="0.10000000000000001">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+0.10000000000000001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="SILENT"></a>
+<h3>SILENT</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="0">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.ConnectionRefused-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.ConnectionRefused-class.html   
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.ConnectionRefused-class.html   
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.ConnectionRefused</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;ConnectionRefused
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.ConnectionRefused-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.ConnectionRefused-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class ConnectionRefused</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
+            |
+           <b>ConnectionRefused</b>
+</pre><br />
+
+<hr/>
+
+cannot connect to given host/port
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.FCPException-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.FCPException-class.html        
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.FCPException-class.html        
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPException</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPException
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.FCPException-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPException-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPException</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
+            |
+           <b>FCPException</b>
+</pre><br />
+
+<dl><dt><b>Known Subclasses:</b></dt>
+<dd>
+    <a href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a>,
+    <a 
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a>,
+    <a 
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></dd></dl>
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__str__"></a><span class="summary-sig"><span 
class="summary-sig-name">__str__</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.FCPGetFailed-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.FCPGetFailed-class.html        
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.FCPGetFailed-class.html        
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPGetFailed</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPGetFailed
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.FCPGetFailed-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPGetFailed-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPGetFailed</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    
+            |    
+ <a href="fcp.FCPException-class.html"><code>FCPException</code></a> --+
+                |
+               <b>FCPGetFailed</b>
+</pre><br />
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.FCPNodeConnection-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.FCPNodeConnection-class.html   
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.FCPNodeConnection-class.html   
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPNodeConnection</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPNodeConnection
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.FCPNodeConnection-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPNodeConnection-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPNodeConnection</h2>
+
+<hr/>
+
+<pre class="literalblock">
+Represents an interface to a freenet node via its FCP port,
+and exposes primitives for the basic genkey, get, put and putdir
+operations.
+
+Only one instance of FCPNodeConnection is needed across an entire
+running client application, because its methods are quite thread-safe.
+Creating 2 or more instances is a waste of resources.
+
+Clients, when invoking methods, have several options regarding flow
+control and event notification:
+
+    - synchronous call (the default). Here, no pending status messages
+      will ever be seen, and the call will only control when it has
+      completed (successfully, or otherwise)
+    
+    - asynchronous call - this is invoked by passing the keyword argument
+      'async=True' to any of the main primitives. When a primitive is invoked
+      asynchronously, it will return a 'job ticket object' immediately. This
+      job ticket has methods for polling for job completion, or blocking
+      awaiting completion
+    
+    - setting a callback. You can pass to any of the primitives a
+      'callback=somefunc' keyword arg, where 'somefunc' is a callable object
+       conforming to::
+           
+           def somefunc(status, value):
+               ...
+      
+      The callback function will be invoked when a primitive succeeds or fails,
+      as well as when a pending message is received from the node.
+      
+      The 'status' argument passed will be one of:
+          - 'successful' - the primitive succeeded, and 'value' will contain
+            the result of the primitive
+          - 'pending' - the primitive is still executing, and 'value' will
+            contain the raw pending message sent back from the node, as a
+            dict
+          - 'failed' - the primitive failed, and as with 'pending', the
+            argument 'value' contains a dict containing the message fields
+            sent back from the node
+
+      Note that callbacks can be set in both synchronous and asynchronous
+      calling modes.
+</pre>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Create a connection object</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#__del__" 
class="summary-sig-name"><code>__del__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+object is getting cleaned up, so disconnect</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#genkey" 
class="summary-sig-name"><code>genkey</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Generates and returns an SSK keypair</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#get" 
class="summary-sig-name"><code>get</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Does a direct get of a key</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#put" 
class="summary-sig-name"><code>put</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Inserts a key</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#putdir" 
class="summary-sig-name"><code>putdir</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Inserts a freesite</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPNodeConnection-class.html#shutdown" 
class="summary-sig-name"><code>shutdown</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Terminates the manager thread</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  <p>Create a connection object</p>
+  Arguments:
+  <ul>
+    <li>
+      clientName - name of client to use with reqs, defaults to 
+      random
+    </li>
+    <li>
+      host - hostname, defaults to defaultFCPHost
+    </li>
+    <li>
+      port - port number, defaults to defaultFCPPort
+    </li>
+    <li>
+      logfile - a pathname or writable file object, to which log 
+      messages should be written, defaults to stdout
+    </li>
+    <li>
+      verbosity - how detailed the log messages should be, defaults to 
+      0 (silence)
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="__del__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__del__</span>(<span 
class=sig-arg>self</span>)</span>
+    <br /><i>(Destructor)</i>
+  </h3>
+  object is getting cleaned up, so disconnect
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="genkey"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">genkey</span>(<span 
class=sig-arg>self</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Generates and returns an SSK keypair</p>
+  Keywords:
+  <ul>
+    <li>
+      async - whether to do this call asynchronously, and return a 
+      JobTicket object
+    </li>
+    <li>
+      callback - if given, this should be a callable which accepts 2 
+      arguments:
+      <ul>
+        <li>
+          status - will be one of 'successful', 'failed' or 
+          'pending'
+        </li>
+        <li>
+          value - depends on status:
+          <ul>
+            <li>
+              if status is 'successful', this will contain the value 
+              returned from the command
+            </li>
+            <li>
+              if status is 'failed' or 'pending', this will contain a 
+              dict containing the response from node
+            </li>
+          </ul>
+        </li>
+      </ul>
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="get"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">get</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Does a direct get of a key</p>
+  Keywords:
+  <ul>
+    <li>
+      async - whether to return immediately with a job ticket object, 
+      default False (wait for completion)
+    </li>
+    <li>
+      dsnly - whether to only check local datastore
+    </li>
+    <li>
+      ignoreds - don't check local datastore
+    </li>
+    <li>
+      file - if given, this is a pathname to which to store the 
+      retrieved key
+    </li>
+    <li>
+      nodata - if true, no data will be returned. This can be a useful 
+      test of whether a key is retrievable, without having to consume 
+      resources by retrieving it
+    </li>
+  </ul>
+  Returns a 2-tuple, depending on keyword args:
+  <ul>
+    <li>
+      if 'file' is given, returns (mimetype, pathname) if key is 
+      returned
+    </li>
+    <li>
+      if 'file' is not given, returns (mimetype, data) if key is 
+      returned
+    </li>
+    <li>
+      if 'dontReturnData' is true, returns (mimetype, 1) if key is 
+      returned
+    </li>
+  </ul>
+  If key is not found, raises an exception
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="put"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">put</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>=<span 
class=sig-default>'CHK&#64;'</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Inserts a key</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - uri under which to insert the key
+    </li>
+  </ul>
+  Keywords - you must specify one of the following to choose an insert 
+  mode:
+  <ul>
+    <li>
+      file - path of file from which to read the key data
+    </li>
+    <li>
+      data - the raw data of the key as string
+    </li>
+    <li>
+      dir - the directory to insert, for freesite insertion
+    </li>
+    <li>
+      redirect - the target URI to redirect to
+    </li>
+  </ul>
+  Keywords for 'dir' mode:
+  <ul>
+    <li>
+      name - name of the freesite, the 'sitename' in 
+      SSK&#64;privkey/sitename'
+    </li>
+    <li>
+      usk - whether to insert as a USK 
+      (USK&#64;privkey/sitename/version/), default False
+    </li>
+    <li>
+      version - valid if usk is true, default 0
+    </li>
+  </ul>
+  Keywords for 'file' and 'data' modes:
+  <ul>
+    <li>
+      chkonly - only generate CHK, don't insert - default false
+    </li>
+    <li>
+      dontcompress - do not compress on insert - default false
+    </li>
+  </ul>
+  Keywords for 'file', 'data' and 'redirect' modes:
+  <ul>
+    <li>
+      mimetype - the mime type, default text/plain
+    </li>
+  </ul>
+  Keywords valid for all modes:
+  <ul>
+    <li>
+      maxretries - maximum number of retries, default 3
+    </li>
+    <li>
+      priority - default 1
+    </li>
+    <li>
+      async - whether to do the job asynchronously, returning a job 
+      ticket object (default False)
+    </li>
+  </ul>
+  Notes:
+  <ul>
+    <li>
+      exactly one of 'file', 'data' or 'dir' keyword arguments must be 
+      present
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="putdir"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">putdir</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Inserts a freesite</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - uri under which to insert the key
+    </li>
+  </ul>
+  Keywords:
+  <ul>
+    <li>
+      dir - the directory to insert - mandatory, no default. This 
+      directory must contain a toplevel index.html file
+    </li>
+    <li>
+      name - the name of the freesite, defaults to 'freesite'
+    </li>
+    <li>
+      usk - set to True to insert as USK (Default false)
+    </li>
+    <li>
+      version - the USK version number, default 0
+    </li>
+    <li>
+      maxretries - maximum number of retries, default 3
+    </li>
+    <li>
+      priority - default 1
+    </li>
+    <li>
+      async - default False - if True, return a job ticket
+    </li>
+  </ul>
+  Returns:
+  <ul>
+    <li>
+      the URI under which the freesite can be retrieved
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="shutdown"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">shutdown</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  <p>Terminates the manager thread</p>
+  You should explicitly shutdown any existing nodes before exiting 
+  your client application
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.FCPProtocolError-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.FCPProtocolError-class.html    
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.FCPProtocolError-class.html    
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPProtocolError</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPProtocolError
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.FCPProtocolError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPProtocolError-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPProtocolError</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    
+            |    
+ <a href="fcp.FCPException-class.html"><code>FCPException</code></a> --+
+                |
+               <b>FCPProtocolError</b>
+</pre><br />
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.FCPPutFailed-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.FCPPutFailed-class.html        
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.FCPPutFailed-class.html        
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.FCPPutFailed</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;FCPPutFailed
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.FCPPutFailed-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.FCPPutFailed-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPPutFailed</h2>
+
+<pre class="base-tree">
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    
+            |    
+ <a href="fcp.FCPException-class.html"><code>FCPException</code></a> --+
+                |
+               <b>FCPPutFailed</b>
+</pre><br />
+
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>info</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.FCPException-class.html#__str__" 
class="summary-sig-name"><code>__str__</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="exceptions.Exception-class.html#__getitem__" 
class="summary-sig-name"><code>__getitem__</code></a>(<span 
class="summary-sig-vararg">...</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcp.JobTicket-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcp.JobTicket-class.html   2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcp.JobTicket-class.html   2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp.JobTicket</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcp-module.html">Module&nbsp;fcp</a> ::
+        Class&nbsp;JobTicket
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcp.JobTicket-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcp.JobTicket-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class JobTicket</h2>
+
+<hr/>
+
+<p>A JobTicket is an object returned to clients making asynchronous 
+requests. It puts them in control of how they manage n concurrent 
+requests.</p>
+When you as a client receive a JobTicket, you can choose to:
+<ul>
+  <li>
+    block, awaiting completion of the job
+  </li>
+  <li>
+    poll the job for completion status
+  </li>
+  <li>
+    receive a callback upon completion
+  </li>
+</ul>
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.JobTicket-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>id</span>,
+          <span class=summary-sig-arg>cmd</span>,
+          <span class=summary-sig-arg>kw</span>)</span></code>
+<br />
+You should never instantiate a JobTicket object yourself</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.JobTicket-class.html#callback" 
class="summary-sig-name"><code>callback</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>status</span>,
+          <span class=summary-sig-arg>value</span>)</span></code>
+<br />
+This will be replaced in job ticket instances wherever user provides 
+callback arguments</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcp.JobTicket-class.html#isComplete" 
class="summary-sig-name"><code>isComplete</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Returns True if the job has been completed</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcp.JobTicket-class.html#wait" 
class="summary-sig-name"><code>wait</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>timeout</span>)</span></code>
+<br />
+Waits forever (or for a given timeout) for a job to complete</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>id</span>,
+          <span class=sig-arg>cmd</span>,
+          <span class=sig-arg>kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  You should never instantiate a JobTicket object yourself
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="callback"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">callback</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>status</span>,
+          <span class=sig-arg>value</span>)</span>
+  </h3>
+  This will be replaced in job ticket instances wherever user provides 
+  callback arguments
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="isComplete"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">isComplete</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Returns True if the job has been completed
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="wait"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">wait</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>timeout</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  Waits forever (or for a given timeout) for a job to complete
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcpxmlrpc-module.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcpxmlrpc-module.html      2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcpxmlrpc-module.html      2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;fcpxmlrpc
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcpxmlrpc-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcpxmlrpc-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE DESCRIPTION =========== -->
+<h2 class="module">Module fcpxmlrpc</h2>
+
+<p>fcpxmlrpc.py</p>
+Exposes some pyfcp primitives over an XML-RPC service
+<hr/>
+
+<!-- =========== START OF CLASSES =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Classes</th></tr>
+<tr><td width="15%">
+  <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></b></td>
+  <td>Multi-threaded XML-RPC server for freenet FCP access</td></tr>
+<tr><td width="15%">
+  <b><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>FreenetXMLRPCRequestHandler</code></a></b></td>
+  <td>Simple class which exposes basic primitives for freenet xmlrpc 
+server</td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Function Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a href="fcpxmlrpc-module.html#main" 
class="summary-sig-name"><code>main</code></a>()</span></code>
+<br />
+When this script is executed, it runs the XML-RPC server</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc-module.html#runServer" 
class="summary-sig-name"><code>runServer</code></a>(<span 
class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Creates and runs a basic XML-RPC server for FCP access</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="testServer"></a><span class="summary-sig"><span 
class="summary-sig-name">testServer</span>()</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="usage"></a><span class="summary-sig"><span 
class="summary-sig-name">usage</span>(<span class=summary-sig-arg>msg</span>,
+          <span class=summary-sig-arg>ret</span>)</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a 
href="fcpxmlrpc-module.html#xmlrpcHost"><code>xmlrpcHost</code></a></b> = <span 
title="'127.0.0.1'"><code><span class="variable-quote">'</span>127.0.0.1<span 
class="variable-quote">'</span>                                 </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="fcpxmlrpc-module.html#xmlrpcPort"><code>xmlrpcPort</code></a></b> = <span 
title="19481">19481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Function Details</th></tr>
+</table>
+
+<a name="main"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">main</span>()</span>
+  </h3>
+  When this script is executed, it runs the XML-RPC server
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="runServer"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">runServer</span>(<span 
class="sig-kwarg">**kw</span>)</span>
+  </h3>
+  <p>Creates and runs a basic XML-RPC server for FCP access</p>
+  For keyword parameters, refer FCPXMLRPCServer constructor
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="xmlrpcHost"></a>
+<h3>xmlrpcHost</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'127.0.0.1'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>127.0.0.1<span 
class="variable-quote">'</span>                                                 
           </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="xmlrpcPort"></a>
+<h3>xmlrpcPort</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>int</code>
+
+      </dd>
+<span title="19481">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+19481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/fcpxmlrpc.FCPXMLRPCServer-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/fcpxmlrpc.FCPXMLRPCServer-class.html       
2006-05-12 03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/fcpxmlrpc.FCPXMLRPCServer-class.html       
2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc.FCPXMLRPCServer</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcpxmlrpc-module.html">Module&nbsp;fcpxmlrpc</a> ::
+        Class&nbsp;FCPXMLRPCServer
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcpxmlrpc.FCPXMLRPCServer-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FCPXMLRPCServer</h2>
+
+<pre class="base-tree">
+<a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCDispatcher</code></a>
 --+    
+                         |    
+        <a 
href="../private/SocketServer.BaseServer-class.html"><code>BaseServer</code></a>
 --+   |    
+                     |   |    
+             <a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a> --+    
+                         |    
+        <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a>
 --+
+                             |
+            <a 
href="SocketServer.ThreadingMixIn-class.html"><code>ThreadingMixIn</code></a> 
--+
+                             |
+                            <b>FCPXMLRPCServer</b>
+</pre><br />
+
+<hr/>
+
+Multi-threaded XML-RPC server for freenet FCP access
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Creates the xml-rpc server</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#run" 
class="summary-sig-name"><code>run</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Launch the server to run forever</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
ThreadingMixIn</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request" 
class="summary-sig-name"><code>process_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Start a new thread to process the request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request_thread" 
class="summary-sig-name"><code>process_request_thread</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>,
+          <span class=summary-sig-arg>client_address</span>)</span></code>
+<br />
+Same as in BaseServer but as a thread.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#close_request" 
class="summary-sig-name"><code>close_request</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>request</span>)</span></code>
+<br />
+Called to clean up an individual request.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#fileno" 
class="summary-sig-name"><code>fileno</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Return socket file number.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#get_request" 
class="summary-sig-name"><code>get_request</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Get the request and client address from the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_activate" 
class="summary-sig-name"><code>server_activate</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to activate the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_bind" 
class="summary-sig-name"><code>server_bind</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called by constructor to bind the socket.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SocketServer.TCPServer-class.html#server_close" 
class="summary-sig-name"><code>server_close</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Called to clean-up the server.</td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function" 
class="summary-sig-name"><code>register_function</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>function</span>,
+          <span class=summary-sig-arg>name</span>)</span></code>
+<br />
+Registers a function to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance" 
class="summary-sig-name"><code>register_instance</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>instance</span>,
+          <span class=summary-sig-arg>allow_dotted_names</span>)</span></code>
+<br />
+Registers an instance to respond to XML-RPC requests.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"
 
class="summary-sig-name"><code>register_introspection_functions</code></a>(<span
 class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC introspection methods in the system 
+namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"
 class="summary-sig-name"><code>register_multicall_functions</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Registers the XML-RPC multicall method in the system namespace.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods" 
class="summary-sig-name"><code>system_listMethods</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+system.listMethods() =&gt; ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp" 
class="summary-sig-name"><code>system_methodHelp</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodHelp('add') =&gt; &quot;Adds two integers 
+together&quot;</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"
 class="summary-sig-name"><code>system_methodSignature</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>method_name</span>)</span></code>
+<br />
+system.methodSignature('add') =&gt; [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall" 
class="summary-sig-name"><code>system_multicall</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>call_list</span>)</span></code>
+<br />
+system.multicall([{'methodName': 'add', 'params': [2, 2]}, ...]) =&gt; 
+[[4], ...]</td></tr>
+</table><br />
+
+
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Class Variable Summary</th></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from 
ThreadingMixIn</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></b>
 = <span title="False"><code>False                                   </code>
+</span></td></tr>
+<tr bgcolor="#e8f0f8" class="group">
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></b>
 = <span 
title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>bool</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></b>
 = <span title="False"><code>False                              </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></b>
 = <span 
title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>int</code></font></td>
+<td><b><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></b>
 = <span 
title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  <p>Creates the xml-rpc server</p>
+  Keywords:
+  <ul>
+    <li>
+      host - hostname to listen on for xml-rpc requests, default 
+      127.0.0.1
+    </li>
+    <li>
+      port - port to listen on for xml-rpc requests, default 19481
+    </li>
+    <li>
+      fcpHost - hostname where FCP port is
+    </li>
+    <li>
+      fcpPort - port where FCP port is
+    </li>
+    <li>
+      verbosity - verbosity of output messages, 0 (silent) through 6 
+      (noisy), default 4. Refer verbosity constants in fcp module
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+    <dl><dt><b>Overrides:</b></dt>
+      <dd><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html#__init__"><code>SimpleXMLRPCServer.SimpleXMLRPCServer.__init__</code></a></dd>
+    </dl>
+  </dd></dl>
+</td></tr></table>
+
+<a name="run"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">run</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Launch the server to run forever
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: 
trunk/apps/pyFreenet/html/public/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
===================================================================
--- 
trunk/apps/pyFreenet/html/public/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
   2006-05-12 03:47:00 UTC (rev 8673)
+++ 
trunk/apps/pyFreenet/html/public/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html
   2006-05-12 06:45:49 UTC (rev 8674)
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc.FreenetXMLRPCRequestHandler</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="fcpxmlrpc-module.html">Module&nbsp;fcpxmlrpc</a> ::
+        Class&nbsp;FreenetXMLRPCRequestHandler
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class FreenetXMLRPCRequestHandler</h2>
+
+<hr/>
+
+Simple class which exposes basic primitives for freenet xmlrpc 
+server
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__init__"></a><span class="summary-sig"><span 
class="summary-sig-name">__init__</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>node</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="genkey"></a><span class="summary-sig"><span 
class="summary-sig-name">genkey</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#get" 
class="summary-sig-name"><code>get</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class=summary-sig-arg>options</span>)</span></code>
+<br />
+Performs a fetch of a key</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#put" 
class="summary-sig-name"><code>put</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>uri</span>,
+          <span class=summary-sig-arg>options</span>)</span></code>
+<br />
+Inserts data to node</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="get"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">get</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class=sig-arg>options</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Performs a fetch of a key</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - the URI to retrieve
+    </li>
+    <li>
+      options - a mapping (dict) object containing various options - 
+      refer to FCPNodeConnection.get documentation
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="put"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">put</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>uri</span>,
+          <span class=sig-arg>options</span>=<span 
class=sig-default>None</span>)</span>
+  </h3>
+  <p>Inserts data to node</p>
+  Arguments:
+  <ul>
+    <li>
+      uri - the URI to insert under
+    </li>
+    <li>
+      options - a mapping (dict) object containing various options - 
+      refer to FCPNodeConnection.get documentation
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/frames.html
===================================================================
--- trunk/apps/pyFreenet/html/public/frames.html        2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/public/frames.html        2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+  <title> PyFCP - Python client interface to Freenet FCP </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame">
+    <frame src="toc-everything.html" name="moduleFrame">
+  </frameset>
+  <frame src="trees.html" name="mainFrame">
+</frameset>
+</html>

Added: trunk/apps/pyFreenet/html/public/help.html
===================================================================
--- trunk/apps/pyFreenet/html/public/help.html  2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/public/help.html  2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Help</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/help.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<center><h2> API Documentation </h2></center>
+
+<p> This document contains the API (Application Programming Interface)
+documentation for PyFCP - Python client interface to Freenet FCP.  
Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class.  The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page.  </p>
+
+<h2> Object Documentation </h2>
+
+  <p>Each <b>Package Documentation</b> page contains: 
+  <ul>
+    <li> A description of the package. </li>
+    <li> A list of the modules and sub-packages contained by the
+    package.  </li>
+    <li> A summary of the classes defined by the package. </li>
+    <li> A summary of the functions defined by the package. </li>
+    <li> A summary of the variables defined by the package. </li>
+    <li> A detailed description of each function defined by the
+    package. </li>
+    <li> A detailed description of each variable defined by the
+    package. </li>
+  </ul></p>
+  
+  <p>Each <b>Module Documentation</b> page contains:
+  <ul>
+    <li> A description of the module. </li>
+    <li> A summary of the classes defined by the module. </li>
+    <li> A summary of the functions defined by the module. </li>
+    <li> A summary of the variables defined by the module. </li>
+    <li> A detailed description of each function defined by the
+    module. </li>
+    <li> A detailed description of each variable defined by the
+    module. </li>
+  </ul></p>
+  
+  <p>Each <b>Class Documentation</b> page contains:
+  <ul>
+    <li> A class inheritance diagram. </li>
+    <li> A list of known subclasses. </li>
+    <li> A description of the class. </li>
+    <li> A summary of the methods defined by the class. </li>
+    <li> A summary of the instance variables defined by the class. </li>
+    <li> A summary of the class (static) variables defined by the
+    class. </li> 
+    <li> A detailed description of each method defined by the
+    class. </li>
+    <li> A detailed description of each instance variable defined by the
+    class. </li> 
+    <li> A detailed description of each class (static) variable defined
+    by the class. </li> 
+  </ul></p>
+
+<h2> Project Documentation </h2>
+
+  <p> The <b>Trees</b> page contains the module and class hierarchies:
+  <ul>
+    <li> The <i>module hierarchy</i> lists every package and module, with
+    modules grouped into packages.  At the top level, and within each
+    package, modules and sub-packages are listed alphabetically. </li>
+    <li> The <i>class hierarchy</i> lists every class, grouped by base
+    class.  If a class has more than one base class, then it will be
+    listed under each base class.  At the top level, and under each base
+    class, classes are listed alphabetically. </li>
+  </ul></p>
+  
+  <p> The <b>Index</b> page contains indices of terms and
+  identifiers: 
+  <ul>
+    <li> The <i>term index</i> lists every term indexed by any object's
+    documentation.  For each term, the index provides links to each
+    place where the term is indexed. </li>
+    <li> The <i>identifier index</i> lists the (short) name of every package,
+    module, class, method, function, variable, and parameter.  For each
+    identifier, the index provides a short description, and a link to
+    its documentation. </li>
+  </ul></p>
+
+<h2> The Table of Contents </h2>
+
+<p> The table of contents occupies the two frames on the left side of
+the window.  The upper-left frame displays the <i>project
+contents</i>, and the lower-left frame displays the <i>module
+contents</i>: </p>
+
+<center>
+<table class="summary" border="1" cellspacing="0" cellpadding="3">
+  <tr heigh="30%">
+    <td align="center">
+       <font size="-1">Project<br>Contents<hr>...</font></td>
+    <td align="center" rowspan="2" width="70%">
+      API<br>Documentation<br>Frame<br><br><br>
+    </td>
+  </tr>
+  <tr>
+    <td align="center">
+      <font size="-1">Module<br>Contents<hr>&nbsp;<br>...<br>&nbsp;</font>
+    </td>
+  </tr>
+</table><br>
+</center>
+
+<p> The <b>project contents frame</b> contains a list of all packages
+and modules that are defined by the project.  Clicking on an entry
+will display its contents in the module contents frame.  Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project. </p>
+
+<p> The <b>module contents frame</b> contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package.  Clicking on an entry will display its
+documentation in the API documentation frame.  Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself. </p>
+
+<p> The "<b>frames</b>" and "<b>no frames</b>" buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not. </p>
+
+<h2> The Navigation Bar </h2>
+
+<p> A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages.  The following table describes the labels
+on the navigation bar.  Note that not some labels (such as
+[Parent]) are not displayed on all pages. </p>
+
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
+<tr class="summary">
+  <th>Label</th>
+  <th>Highlighted when...</th>
+  <th>Links to...</th>
+</tr>
+  <tr><td valign="top"><b>[Parent]</b></td>
+      <td valign="top"><i>(never highlighted)</i></td>
+      <td valign="top"> the parent of the current package </td></tr>
+  <tr><td valign="top"><b>[Package]</b></td>
+      <td valign="top">viewing a package</td>
+      <td valign="top">the package containing the current object
+      </td></tr>
+  <tr><td valign="top"><b>[Module]</b></td>
+      <td valign="top">viewing a module</td>
+      <td valign="top">the module containing the current object
+      </td></tr> 
+  <tr><td valign="top"><b>[Class]</b></td>
+      <td valign="top">viewing a class </td>
+      <td valign="top">the class containing the current object</td></tr>
+  <tr><td valign="top"><b>[Trees]</b></td>
+      <td valign="top">viewing the trees page</td>
+      <td valign="top"> the trees page </td></tr>
+  <tr><td valign="top"><b>[Index]</b></td>
+      <td valign="top">viewing the index page</td>
+      <td valign="top"> the index page </td></tr>
+  <tr><td valign="top"><b>[Help]</b></td>
+      <td valign="top">viewing the help page</td>
+      <td valign="top"> the help page </td></tr>
+</table>
+
+<p> The "<b>show private</b>" and "<b>hide private</b>" buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed.  Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore.  For example, "<code>_x</code>",
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
+are private objects; but "<code>re.sub</code>",
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,
+if a module defines the "<code>__all__</code>" variable, then its
+contents are used to decide which objects are private. </p>
+
+<p> A timestamp below the bottom navigation bar indicates when each
+page was last updated. </p>
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/index.html
===================================================================
--- trunk/apps/pyFreenet/html/public/index.html 2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/public/index.html 2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+<html>
+<head>
+  <title> PyFCP - Python client interface to Freenet FCP </title>
+</head>
+<frameset cols="20%,80%">
+  <frameset rows="30%,70%">
+    <frame src="toc.html" name="moduleListFrame">
+    <frame src="toc-everything.html" name="moduleFrame">
+  </frameset>
+  <frame src="trees.html" name="mainFrame">
+</frameset>
+</html>

Added: trunk/apps/pyFreenet/html/public/indices.html
===================================================================
--- trunk/apps/pyFreenet/html/public/indices.html       2006-05-12 03:47:00 UTC 
(rev 8673)
+++ trunk/apps/pyFreenet/html/public/indices.html       2006-05-12 06:45:49 UTC 
(rev 8674)
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Index</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/indices.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+<br />
+
+<!-- =========== START OF IDENTIFIER INDEX =========== -->
+<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="index">
+  <th colspan="2">Identifier Index</th></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#__del__"><code>__del__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#__del__"><code>__del__</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>
+    <td>Method in class <a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPException-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPException-class.html"><code>fcp.FCPException</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#__init__"><code>__init__</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>
+    <td>Method in class <a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPException-class.html#__str__"><code>__str__</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPException-class.html"><code>fcp.FCPException</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#address_family"><code>address_family</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#allow_reuse_address"><code>allow_reuse_address</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#callback"><code>callback</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#close_request"><code>close_request</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.ConnectionRefused-class.html"><code>ConnectionRefused</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#createConfig"><code>createConfig</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#createNode"><code>createNode</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#CRITICAL"><code>CRITICAL</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#daemon_threads"><code>daemon_threads</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#DEBUG"><code>DEBUG</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#defaultFCPHost"><code>defaultFCPHost</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#defaultFCPPort"><code>defaultFCPPort</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#DETAIL"><code>DETAIL</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#ERROR"><code>ERROR</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="exceptions.Exception-class.html"><code>Exception</code></a></td>
+    <td>Class in module <code>exceptions</code></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#expectedVersion"><code>expectedVersion</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#FATAL"><code>FATAL</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a href="fcp-module.html"><code>fcp</code></a></td>
+    <td>Module</td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPException-class.html"><code>FCPException</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#fcpHost"><code>fcpHost</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html"><code>FCPNodeConnection</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#fcpPort"><code>fcpPort</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td>
+    <td>Module</td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>FCPXMLRPCServer</code></a></td>
+    <td>Class in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#fileno"><code>fileno</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>FreenetXMLRPCRequestHandler</code></a></td>
+    <td>Class in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#genkey"><code>genkey</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#genkey"><code>genkey</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#get"><code>get</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#get"><code>get</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#get_request"><code>get_request</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#guessMimetype"><code>guessMimetype</code></a></td>
+    <td>Function in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#help"><code>help</code></a></td>
+    <td>Function in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a href="fcp-module.html#INFO"><code>INFO</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#intKeys"><code>intKeys</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#isComplete"><code>isComplete</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html"><code>JobTicket</code></a></td>
+    <td>Class in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#loadConfig"><code>loadConfig</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#logfile"><code>logfile</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#main"><code>main</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#pollTimeout"><code>pollTimeout</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request"><code>process_request</code></a></td>
+    <td>Method in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html#process_request_thread"><code>process_request_thread</code></a></td>
+    <td>Method in class <a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#put"><code>put</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html#put"><code>put</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#putdir"><code>putdir</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#readdir"><code>readdir</code></a></td>
+    <td>Function in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_function"><code>register_function</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_instance"><code>register_instance</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_introspection_functions"><code>register_introspection_functions</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#register_multicall_functions"><code>register_multicall_functions</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#request_queue_size"><code>request_queue_size</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html#run"><code>run</code></a></td>
+    <td>Method in class <a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#runServer"><code>runServer</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#saveConfig"><code>saveConfig</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#server_activate"><code>server_activate</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#server_bind"><code>server_bind</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#server_close"><code>server_close</code></a></td>
+    <td>Method in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.FCPNodeConnection-class.html#shutdown"><code>shutdown</code></a></td>
+    <td>Method in class <a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#SILENT"><code>SILENT</code></a></td>
+    <td>Variable in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCDispatcher</code></a></td>
+    <td>Class in module <code>SimpleXMLRPCServer</code></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer</code></a></td>
+    <td>Class in module <code>SimpleXMLRPCServer</code></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html"><code>sitemgr</code></a></td>
+    <td>Module</td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html"><code>SiteMgr</code></a></td>
+    <td>Class in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html#socket_type"><code>socket_type</code></a></td>
+    <td>Variable in class <a 
href="SocketServer.TCPServer-class.html"><code>SocketServer.TCPServer</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_listMethods"><code>system_listMethods</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodHelp"><code>system_methodHelp</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_methodSignature"><code>system_methodSignature</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html#system_multicall"><code>system_multicall</code></a></td>
+    <td>Method in class <a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.TCPServer-class.html"><code>TCPServer</code></a></td>
+    <td>Class in module <code>SocketServer</code></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#testServer"><code>testServer</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="SocketServer.ThreadingMixIn-class.html"><code>ThreadingMixIn</code></a></td>
+    <td>Class in module <code>SocketServer</code></td></tr>
+  <tr><td width="15%"><a 
href="fcp-module.html#toBool"><code>toBool</code></a></td>
+    <td>Function in module <a 
href="fcp-module.html"><code>fcp</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr.SiteMgr-class.html#update"><code>update</code></a></td>
+    <td>Method in class <a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#usage"><code>usage</code></a></td>
+    <td>Function in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="sitemgr-module.html#verbosity"><code>verbosity</code></a></td>
+    <td>Variable in module <a 
href="sitemgr-module.html"><code>sitemgr</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcp.JobTicket-class.html#wait"><code>wait</code></a></td>
+    <td>Method in class <a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#xmlrpcHost"><code>xmlrpcHost</code></a></td>
+    <td>Variable in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+  <tr><td width="15%"><a 
href="fcpxmlrpc-module.html#xmlrpcPort"><code>xmlrpcPort</code></a></td>
+    <td>Variable in module <a 
href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></td></tr>
+</table>
+<br />
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/sitemgr-module.html
===================================================================
--- trunk/apps/pyFreenet/html/public/sitemgr-module.html        2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/sitemgr-module.html        2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>sitemgr</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        Module&nbsp;sitemgr
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/sitemgr-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="sitemgr-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE DESCRIPTION =========== -->
+<h2 class="module">Module sitemgr</h2>
+
+A small freesite insertion/management utility
+<hr/>
+
+<!-- =========== START OF CLASSES =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Classes</th></tr>
+<tr><td width="15%">
+  <b><a href="sitemgr.SiteMgr-class.html"><code>SiteMgr</code></a></b></td>
+  <td>Manages insertion and updating of freesites</td></tr>
+</table><br />
+
+
+<!-- =========== START OF FUNCTION SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Function Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="help"></a><span class="summary-sig"><span 
class="summary-sig-name">help</span>()</span></code>
+</td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Variable Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>str</code></font></td>
+<td><b><a href="sitemgr-module.html#fcpHost"><code>fcpHost</code></a></b> = 
<span title="'thoth'"><code><span class="variable-quote">'</span>thoth<span 
class="variable-quote">'</span>                                        </code>
+</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>NoneType</code></font></td>
+<td><b><a href="sitemgr-module.html#fcpPort"><code>fcpPort</code></a></b> = 
<span 
title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>NoneType</code></font></td>
+<td><b><a href="sitemgr-module.html#logfile"><code>logfile</code></a></b> = 
<span 
title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1"><code>NoneType</code></font></td>
+<td><b><a href="sitemgr-module.html#verbosity"><code>verbosity</code></a></b> 
= <span 
title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
+</table><br />
+
+
+<!-- =========== START OF VARIABLE DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Variable Details</th></tr>
+</table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="fcpHost"></a>
+<h3>fcpHost</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>str</code>
+
+      </dd>
+<span title="'thoth'">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+<span class="variable-quote">'</span>thoth<span 
class="variable-quote">'</span>                                                 
               </pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="fcpPort"></a>
+<h3>fcpPort</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>NoneType</code>
+
+      </dd>
+<span title="None">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="logfile"></a>
+<h3>logfile</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>NoneType</code>
+
+      </dd>
+<span title="None">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
+<a name="verbosity"></a>
+<h3>verbosity</h3>
+<dl>
+  <dt></dt>
+  <dd>
+    <dl>
+      <dt><b>Type:</b></dt>
+      <dd>
+          <code>NoneType</code>
+
+      </dd>
+<span title="None">      <dt><b>Value:</b></dt>
+      <dd><table><tr><td>
+<pre class="variable">
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
+        </td></tr></table></dd>
+</span>    </dl>
+  </dd>
+</dl></td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/sitemgr.SiteMgr-class.html
===================================================================
--- trunk/apps/pyFreenet/html/public/sitemgr.SiteMgr-class.html 2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/sitemgr.SiteMgr-class.html 2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>sitemgr.SiteMgr</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <font size="-1"><b class="breadcrumbs">
+        <a href="sitemgr-module.html">Module&nbsp;sitemgr</a> ::
+        Class&nbsp;SiteMgr
+      </b></font></br>
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/sitemgr.SiteMgr-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a 
href="sitemgr.SiteMgr-class.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Class SiteMgr</h2>
+
+<hr/>
+
+Manages insertion and updating of freesites
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+  <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#__init__" 
class="summary-sig-name"><code>__init__</code></a>(<span 
class=summary-sig-arg>self</span>,
+          <span class=summary-sig-arg>configFile</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+<br />
+Creates a site manager object.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="__del__"></a><span class="summary-sig"><span 
class="summary-sig-name">__del__</span>(<span 
class=summary-sig-arg>self</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#createConfig" 
class="summary-sig-name"><code>createConfig</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Creates a whole new config</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><a name="createNode"></a><span class="summary-sig"><span 
class="summary-sig-name">createNode</span>(<span 
class=summary-sig-arg>self</span>,
+          <span class="summary-sig-kwarg">**kw</span>)</span></code>
+</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#loadConfig" 
class="summary-sig-name"><code>loadConfig</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Loads the sites config file into self.config as a SafeConfigParser 
+object</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#saveConfig" 
class="summary-sig-name"><code>saveConfig</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Saves the amended config file to disk</td></tr>
+<tr><td align="right" valign="top" width="15%"><font 
size="-1">&nbsp;</font></td>
+  <td><code><span class="summary-sig"><a 
href="sitemgr.SiteMgr-class.html#update" 
class="summary-sig-name"><code>update</code></a>(<span 
class=summary-sig-arg>self</span>)</span></code>
+<br />
+Insert/update all registered freesites</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" 
bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+  <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span 
class=sig-arg>self</span>,
+          <span class=sig-arg>configFile</span>=<span 
class=sig-default>None</span>,
+          <span class="sig-kwarg">**kw</span>)</span>
+    <br /><i>(Constructor)</i>
+  </h3>
+  <p>Creates a site manager object.</p>
+  Arguments:
+  <ul>
+    <li>
+      configFile - ini-format file containing site specifications, 
+      defaults to ~/.freesitesrc on *nix or ~/freesites.ini
+    </li>
+  </ul>
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="createConfig"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">createConfig</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Creates a whole new config
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="loadConfig"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">loadConfig</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Loads the sites config file into self.config as a SafeConfigParser 
+  object
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="saveConfig"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">saveConfig</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Saves the amended config file to disk
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+
+<a name="update"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+  <h3><span class="sig"><span class="sig-name">update</span>(<span 
class=sig-arg>self</span>)</span>
+  </h3>
+  Insert/update all registered freesites
+  <dl><dt></dt><dd>
+  </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/toc-everything.html
===================================================================
--- trunk/apps/pyFreenet/html/public/toc-everything.html        2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/toc-everything.html        2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Everything</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b>Everything</b></font></center>
+<hr>
+
+<!-- =========== START OF ALL CLASSES =========== -->
+<font size="+1"><b>All&nbsp;Classes</b></font><br />
+<a target="mainFrame" 
href="fcp.FCPNodeConnection-class.html">fcp.FCPNodeConnection</a><br />
+<a target="mainFrame" href="fcp.JobTicket-class.html">fcp.JobTicket</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FCPXMLRPCServer-class.html">fcpxmlrpc.FCPXMLRPCServer</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">fcpxmlrpc.FreenetXMLRPCRequestHandler</a><br
 />
+<a target="mainFrame" href="sitemgr.SiteMgr-class.html">sitemgr.SiteMgr</a><br 
/>
+<br />
+
+<!-- =========== START OF ALL EXCEPTIONS =========== -->
+<font size="+1"><b>All&nbsp;Exceptions</b></font><br />
+<a target="mainFrame" 
href="fcp.ConnectionRefused-class.html">fcp.ConnectionRefused</a><br />
+<a target="mainFrame" 
href="fcp.FCPException-class.html">fcp.FCPException</a><br />
+<a target="mainFrame" 
href="fcp.FCPGetFailed-class.html">fcp.FCPGetFailed</a><br />
+<a target="mainFrame" 
href="fcp.FCPProtocolError-class.html">fcp.FCPProtocolError</a><br />
+<a target="mainFrame" 
href="fcp.FCPPutFailed-class.html">fcp.FCPPutFailed</a><br />
+<br />
+
+<!-- =========== START OF ALL FUNCTIONS =========== -->
+<font size="+1"><b>All&nbsp;Functions</b></font><br />
+<a target="mainFrame" 
href="fcp-module.html#guessMimetype">guessMimetype</a><br />
+<a target="mainFrame" href="sitemgr-module.html#help">help</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#main">main</a><br />
+<a target="mainFrame" href="fcp-module.html#readdir">readdir</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#runServer">runServer</a><br 
/>
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#testServer">testServer</a><br />
+<a target="mainFrame" href="fcp-module.html#toBool">toBool</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#usage">usage</a><br />
+<br />
+
+<!-- =========== START OF ALL VARIABLES =========== -->
+<font size="+1"><b>All&nbsp;Variables</b></font><br />
+<a target="mainFrame" href="fcp-module.html#CRITICAL">CRITICAL</a><br />
+<a target="mainFrame" href="fcp-module.html#DEBUG">DEBUG</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPHost">defaultFCPHost</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPPort">defaultFCPPort</a><br />
+<a target="mainFrame" href="fcp-module.html#DETAIL">DETAIL</a><br />
+<a target="mainFrame" href="fcp-module.html#ERROR">ERROR</a><br />
+<a target="mainFrame" 
href="fcp-module.html#expectedVersion">expectedVersion</a><br />
+<a target="mainFrame" href="fcp-module.html#FATAL">FATAL</a><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpHost">fcpHost</a><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpPort">fcpPort</a><br />
+<a target="mainFrame" href="fcp-module.html#INFO">INFO</a><br />
+<a target="mainFrame" href="fcp-module.html#intKeys">intKeys</a><br />
+<a target="mainFrame" href="sitemgr-module.html#logfile">logfile</a><br />
+<a target="mainFrame" href="fcp-module.html#pollTimeout">pollTimeout</a><br />
+<a target="mainFrame" href="fcp-module.html#SILENT">SILENT</a><br />
+<a target="mainFrame" href="sitemgr-module.html#verbosity">verbosity</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcHost">xmlrpcHost</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcPort">xmlrpcPort</a><br />
+<br />
+
+<hr>
+<font size="-2">[<a 
href="../private/toc-everything.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/toc-fcp-module.html
===================================================================
--- trunk/apps/pyFreenet/html/public/toc-fcp-module.html        2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/toc-fcp-module.html        2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcp</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b><a target="mainFrame" 
href="fcp-module.html">fcp</a></b></font></center>
+<hr>
+
+<!-- =========== START OF CLASSES =========== -->
+<font size="+1"><b>Classes</b></font><br />
+<a target="mainFrame" 
href="fcp.FCPNodeConnection-class.html">FCPNodeConnection</a><br />
+<a target="mainFrame" href="fcp.JobTicket-class.html">JobTicket</a><br />
+<br />
+
+<!-- =========== START OF EXCEPTIONS =========== -->
+<font size="+1"><b>Exceptions</b></font><br />
+<a target="mainFrame" 
href="fcp.ConnectionRefused-class.html">ConnectionRefused</a><br />
+<a target="mainFrame" href="fcp.FCPException-class.html">FCPException</a><br />
+<a target="mainFrame" href="fcp.FCPGetFailed-class.html">FCPGetFailed</a><br />
+<a target="mainFrame" 
href="fcp.FCPProtocolError-class.html">FCPProtocolError</a><br />
+<a target="mainFrame" href="fcp.FCPPutFailed-class.html">FCPPutFailed</a><br />
+<br />
+
+<!-- =========== START OF FUNCTIONS =========== -->
+<font size="+1"><b>Functions</b></font><br />
+<a target="mainFrame" 
href="fcp-module.html#guessMimetype">guessMimetype</a><br />
+<a target="mainFrame" href="fcp-module.html#readdir">readdir</a><br />
+<a target="mainFrame" href="fcp-module.html#toBool">toBool</a><br />
+<br />
+
+<!-- =========== START OF VARIABLES =========== -->
+<font size="+1"><b>Variables</b></font><br />
+<a target="mainFrame" href="fcp-module.html#CRITICAL">CRITICAL</a><br />
+<a target="mainFrame" href="fcp-module.html#DEBUG">DEBUG</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPHost">defaultFCPHost</a><br />
+<a target="mainFrame" 
href="fcp-module.html#defaultFCPPort">defaultFCPPort</a><br />
+<a target="mainFrame" href="fcp-module.html#DETAIL">DETAIL</a><br />
+<a target="mainFrame" href="fcp-module.html#ERROR">ERROR</a><br />
+<a target="mainFrame" 
href="fcp-module.html#expectedVersion">expectedVersion</a><br />
+<a target="mainFrame" href="fcp-module.html#FATAL">FATAL</a><br />
+<a target="mainFrame" href="fcp-module.html#INFO">INFO</a><br />
+<a target="mainFrame" href="fcp-module.html#intKeys">intKeys</a><br />
+<a target="mainFrame" href="fcp-module.html#pollTimeout">pollTimeout</a><br />
+<a target="mainFrame" href="fcp-module.html#SILENT">SILENT</a><br />
+<br />
+
+<hr>
+<font size="-2">[<a 
href="../private/toc-fcp-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/toc-fcpxmlrpc-module.html
===================================================================
--- trunk/apps/pyFreenet/html/public/toc-fcpxmlrpc-module.html  2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/toc-fcpxmlrpc-module.html  2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>fcpxmlrpc</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b><a target="mainFrame" 
href="fcpxmlrpc-module.html">fcpxmlrpc</a></b></font></center>
+<hr>
+
+<!-- =========== START OF CLASSES =========== -->
+<font size="+1"><b>Classes</b></font><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FCPXMLRPCServer-class.html">FCPXMLRPCServer</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">FreenetXMLRPCRequestHandler</a><br
 />
+<br />
+
+<!-- =========== START OF FUNCTIONS =========== -->
+<font size="+1"><b>Functions</b></font><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#main">main</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#runServer">runServer</a><br 
/>
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#testServer">testServer</a><br />
+<a target="mainFrame" href="fcpxmlrpc-module.html#usage">usage</a><br />
+<br />
+
+<!-- =========== START OF VARIABLES =========== -->
+<font size="+1"><b>Variables</b></font><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcHost">xmlrpcHost</a><br />
+<a target="mainFrame" 
href="fcpxmlrpc-module.html#xmlrpcPort">xmlrpcPort</a><br />
+<br />
+
+<hr>
+<font size="-2">[<a 
href="../private/toc-fcpxmlrpc-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/toc-sitemgr-module.html
===================================================================
--- trunk/apps/pyFreenet/html/public/toc-sitemgr-module.html    2006-05-12 
03:47:00 UTC (rev 8673)
+++ trunk/apps/pyFreenet/html/public/toc-sitemgr-module.html    2006-05-12 
06:45:49 UTC (rev 8674)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>sitemgr</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b><a target="mainFrame" 
href="sitemgr-module.html">sitemgr</a></b></font></center>
+<hr>
+
+<!-- =========== START OF CLASSES =========== -->
+<font size="+1"><b>Classes</b></font><br />
+<a target="mainFrame" href="sitemgr.SiteMgr-class.html">SiteMgr</a><br />
+<br />
+
+<!-- =========== START OF FUNCTIONS =========== -->
+<font size="+1"><b>Functions</b></font><br />
+<a target="mainFrame" href="sitemgr-module.html#help">help</a><br />
+<br />
+
+<!-- =========== START OF VARIABLES =========== -->
+<font size="+1"><b>Variables</b></font><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpHost">fcpHost</a><br />
+<a target="mainFrame" href="sitemgr-module.html#fcpPort">fcpPort</a><br />
+<a target="mainFrame" href="sitemgr-module.html#logfile">logfile</a><br />
+<a target="mainFrame" href="sitemgr-module.html#verbosity">verbosity</a><br />
+<br />
+
+<hr>
+<font size="-2">[<a 
href="../private/toc-sitemgr-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/toc.html
===================================================================
--- trunk/apps/pyFreenet/html/public/toc.html   2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/public/toc.html   2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Table of Contents</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<center><font size="+1"><b>Table&nbsp;of&nbsp;Contents</b></font></center>
+<hr>
+<a target="moduleFrame" href="toc-everything.html">Everything</a><br />
+
+<!-- =========== START OF PACKAGES =========== -->
+<br /><font size="+1"><b>Packages</b></font><br />
+
+<!-- =========== START OF MODULES =========== -->
+<br /><font size="+1"><b>Modules</b></font><br />
+<a target="moduleFrame" href="toc-fcp-module.html">fcp</a><br />
+<a target="moduleFrame" href="toc-fcpxmlrpc-module.html">fcpxmlrpc</a><br />
+<a target="moduleFrame" href="toc-sitemgr-module.html">sitemgr</a><br />
+
+<br /><hr>
+<font size="-2">[<a 
href="../private/toc.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
+</body>
+</html>

Added: trunk/apps/pyFreenet/html/public/trees.html
===================================================================
--- trunk/apps/pyFreenet/html/public/trees.html 2006-05-12 03:47:00 UTC (rev 
8673)
+++ trunk/apps/pyFreenet/html/public/trees.html 2006-05-12 06:45:49 UTC (rev 
8674)
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+<head>
+  <title>Module and Class Hierarchies</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th bgcolor="#70b0f0" 
class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+    </td>
+    <td><table cellpadding="0" cellspacing="0">
+      <tr><td align="right"><font size="-2">[<a 
href="../private/trees.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+      <tr><td align="right"><font size="-2">[<a 
href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" 
target="_top">no&nbsp;frames</a>]</font></td></tr>
+    </table></td>
+</tr></table>
+
+<!-- =========== START OF MODULE HIERARCHY =========== -->
+<h2>Module Hierarchy</h2>
+<ul>
+<li> <b><a href="fcp-module.html"><code>fcp</code></a></b>: <i>An 
implementation of a freenet client library for FCP v2, offering 
+considerable flexibility.</i>
+<li> <b><a href="fcpxmlrpc-module.html"><code>fcpxmlrpc</code></a></b>: 
<i>fcpxmlrpc.py</i>
+<li> <b><a href="sitemgr-module.html"><code>sitemgr</code></a></b>: <i>A small 
freesite insertion/management utility</i>
+</ul>
+
+<!-- =========== START OF CLASS HIERARCHY =========== -->
+<h2>Class Hierarchy</h2>
+<ul>
+  <li> <b><a 
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCDispatcher</code></a></b>:
 <i>
+Mix-in class that dispatches XML-RPC requests.</i>
+    <ul>
+  <li> <b><a 
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"><code>SimpleXMLRPCServer.SimpleXMLRPCServer</code></a></b>:
 <i>
+Simple XML-RPC server.</i>
+    <ul>
+  <li> <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></b>:
 <i>
+Multi-threaded XML-RPC server for freenet FCP access</i>
+    </ul>
+    </ul>
+    <ul>
+    </ul>
+  <li> <b><a 
href="SocketServer.ThreadingMixIn-class.html"><code>SocketServer.ThreadingMixIn</code></a></b>:
 <i>
+Mix-in class to handle each request in a new thread.</i>
+    <ul>
+  <li> <b><a 
href="fcpxmlrpc.FCPXMLRPCServer-class.html"><code>fcpxmlrpc.FCPXMLRPCServer</code></a></b>:
 <i>
+Multi-threaded XML-RPC server for freenet FCP access</i>
+    </ul>
+  <li> <b><a 
href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></b>:
 <i>
+Common base class for all exceptions.</i>
+    <ul>
+  <li> <b><a 
href="fcp.ConnectionRefused-class.html"><code>fcp.ConnectionRefused</code></a></b>:
 <i>
+cannot connect to given host/port</i>
+  <li> <b><a 
href="fcp.FCPException-class.html"><code>fcp.FCPException</code></a></b>
+    <ul>
+  <li> <b><a 
href="fcp.FCPGetFailed-class.html"><code>fcp.FCPGetFailed</code></a></b>
+  <li> <b><a 
href="fcp.FCPProtocolError-class.html"><code>fcp.FCPProtocolError</code></a></b>
+  <li> <b><a 
href="fcp.FCPPutFailed-class.html"><code>fcp.FCPPutFailed</code></a></b>
+    </ul>
+    </ul>
+  <li> <b><a 
href="fcp.FCPNodeConnection-class.html"><code>fcp.FCPNodeConnection</code></a></b>:
 <i>
+Represents an interface to a freenet node via its FCP port,
+and exposes primitives for the basic genkey, get, put and putdir
+operations.</i>
+  <li> <b><a 
href="fcp.JobTicket-class.html"><code>fcp.JobTicket</code></a></b>: <i>
+A JobTicket is an object returned to clients making asynchronous 
+requests.</i>
+  <li> <b><a 
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"><code>fcpxmlrpc.FreenetXMLRPCRequestHandler</code></a></b>:
 <i>
+Simple class which exposes basic primitives for freenet xmlrpc 
+server</i>
+  <li> <b><a 
href="sitemgr.SiteMgr-class.html"><code>sitemgr.SiteMgr</code></a></b>: <i>
+Manages insertion and updating of freesites</i>
+</ul>
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" 
bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="center">
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+    <th class="navbar" align="right" width="100%">
+      <table border="0" cellpadding="0" cellspacing="0">
+      <tr><th class="navbar" align="center">
+        <p class="nomargin">
+          
PyFCP&nbsp;-&nbsp;Python&nbsp;client&nbsp;interface&nbsp;to&nbsp;Freenet&nbsp;FCP
+      </p></th></tr></table>
+    </th>
+  </tr>
+</table>
+
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+  <tr>
+    <td align="left"><font size="-2">Generated by Epydoc 2.1 on Fri May 12 
18:42:19 2006</font></td>
+    <td align="right"><a href="http://epydoc.sourceforge.net";
+                      ><font size="-2">http://epydoc.sf.net</font></a></td>
+  </tr>
+</table>
+</body>
+</html>


Reply via email to