Change FOLDER-URL to be a slot in <FOLDER>.
authorChris Hanson <org/chris-hanson/cph>
Tue, 2 May 2000 21:42:08 +0000 (21:42 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 2 May 2000 21:42:08 +0000 (21:42 +0000)
v7/src/imail/imail-core.scm
v7/src/imail/imail-file.scm
v7/src/imail/imail-imap.scm

index 16f6e6f3b0b0b8eedf8b19c83a5f8ea202ca1f1f..361038b5a17829c71fa69cd6ced8aeea7c226d55 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imail-core.scm,v 1.34 2000/05/02 21:09:43 cph Exp $
+;;; $Id: imail-core.scm,v 1.35 2000/05/02 21:42:06 cph Exp $
 ;;;
 ;;; Copyright (c) 1999-2000 Massachusetts Institute of Technology
 ;;;
 (define-generic url-user-id (url))
 (define-method url-user-id ((url <url>)) url #f)
 \f
-(define (get-memoized-folder url)
-  (let ((folder (hash-table/get memoized-folders url #f)))
-    (and folder
-        (let ((folder (weak-car folder)))
-          (if (and folder (%folder-valid? folder))
-              folder
-              (begin
-                (unmemoize-folder url)
-                #f))))))
-
-(define (memoize-folder folder)
-  (hash-table/put! memoized-folders (folder-url folder) (weak-cons folder #f))
-  folder)
-
-(define (unmemoize-folder url)
-  (hash-table/remove! memoized-folders url))
-
-(define memoized-folders
-  (make-eq-hash-table))
-\f
 ;;;; Server operations
 
 ;;; In "online" mode, these server operations directly modify the
 ;;;; Folder type
 
 (define-class <folder> ()
+  (url define accessor)
   (modified? define standard
             initial-value #t)
   (modification-event define accessor
        (set-folder-modified?! folder #f)
        (event-distributor/invoke! (folder-modification-event folder)
                                   folder))))
+
+(define (get-memoized-folder url)
+  (let ((folder (hash-table/get memoized-folders url #f)))
+    (and folder
+        (let ((folder (weak-car folder)))
+          (if (and folder (%folder-valid? folder))
+              folder
+              (begin
+                (unmemoize-folder url)
+                #f))))))
+
+(define (memoize-folder folder)
+  (hash-table/put! memoized-folders (folder-url folder) (weak-cons folder #f))
+  folder)
+
+(define (unmemoize-folder url)
+  (hash-table/remove! memoized-folders url))
+
+(define memoized-folders
+  (make-eq-hash-table))
 \f
 ;;;; Folder operations
 
 
 (define-generic %folder-valid? (folder))
 
-;; -------------------------------------------------------------------
-;; Return the URL of FOLDER.
-
-(define-generic folder-url (folder))
-
 ;; -------------------------------------------------------------------
 ;; Return the number of messages in FOLDER.
 
index 3e00599088793f07967dc0cb4211c8581de69b57..ba81d03d65a5632579e4e24e67eae2fc1eea3ebb 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imail-file.scm,v 1.11 2000/05/02 21:09:51 cph Exp $
+;;; $Id: imail-file.scm,v 1.12 2000/05/02 21:42:07 cph Exp $
 ;;;
 ;;; Copyright (c) 1999-2000 Massachusetts Institute of Technology
 ;;;
@@ -58,7 +58,6 @@
 ;;;; Folder
 
 (define-class <file-folder> (<folder>)
-  (url accessor folder-url)
   (messages define standard initial-value '())
   (modification-time define standard initial-value #f))
 
index e496a64930ac260304ca7ae9a33e026a9eb1536d..f2ad6e23c22e1bfc2269bde68770efb2c6cf0981 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imail-imap.scm,v 1.9 2000/05/02 21:08:57 cph Exp $
+;;; $Id: imail-imap.scm,v 1.10 2000/05/02 21:42:08 cph Exp $
 ;;;
 ;;; Copyright (c) 1999-2000 Massachusetts Institute of Technology
 ;;;
 \f
 ;;;; Folder datatype
 
-(define-class (<imap-folder> (constructor (connection url))) (<folder>)
+(define-class (<imap-folder> (constructor (url connection))) (<folder>)
   (connection define accessor)
-  (url accessor folder-url)
   (allowed-flags define standard)
   (permanent-flags define standard)
   (uidvalidity define standard
 
 (define-method %open-folder ((url <imap-url>))
   (let ((connection (get-imap-connection url)))
-    (let ((folder (make-imap-folder connection url)))
+    (let ((folder (make-imap-folder url connection)))
       (select-imap-folder connection folder)
       (if (not (imap:command:select connection (imap-url-mailbox url)))
          (select-imap-folder connection #f))