]> gitweb.factorcode.org Git - factor.git/blob - basis/furnace/alloy/alloy.factor
ef4270221fd376809088a7d1ee0365272cca9129
[factor.git] / basis / furnace / alloy / alloy.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel sequences db.tuples timers calendar db fry
4 furnace.db
5 furnace.cache
6 furnace.asides
7 furnace.sessions
8 furnace.conversations
9 furnace.auth.providers
10 furnace.auth.login.permits ;
11 IN: furnace.alloy
12
13 CONSTANT: state-classes { session aside conversation permit }
14
15 : init-furnace-tables ( -- )
16     state-classes ensure-tables
17     user ensure-table ;
18
19 : <alloy> ( responder db -- responder' )
20     [ [ init-furnace-tables ] with-db ] keep
21     [
22         <asides>
23         <conversations>
24         <sessions>
25     ] dip
26     <db-persistence> ;
27
28 : start-expiring ( db -- )
29     '[
30         _ [ state-classes [ expire-state ] each ] with-db
31     ] 5 minutes every drop ;