On 02:21 pm, petshm...@googlemail.com wrote:
On Thu, Aug 5, 2010 at 3:32 PM, Alan Franzoni <mail...@franzoni.eu>
wrote:
On 8/4/10 1:30 PM, Pet wrote:
AFAIU this works only if Factory is subclassing
protocol.ServerFactory, XMLRPCFactory subclasses server.Site, where
protocol attribute is not present
server.Site subclasses �http.HTTPFactory which, in turns, subclasses
protocol.ServerFactory:
http://twistedmatrix.com/documents/10.0.0/api/twisted.web.server.Site.html
by the way, if I now understand your question: just subclass XMLRPC
and
create your own xmlrpc resource class by adding methods like
xmlrpc_somemethod
xmlrpc_othermethod
then add such handler to your server.Site, and you're done. Your
method
will be invoked once per request.
what I've tried to do is to have objects, which were members of
XMLRPC. And these objects would have some internal state which is
isolated per request. But each new request has changed this objects,
because xmlrpc is created once and not for each request or connection.
I've solved this by modifying render_POST where I create those objects
before calling requested function and so they lives only there without
being overwritten by new request. Ugh... It's might be ugly, but works
for me
If you want a new XMLRPC instance per request, then create a new one per
request. http://twistedmatrix.com/documents/current/web/howto/web-in-60
/dynamic-dispatch.html may help.
Re-using a single XMLRPC instance and mangling its state in render_POST
will break as soon as your server receives two overlapping requests.
Jean-Paul
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python