2 Copyright (C) 2000-2005 SKYRIX Software AG
4 This file is part of SOPE.
6 SOPE is free software; you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
11 SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with SOPE; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21 #ifndef __Networking_NGImap4_NGImap4Folder_H__
22 #define __Networking_NGImap4_NGImap4Folder_H__
24 #import <Foundation/Foundation.h>
25 #import <NGMime/NGPart.h>
26 #import <NGImap4/NGImap4Support.h>
28 #define USE_MESSAGE_CACHE 0
30 @class NSArray, NSString, NSMutableArray, NSNumber;
31 @class EOGlobalID, EOQualifier;
33 @class NGImap4Context, NGImap4Message, NGImap4FolderMailRegistry;
34 @class NGImap4FolderFlags;
36 @interface NGImap4Folder : NSObject <NGImap4Folder>
39 NGImap4FolderFlags *flags;
43 NGImap4Context *context;
46 NSArray *msn2UidCache;
48 id<NGImap4Folder> parentFolder; // not retained
51 NSArray *messageFlags;
69 NGImap4FolderMailRegistry *mailRegistry;
74 NSMutableArray *messages;
75 NSMutableArray *qualifierCache;
76 NSMutableArray *messagesCache;
80 - (id)initWithContext:(NGImap4Context *)_context
81 name:(NSString *)_name
82 flags:(NSArray *)_flags
83 parentFolder:(id<NGImap4Folder>)_folder;
85 - (BOOL)isEqual:(id)_obj;
86 - (BOOL)isEqualToImap4Folder:(NGImap4Folder *)_folder;
90 - (NGImap4Context *)context;
91 - (NSException *)lastException;
92 - (void)resetLastException;
93 - (id<NGImap4Folder>)parentFolder;
96 - (NSString *)absoluteName;
99 - (NSData *)blobForUid:(unsigned)_mUid
100 part:(NSString *)_part;
102 - (NSArray *)fetchSortedMessages:(NSArray *)_so;
104 - (void)bulkFetchHeadersFor:(NSArray *)_array inRange:(NSRange)_aRange;
105 - (void)bulkFetchHeadersFor:(NSArray *)_array inRange:(NSRange)_aRange
106 withAllUnread:(BOOL)_allUnread;
108 - (NSArray *)fetchSortedMessages:(NSRange)_aRange
109 sortOrderings:(NSArray *)_so;
110 - (NSArray *)messageFlags;
111 - (NSArray *)messages;
112 - (NSArray *)messagesForQualifier:(EOQualifier *)_qualifier;
113 - (NSArray *)messagesForQualifier:(EOQualifier *)_qualifier maxCount:(int)_cnt;
114 - (NSArray *)subFolders;
115 - (NGImap4Folder *)subFolderWithName:(NSString *)_name
116 caseInsensitive:(BOOL)_caseIns;
117 - (NGImap4Message *)messageForUid:(unsigned)_mUid
118 sortOrderings:(NSArray *)_so
119 onlyUnread:(BOOL)_unread
120 nextMessage:(BOOL)_next;
131 - (BOOL)hasnochildren;
135 /* this folder or its subfolders */
137 - (BOOL)hasNewMessagesSearchRecursiv:(BOOL)_recursiv;
138 - (BOOL)hasUnseenMessagesSearchRecursiv:(BOOL)_recursiv;
139 - (BOOL)hasNewMessagesSearchRecursiv:(BOOL)_rec fetchOnDemand:(BOOL)_fetch;
140 - (BOOL)hasUnseenMessagesSearchRecursiv:(BOOL)_rec fetchOnDemand:(BOOL)_fetch;
144 - (void)processResponse:(NSDictionary *)_dict;
149 /* if imm == YES syncState will be ignored */
150 - (BOOL)selectImmediately:(BOOL)_imm;
153 - (BOOL)addFlag:(NSString *)_flag toMessages:(NSArray *)_messages;
154 - (BOOL)removeFlag:(NSString *)_flag fromMessages:(NSArray *)_messages;
155 - (BOOL)renameTo:(NSString *)_name;
157 /* returns quota in kBytes */
160 - (BOOL)isOverQuota; /* evaluate ALERT sequences during select */
162 - (BOOL)deleteMessages:(NSArray *)_messages;
163 - (BOOL)deleteAllMessages;
164 - (BOOL)moveMessages:(NSArray *)_messages toFolder:(NGImap4Folder *)_folder;
165 - (BOOL)copyMessages:(NSArray *)_messages toFolder:(NGImap4Folder *)_folder;
166 - (BOOL)appendMessage:(NSData *)_msg;
168 - (BOOL)deleteSubFolder:(NGImap4Folder *)_folder;
169 - (BOOL)createSubFolderWithName:(NSString *)_name;
170 - (BOOL)copySubFolder:(NGImap4Folder *)_f to:(NGImap4Folder *)_folder;
171 - (BOOL)moveSubFolder:(NGImap4Folder *)_f to:(NGImap4Folder *)_folder;
176 - (void)resetSubFolders;
182 - (EOGlobalID *)serverGlobalID;
183 - (EOGlobalID *)globalID;
185 /* message factory */
187 - (id)messageWithUid:(unsigned int)_uid;
189 /* message registry */
191 - (NGImap4FolderMailRegistry *)mailRegistry;
195 #endif /* __Networking_NGImap4_NGImap4Folder_H__ */