Class for bidirectional object relations, a subclass of +Link. Expects a (symbolic) attribute, a list of classes as type of the referred database object (of class +Entity), and two optional functions called when 'put'ting and/or 'get'ting a value. A +Joint corresponds to two +Links, where the attribute argument is the relation of the back-link in the referred object. See also Database.
(class +Ord +Entity)                   # Order class
(rel pos (+List +Joint) ord (+Pos))    # List of positions in that order
(class +Pos +Entity)                   # Position class
(rel ord (+Joint) pos (+Ord))          # Back-link to the parent order
(job 'lst . prg) -> any
Executes a job within its own environment (as specified by symbol-value pairs in lst). The current values of all symbols are saved, the symbols are bound to the values in lst, prg is executed, then the (possibly modified) symbol values are (destructively) stored in the environment list, and the symbols are restored to their original values. The return value is the result of prg. Typically used in curried functions and *Run tasks. See also env, bind, let, use and state.
: (de tst ()
   (job '((A . 0) (B . 0))
      (println (inc 'A) (inc 'B 2)) ) )
-> tst
: (tst)
1 2
-> 2
: (tst)
2 4
-> 4
: (tst)
3 6
-> 6
: (pp 'tst)
(de tst NIL
   (job '((A . 3) (B . 6))
      (println (inc 'A) (inc 'B 2)) ) )
-> tst
(journal ['T] 'any ..) -> T
Reads journal data from the files with the names any, and writes all changes to the database. If the first argument is T, the replication journal and transaction logs are disabled. See also pool.
: (journal "db.log")
-> T