Makes a lot of sense, thanks David.

Always amazes me how good and clean the design of lift is.

On Feb 3, 9:49 pm, David Pollak <feeder.of.the.be...@gmail.com> wrote:
> On Tue, Feb 3, 2009 at 1:06 PM, Alli <allilis...@gmail.com> wrote:
>
> > Evening,
>
> > During the lifetime of a session, the session may have uploaded bunch
> > of files and these need to be able to be destroyed/unlinked when a
> > session ends.
>
> > When user uploads a file it's parent dir is determined by the session
> > unique ID and the remote address of the uploader. The name is e.g. /
> > tmp/sha1 hash of session id and remote address'.  This means in order
> > to determine what to destroy I need to know what remote address the
> > session belongs to. I am setting that when uploading a file has been
> > uploaded successfully.
>
> > In Boot.scala I want to do something like:
> >  // Set session handler.
> >    LiftSession.onAboutToShutdownSession = List[LiftSession => Unit](
> >        session => {
> >          var sessId = session.uniqueId
> >          val remoteIp = session.get("remoteAddress")
> >          val myTempDir = new TempDirWeb(sessId, remoteIp)
> >          myTempDir.unlinkall()
> >        })
>
> > Problem with this is that the LiftSession.get[T]() method is package
> > private (liftweb). I can think of some other scenarios where one would
> > need access to the session variables before destroying the session.
>
> > Does this make sense or is my design just plain wrong? :).
>
> get is typesafe, so exposing it would make it not type safe.  It's always
> accessed via SessionVars.
>
> You can do something like:
>
> object ReportAddress extends SessionVar[String]("") {
>   def cleanUp() {
>     S.session.map{ sess =>
>     val td = new TempDirWeb(sess.uniqueId, this.is)
>     td.unlinkall()
>     }
>   }
>
>   registerCleanupFunc(cleanUp _)
>
> }
>
> Each SessionVar (and RequestVar) has a cleanup func that will be called as
> the Var is going away.
>
>
>
> > Cheers,
> > Alfred
>
> --
> Lift, the simply functional web frameworkhttp://liftweb.net
> Beginning Scalahttp://www.apress.com/book/view/1430219890
> Follow me:http://twitter.com/dpp
> Git some:http://github.com/dpp
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to