NGImap4 Library =============== NSUserDefaults ============== Default | Type | Example Value ============================================================= ImapDebugEnabled BOOL NO ProfileImapEnabled BOOL NO ShowNonExistentFolder BOOL NO FetchNewUnseenMessagesInSubFoldersOnDemand BOOL NO ImapLogEnabled ImapPreventConnectionExceptions NGImapMaxConnectionCount ImapDebugQualifierGeneration ImapSortEncoding ImapSubscribedCouldFailed ShowOnlySubscribedInSubFolders Notifications ============= NGImap4DataSource - postDataSourceChangedNotification - observes: - LSWImapMailWasDeleted (resets DS) - LSWImapMailFolderWasDeleted (resets DS + folder) - LSWImapMailFlagsChanged (post DS changed notification) NGImap4Message - Update: this is now coordinated using a specialized notification mechanism attached to the folder - used to broadcast changes to messages with the same uid? - not reliable across accounts?! - posts: _addFlagNotificationName + _removeFlagNotificationName NGImap4MessageAddFlag_ + folder + uid NGImap4MessageRemoveFlag_ + folder + uid - observes: the above notifications (object is nil) NGImap4Folder - used to broadcast changes to folders with the same path? - not reliable across accounts?! - -resetFolder posts: "NGImap4FolderReset_" + [self absoluteName] - -resetSubFolders posts: "NGImap4SubFolderReset_" + [self absoluteName] - observes: the above notifications on its own folder name (object is nil) Parsing/Fetching ================ a) NGImap4Client issues fetch command and parses "raw" response b) NGImap4ResponseNormalizer "normalizes" the "raw" response to a dict (?) c) NGImap4Folder issues _buildMessagesFromFetch: - 'fetch' dict key contains array of 'normalized raw' entries - uses NGMimeMessageParser and NGDataStream to parse 'raw' header Notes ===== - folder hierarchies are cached and synchronized using a somewhat broken notification system - you can trigger a reload of the subfolders by calling -resetSubFolders, eg on the context's -serverRoot or -inboxFolder - TODO: find out whether this is a deep operation - resetSpecialFolders might also help, this 'nils' the default folders Class-Hierachy ============== NSObject NGImap4Client NGImap4Context NGImap4Folder NGImap4Message NGImap4ResponseParser NGImap4FolderFlags NGImap4FolderMailRegistry NSException NGImap4Exception NGImap4ConnectionException NGImap4ParserException NGImap4ResponseException NGImap4SearchException EODataSource NGImap4DataSource NGFileManager NGImap4FileManager Categories ========== Protocols ========= NGImap4ResponseReceiver Log Topics ========== -- Helge Hess (helge.hess@opengroupware.org) created, MDlink online service center, 1998-10-22 updated 2002-07-09 updated 2004-01-15