2009-04-04 05:10:13 -04:00
|
|
|
USING: classes kernel accessors sequences assocs mongodb.tuple.collection ;
|
|
|
|
|
|
|
|
IN: mongodb.tuple.state
|
|
|
|
|
|
|
|
<PRIVATE
|
|
|
|
|
|
|
|
CONSTANT: MDB_TUPLE_INFO "_mfd_t_info"
|
|
|
|
CONSTANT: MDB_DIRTY_FLAG "d?"
|
|
|
|
CONSTANT: MDB_PERSISTENT_FLAG "p?"
|
|
|
|
|
|
|
|
PRIVATE>
|
|
|
|
|
|
|
|
: <tuple-info> ( tuple -- tuple-info )
|
|
|
|
class V{ } clone tuck
|
|
|
|
[ [ name>> ] dip push ]
|
|
|
|
[ [ vocabulary>> ] dip push ] 2bi ; inline
|
|
|
|
|
|
|
|
: tuple-info ( assoc -- tuple-info )
|
|
|
|
[ MDB_TUPLE_INFO ] dip at ; inline
|
|
|
|
|
|
|
|
: set-tuple-info ( tuple assoc -- )
|
|
|
|
[ <tuple-info> MDB_TUPLE_INFO ] dip set-at ; inline
|
|
|
|
|
|
|
|
: tuple-info? ( assoc -- ? )
|
|
|
|
[ MDB_TUPLE_INFO ] dip key? ;
|
|
|
|
|
|
|
|
: tuple-meta ( tuple -- assoc )
|
|
|
|
dup _mfd>> [ ] [ H{ } clone [ >>_mfd ] keep ] if* nip ; inline
|
|
|
|
|
|
|
|
: dirty? ( tuple -- ? )
|
2009-04-04 10:13:56 -04:00
|
|
|
MDB_DIRTY_FLAG tuple-meta at ;
|
2009-04-04 05:10:13 -04:00
|
|
|
|
|
|
|
: set-dirty ( tuple -- )
|
2009-04-04 10:13:56 -04:00
|
|
|
[ t MDB_DIRTY_FLAG ] dip tuple-meta set-at ;
|
2009-04-04 05:10:13 -04:00
|
|
|
|
|
|
|
: persistent? ( tuple -- ? )
|
2009-04-04 10:13:56 -04:00
|
|
|
MDB_PERSISTENT_FLAG tuple-meta at ;
|
2009-04-04 05:10:13 -04:00
|
|
|
|
|
|
|
: set-persistent ( tuple -- )
|
2009-04-04 10:13:56 -04:00
|
|
|
[ t MDB_PERSISTENT_FLAG ] dip tuple-meta set-at ;
|
2009-04-04 05:10:13 -04:00
|
|
|
|
|
|
|
: needs-store? ( tuple -- ? )
|
2009-04-04 10:13:56 -04:00
|
|
|
[ persistent? not ] [ dirty? ] bi or ;
|
2009-04-04 05:10:13 -04:00
|
|
|
|