added weak list to ldap-session type
This commit is contained in:
parent
ec7a66d221
commit
e0ca103bd4
|
@ -1,12 +1,35 @@
|
||||||
|
;;; weak lists
|
||||||
|
|
||||||
|
(define (cons-weak obj list)
|
||||||
|
(cons (make-weak-pointer obj) list))
|
||||||
|
|
||||||
|
(define (filter-collected list)
|
||||||
|
(filter (lambda (weak-pointer)
|
||||||
|
(not (weak-pointer-ref weak-pointer)))
|
||||||
|
list))
|
||||||
|
|
||||||
|
;;; ldap-session
|
||||||
|
|
||||||
(define-record-type ldap-session :ldap-session
|
(define-record-type ldap-session :ldap-session
|
||||||
(make-ldap-session c-pointer bound? options)
|
(make-ldap-session c-pointer bound? options weak-list)
|
||||||
ldap-session?
|
ldap-session?
|
||||||
(c-pointer ldap-session-c-pointer)
|
(c-pointer ldap-session-c-pointer)
|
||||||
(bound? ldap-session-bound? set-ldap-session-bound?!)
|
(bound? ldap-session-bound? set-ldap-session-bound?!)
|
||||||
(options ldap-session-options set-ldap-session-options!))
|
(options ldap-session-options set-ldap-session-options!)
|
||||||
|
(weak-list ldap-session-weak-list set-ldap-session-weak-list!))
|
||||||
|
|
||||||
|
(define (ldap-session-weak-list-add! session thing)
|
||||||
|
(set-ldap-session-weak-list!
|
||||||
|
session (cons-weak thing (ldap-session-weak-list session))))
|
||||||
|
|
||||||
|
(define (ldap-session-weak-list-filter! session)
|
||||||
|
(set-ldap-session-weak-list!
|
||||||
|
session (filter-collected (ldap-session-weak-list session))))
|
||||||
|
|
||||||
(define-exported-binding "ldap-session" :ldap-session)
|
(define-exported-binding "ldap-session" :ldap-session)
|
||||||
|
|
||||||
|
;;; ldap session options
|
||||||
|
|
||||||
(define-record-type session-options :session-options
|
(define-record-type session-options :session-options
|
||||||
(make-session-options implicit-unbind-ok? auto-unbind?)
|
(make-session-options implicit-unbind-ok? auto-unbind?)
|
||||||
session-options?
|
session-options?
|
||||||
|
|
Loading…
Reference in New Issue