]> err.no Git - sope/blob - sope-mime/NGImap4/README
new Xcode projects
[sope] / sope-mime / NGImap4 / README
1 # $Id: README 9 2004-08-20 18:40:42Z helge $
2
3 NGImap4 Library
4   Copyright (C) 2000-2004 SKYRIX Software AG
5   
6   NSUserDefaults
7   ==============
8
9     Default                 | Type   | Example Value
10     =============================================================
11     ImapDebugEnabled          BOOL     NO
12     ProfileImapEnabled        BOOL     NO
13     ShowNonExistentFolder     BOOL     NO
14     FetchNewUnseenMessagesInSubFoldersOnDemand BOOL NO
15     ImapLogEnabled
16     ImapPreventConnectionExceptions
17     NGImapMaxConnectionCount
18     ImapDebugQualifierGeneration
19     ImapSortEncoding
20     ImapSubscribedCouldFailed
21     ShowOnlySubscribedInSubFolders
22
23   Notifications
24   =============
25   
26     NGImap4DataSource
27     - postDataSourceChangedNotification
28     - observes: 
29       - LSWImapMailWasDeleted           (resets DS)
30       - LSWImapMailFolderWasDeleted     (resets DS + folder)
31       - LSWImapMailFlagsChanged         (post DS changed notification)
32     
33     NGImap4Message
34     - Update: this is now coordinated using a specialized notification 
35               mechanism attached to the folder
36     - used to broadcast changes to messages with the same uid?
37       - not reliable across accounts?!
38     - posts: _addFlagNotificationName + _removeFlagNotificationName
39       NGImap4MessageAddFlag_    + folder + uid
40       NGImap4MessageRemoveFlag_ + folder + uid
41     - observes: the above notifications (object is nil)
42
43     NGImap4Folder
44     - used to broadcast changes to folders with the same path?
45       - not reliable across accounts?!
46     - -resetFolder posts:     "NGImap4FolderReset_"    + [self absoluteName]
47     - -resetSubFolders posts: "NGImap4SubFolderReset_" + [self absoluteName]
48     - observes: the above notifications on its own folder name (object is nil)
49
50   Parsing/Fetching
51   ================
52
53   a) NGImap4Client issues fetch command and parses "raw" response
54   b) NGImap4ResponseNormalizer "normalizes" the "raw" response to a dict (?)
55   c) NGImap4Folder issues _buildMessagesFromFetch:
56      - 'fetch' dict key contains array of 'normalized raw' entries
57      - uses NGMimeMessageParser and NGDataStream to parse 'raw' header
58
59   Notes
60   =====
61
62   - folder hierarchies are cached and synchronized using a somewhat broken
63     notification system
64     - you can trigger a reload of the subfolders by calling -resetSubFolders,
65       eg on the context's -serverRoot or -inboxFolder
66       - TODO: find out whether this is a deep operation
67     - resetSpecialFolders might also help, this 'nils' the default folders
68
69   Class-Hierachy
70   ==============
71
72     NSObject
73       NGImap4Client
74       NGImap4Context            <NGImap4ResponseReceiver>
75       NGImap4Folder
76       NGImap4Message
77       NGImap4ResponseParser
78       NGImap4FolderFlags
79       NGImap4FolderMailRegistry
80
81       NSException
82         NGImap4Exception
83           NGImap4ConnectionException
84           NGImap4ParserException
85           NGImap4ResponseException
86           NGImap4SearchException
87
88       EODataSource
89         NGImap4DataSource
90
91       NGFileManager
92         NGImap4FileManager
93
94   Categories
95   ==========
96
97   Protocols
98   =========
99
100     NGImap4ResponseReceiver
101
102   Log Topics
103   ==========
104
105 --
106 Helge Hess (helge.hess@opengroupware.org)
107 created, MDlink online service center, 1998-10-22
108 updated 2002-07-09
109 updated 2004-01-15