Develop and Download Open Source Software

Browse CVS Repository

Annotation of /undmail/guiproto/DUMMailBox.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Sat Jan 25 13:23:47 2003 UTC (21 years, 2 months ago) by footashida
Branch: MAIN
*** empty log message ***

1 footashida 1.1 #import "DUMMailBox.h"
2     #import "DUMMail.h"
3    
4    
5     @implementation DUMMailBox
6     // Private Method
7     -(void)readMail:(NSString *)path{
8     NSRange textRange = NSMakeRange(0, 0);
9     NSRange lineRange = NSMakeRange(0, 0);
10     NSData *data;
11     NSString *mailFile;
12     NSMutableString *buf;
13     NSFileHandle *file;
14    
15     if(!path){
16     return;
17     }
18    
19     file = [NSFileHandle fileHandleForReadingAtPath:path];
20     data = [file readDataToEndOfFile];
21     mailFile = [[NSString alloc] initWithData:data encoding:NSJapaneseEUCStringEncoding];
22    
23     // バッファサイズの数字はいいかげん。
24     buf = [NSMutableString stringWithCapacity:500];
25    
26     // メールファイルを、1メールずつに切り分ける
27     textRange = NSMakeRange(0, [mailFile length]);
28     while(textRange.length > 0){
29     NSString *line;
30     lineRange = [mailFile lineRangeForRange:
31     NSMakeRange(textRange.location, 0)];
32     line = [mailFile substringWithRange:lineRange];
33    
34     if([buf length] != 0 && [line hasPrefix:@"From "]){
35     DUMMail *mail = [[DUMMail alloc] initWithMailData:buf];
36     [mails addObject:mail];
37     // NSLog(@"%@", mail);
38     [mail release];
39     // バッファをクリア
40     [buf deleteCharactersInRange:NSMakeRange(0, [buf length])];
41     }
42     [buf appendString:line];
43    
44     textRange.location = NSMaxRange(lineRange);
45     textRange.length -= lineRange.length;
46     }
47     [data release];
48     [mailFile release];
49     NSLog(@"%i mail files\n", [mails count]);
50     }
51    
52    
53     -(id)initWithName:(NSString *)name dataFilePath:path;{
54     self = [super init];
55     mailBoxName = name;
56     [mailBoxName retain];
57     childMailBox = [[NSMutableDictionary alloc] init];
58     childMailBoxNameArray = [[NSMutableArray alloc] init];
59     mails = [[NSMutableArray alloc] init];
60     [self readMail:path];
61     return self;
62     }
63     -(void)dealloc{
64     [mailBoxName release];
65     [childMailBox release];
66     [mails release];
67     [super dealloc];
68     }
69     -(NSString *)name{
70     return mailBoxName;
71     }
72     -(void)addMail:(DUMMail *)mail{
73     [mails addObject:mail];
74     }
75     -(unsigned int)countMailBoxes{
76     return [childMailBoxNameArray count];
77     }
78     -(unsigned int)countMail{
79     return [mails count];
80     }
81     -(void)addMailBox:(DUMMailBox *)mailBox{
82     [childMailBox setObject:mailBox forKey:[mailBox name]];
83     [childMailBoxNameArray addObject:[mailBox name]];
84     }
85     -(DUMMailBox *)mailBoxAtIndex:(unsigned int)index{
86     NSString *key = [childMailBoxNameArray objectAtIndex:index];
87     return [childMailBox objectForKey:key];
88     }
89     -(DUMMail *)mailAtIndex:(unsigned int)index{
90     return [mails objectAtIndex:index];
91     }
92    
93     @end

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26