]> err.no Git - sope/blob - sope-mime/NGMime/NGMimeHeaderFieldGenerator.h
more code directory reorganizations
[sope] / sope-mime / NGMime / NGMimeHeaderFieldGenerator.h
1 /*
2   Copyright (C) 2000-2004 SKYRIX Software AG
3
4   This file is part of OpenGroupware.org.
5
6   OGo 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
9   later version.
10
11   OGo 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.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with OGo; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21 // $Id$
22
23 #ifndef __NGMime_NGHeaderFieldGenerator_H__
24 #define __NGMime_NGHeaderFieldGenerator_H__
25
26 #import <Foundation/NSObject.h>
27 #include <NGMime/NGMimeGeneratorProtocols.h>
28
29 @class NSString, NSData, NSMutableDictionary;
30
31 @interface NGMimeHeaderFieldGenerator : NSObject <NGMimeHeaderFieldGenerator>
32
33 + (id)headerFieldGenerator;
34
35 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
36   value:(id)_value;
37
38 @end
39
40 @interface NGMimeContentTypeHeaderFieldGenerator : NGMimeHeaderFieldGenerator
41 @end
42
43 @interface NGMimeContentLengthHeaderFieldGenerator : NGMimeHeaderFieldGenerator
44 @end
45
46 @interface NGMimeRFC822DateHeaderFieldGenerator : NGMimeHeaderFieldGenerator
47 @end
48
49 @interface NGMimeContentDispositionHeaderFieldGenerator :
50                                                      NGMimeHeaderFieldGenerator
51 @end
52
53 @interface NGMimeStringHeaderFieldGenerator : NGMimeHeaderFieldGenerator
54 @end
55
56 @interface NGMimeAddressHeaderFieldGenerator : NGMimeHeaderFieldGenerator
57 @end
58
59 @interface NGMimeHeaderFieldGeneratorSet : NSObject <NGMimeHeaderFieldGenerator>
60 {
61 @protected
62   NSMutableDictionary            *fieldNameToGenerate;
63   id<NGMimeHeaderFieldGenerator> defaultGenerator;
64 }
65
66 + (id)headerFieldGeneratorSet;
67 + (id)defaultRfc822HeaderFieldGeneratorSet;
68
69 - (id)init;
70 - (id)initWithDefaultGenerator:(id<NGMimeHeaderFieldGenerator>)_gen;
71
72 /* accessors */
73
74 - (void)setGenerator:(id<NGMimeHeaderFieldGenerator>)_gen
75   forField:(NSString *)_name;
76
77 - (void)setDefaultGenerator:(id<NGMimeHeaderFieldGenerator>)_gen;
78 - (id<NGMimeHeaderFieldGenerator>)_gen;
79
80 /* operation */
81
82 - (NSData *)generateDataForHeaderFieldNamed:(NSString *)_headerField
83   value:(id)_value;
84
85 @end
86
87 extern int NGEncodeQuotedPrintableMime
88 (const unsigned char *_src, unsigned _srcLen,
89  unsigned char *_dest, unsigned _destLen);
90
91 #endif // __NGMime_NGHeaderFieldGenerator_H__