[Twisted-web] Nevow: How to use sessions?

Andrea Arcangeli andrea at cpushare.com
Wed Dec 15 03:25:36 MST 2004


On Tue, Dec 14, 2004 at 08:01:06AM -0800, Donovan Preston wrote:
> compy.registerAdapter(UserManager, GuardSession, IUserManager)
> 
> In this way, when you say IUserManager(ISession(ctx)) without having 
> previously called setComponent on the session with the IUserManager 
> interface, your UserManager adapter will be constructed and set on the 
> session for you automatically. Future calls to 
> IUserManager(ISession(ctx)) will return the same instance.
> 
> Hope this helps,

It helped a lot thanks. I assume UserManager must inherit compy.Adapter
and IIUserManager must inherit compy.Interface.

I've some more question ;)

1) Is it possible to "unregister" and free the memory for the while
UserManager adapter istance? The way I understand it, after the istance
of UserManager is created, it gets linked by compy to the session
istance. Now I could delete all members from the "UserManager" istance
to release memory, but the UserManager would be still linked (and in
turn allocated in memory) until the session expires. Of course I assume
all istances associated to an instance via compy.registerAdapter(..,
GuardSession,... ) will be automatically garbage collected when the
session expires.

2) am I right I can vary the length of a session with something like
this?

	nevow_resource = guard.SessionWrapper(portal_obj)
	nevow_resource.sessionLifetime = 300

3) what is the difference between compy.Interface and
components.Interface?

Thanks.



More information about the Twisted-web mailing list