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'] >= INFO:
+ #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'])
@@ -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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SimpleXMLRPCServer ::
+ Class SimpleXMLRPCDispatcher
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> </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() => ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => "Adds two integers
+together"</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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]}, ...]) =>
+[[4], ...]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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() => ['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') => "Adds two integers
+ together"</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') => [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]}, ...])
+ => [[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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SimpleXMLRPCServer ::
+ Class SimpleXMLRPCServer
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/SimpleXMLRPCServer.SimpleXMLRPCServer-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"
target="_top">no 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"> </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"> Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> </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"> Inherited from BaseServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> </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"> Inherited from
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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() => ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => "Adds two integers
+together"</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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]}, ...]) =>
+[[4], ...]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> 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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SocketServer ::
+ Class BaseServer
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font
size="-2">[<b>show private</b> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="../private/SocketServer.BaseServer-class.html"
target="_top">no 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() -> int # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -> 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SocketServer ::
+ Class TCPServer
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/SocketServer.TCPServer-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SocketServer.TCPServer-class.html"
target="_top">no 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() -> int # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -> 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> Inherited from BaseServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> </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 </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 </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 </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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SocketServer ::
+ Class ThreadingMixIn
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/SocketServer.ThreadingMixIn-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SocketServer.ThreadingMixIn-class.html"
target="_top">no 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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 exceptions ::
+ Class Exception
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/exceptions.Exception-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="exceptions.Exception-class.html"
target="_top">no 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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp-module.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp-module.html" target="_top">no 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> </td></tr>
+<tr><td width="15%">
+ <b><a
href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a></b></td>
+ <td> </td></tr>
+<tr><td width="15%">
+ <b><a
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a></b></td>
+ <td> </td></tr>
+<tr><td width="15%">
+ <b><a
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></b></td>
+ <td> </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"> </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"> </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"> </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 </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 </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 </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 </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 </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 </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 </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', '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 </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 </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@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 </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 </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 </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 </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 </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 </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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class ConnectionRefused
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.ConnectionRefused-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.ConnectionRefused-class.html"
target="_top">no 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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class FCPException
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.FCPException-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPException-class.html"
target="_top">no 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"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class FCPGetFailed
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.FCPGetFailed-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPGetFailed-class.html"
target="_top">no 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"> Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class FCPNodeConnection
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.FCPNodeConnection-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPNodeConnection-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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@'</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@privkey/sitename'
+ </li>
+ <li>
+ usk - whether to insert as a USK
+ (USK@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 > 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class FCPProtocolError
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.FCPProtocolError-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPProtocolError-class.html"
target="_top">no 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"> Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class FCPPutFailed
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.FCPPutFailed-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPPutFailed-class.html"
target="_top">no 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"> Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class JobTicket
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcp.JobTicket-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.JobTicket-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcpxmlrpc
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcpxmlrpc-module.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcpxmlrpc-module.html" target="_top">no 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"> </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"> </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"> </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"> </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcpxmlrpc</a> ::
+ Class FCPXMLRPCServer
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcpxmlrpc.FCPXMLRPCServer-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcpxmlrpc.FCPXMLRPCServer-class.html"
target="_top">no 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"> </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"> </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"> Inherited from
ThreadingMixIn</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> </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"> Inherited from BaseServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> Inherited from
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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() => ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => "Adds two integers
+together"</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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]}, ...]) =>
+[[4], ...]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> 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"> 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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcpxmlrpc</a> ::
+ Class FreenetXMLRPCRequestHandler
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Help </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 - Python client interface to Freenet 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 private | <a
href="../public/help.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a href="help.html"
target="_top">no 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> <br>...<br> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Help </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Index </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 private | <a
href="../public/indices.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a href="indices.html"
target="_top">no 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Index </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 sitemgr
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/sitemgr-module.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="sitemgr-module.html" target="_top">no 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"> </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 </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 </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 </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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 sitemgr</a> ::
+ Class SiteMgr
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[show private | <a
href="../public/sitemgr.SiteMgr-class.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="sitemgr.SiteMgr-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 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 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 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 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 private | <a
href="../public/toc-everything.html">hide 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 private | <a
href="../public/toc-fcp-module.html">hide 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 private | <a
href="../public/toc-fcpxmlrpc-module.html">hide 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 private | <a
href="../public/toc-sitemgr-module.html">hide 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 of 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 private | <a
href="../public/toc.html">hide 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"> Trees </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 private | <a
href="../public/trees.html">hide private</a>]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a href="trees.html"
target="_top">no 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SimpleXMLRPCServer ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SimpleXMLRPCServer.SimpleXMLRPCDispatcher-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> </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() => ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => "Adds two integers
+together"</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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]}, ...]) =>
+[[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() => ['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') => "Adds two integers
+ together"</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') => [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]}, ...])
+ => [[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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SimpleXMLRPCServer ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SimpleXMLRPCServer.SimpleXMLRPCServer-class.html"
target="_top">no 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"> </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"> Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> </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"> Inherited from
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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() => ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => "Adds two integers
+together"</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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]}, ...]) =>
+[[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"> 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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SocketServer ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SocketServer.TCPServer-class.html"
target="_top">no 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() -> int # for select()
+
+Methods that may be overridden:
+
+- server_bind()
+- server_activate()
+- get_request() -> 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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 </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 </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 </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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 SocketServer ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="SocketServer.ThreadingMixIn-class.html"
target="_top">no 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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 exceptions ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="exceptions.Exception-class.html"
target="_top">no 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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp-module.html" target="_top">no 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> </td></tr>
+<tr><td width="15%">
+ <b><a
href="fcp.FCPGetFailed-class.html"><code>FCPGetFailed</code></a></b></td>
+ <td> </td></tr>
+<tr><td width="15%">
+ <b><a
href="fcp.FCPProtocolError-class.html"><code>FCPProtocolError</code></a></b></td>
+ <td> </td></tr>
+<tr><td width="15%">
+ <b><a
href="fcp.FCPPutFailed-class.html"><code>FCPPutFailed</code></a></b></td>
+ <td> </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"> </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"> </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"> </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 </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 </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 </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 </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 </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 </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 </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', '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 </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 </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@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 </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 </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 </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 </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 </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 </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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.ConnectionRefused-class.html"
target="_top">no 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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPException-class.html"
target="_top">no 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"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPGetFailed-class.html"
target="_top">no 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"> Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPNodeConnection-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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@'</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@privkey/sitename'
+ </li>
+ <li>
+ usk - whether to insert as a USK
+ (USK@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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPProtocolError-class.html"
target="_top">no 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"> Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.FCPPutFailed-class.html"
target="_top">no 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"> Inherited from FCPException</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from Exception</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcp</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcp.JobTicket-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcpxmlrpc-module.html" target="_top">no 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"> </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"> </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"> </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"> </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcpxmlrpc</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcpxmlrpc.FCPXMLRPCServer-class.html"
target="_top">no 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"> </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"> </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"> Inherited from
ThreadingMixIn</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> Inherited from TCPServer</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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"> </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"> Inherited from
SimpleXMLRPCDispatcher</th></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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"> </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"> </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"> </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"> </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() => ['add', 'subtract', 'multiple']</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => "Adds two integers
+together"</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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') => [double, int, int]</td></tr>
+<tr><td align="right" valign="top" width="15%"><font
size="-1"> </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]}, ...]) =>
+[[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"> 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"> 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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 fcpxmlrpc</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="fcpxmlrpc.FreenetXMLRPCRequestHandler-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Help </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 - Python client interface to Freenet 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a href="help.html"
target="_top">no 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> <br>...<br> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Help </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Index </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a href="indices.html"
target="_top">no 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th bgcolor="#70b0f0"
class="navselect"> Index </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="sitemgr-module.html" target="_top">no 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"> </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 </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 </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 </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 </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 </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 </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 sitemgr</a> ::
+ Class 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a
href="sitemgr.SiteMgr-class.html"
target="_top">no 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 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 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 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 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 private</a> | hide 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 private</a> | hide 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 private</a> | hide 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 private</a> | hide 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 of 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 private</a> | hide 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"> Trees </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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 private</a> | hide private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a
href="frames.html"target="_top">frames</a> | <a href="trees.html"
target="_top">no 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"> <a class="navbar"
href="trees.html">Trees</a> </th>
+ <th class="navbar"> <a class="navbar"
href="indices.html">Index</a> </th>
+ <th class="navbar"> <a class="navbar"
href="help.html">Help</a> </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 - Python client interface to Freenet 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>