/usr/include/GNUstep/NGMime/NGMimePartGenerator.h is in libsope-dev 2.2.9-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | /*
Copyright (C) 2000-2005 SKYRIX Software AG
This file is part of SOPE.
SOPE is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public
License along with SOPE; see the file COPYING. If not, write to the
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
#ifndef __NGMimeGenerator_NGMimePartGenerator_H__
#define __NGMimeGenerator_NGMimePartGenerator_H__
#import <Foundation/NSObject.h>
#import <NGMime/NGPart.h>
#import <NGMime/NGMimeGeneratorProtocols.h>
@class NSMutableData, NSData, NSString, NSEnumerator;
@class NGHashMap, NGMutableHashMap;
@class NGMimeType, NGMimePartGenerator;
@interface NGMimePartGenerator : NSObject <NGMimePartGenerator>
{
@protected
NSMutableData *result; // result
id<NGMimePart> part; // for generating
id delegate; // not retained to prevent retain cycles
BOOL useMimeData;
void (*appendBytes)(id,SEL,const void*,unsigned int); /* cached method
for result */
struct {
BOOL generatorGenerateDataForHeaderField:1;
BOOL generatorGeneratorForBodyOfPart:1;
BOOL generatorGenerateDataForBodyOfPart:1;
} delegateRespondsTo;
}
+ (id)mimePartGenerator;
/* generating mime from MimeMessage */
- (NSData *)generateMimeFromPart:(id<NGMimePart>)_part;
/* generate mime from part and store it in the returned filename */
- (NSString *)generateMimeFromPartToFile:(id<NGMimePart>)_part;
/* build data with current mime-header and the _additionalHeaders;
_additionalHeaders come from generateBodyData (boundary, encoding, ...) */
- (NSData *)generateHeaderData:(NGHashMap *)_additionalHeaders;
/* build the body; use -generatorForBodyOfPart */
- (NSData *)generateBodyData:(NGMutableHashMap *)_additionalHeaders;
/* call generateHeaderData and generateBodyData; manage additionalHeaders */
- (void)generateData;
/* set result and other stuff */
- (BOOL)prepareForGenerationOfPart:(id<NGMimePart>)_part;
/* setting the delegate */
- (void)setDelegate:(id)_delegate;
- (id)delegate;
/* ----- hooks for subclasses ----- */
/*
Generate a prefix and/or a suffix for a part. Can be used to write
HTTP response lines before the part.
*/
- (BOOL)generatePrefix;
- (void)generateSuffix;
/* if no content-type is set */
- (NGMimeType *)defaultContentTypeForPart:(id<NGMimePart>)_part;
/* returns header field generator for the specified field */
- (id<NGMimeHeaderFieldGenerator>)generatorForHeaderField:(NSString *)_name;
/* build data for the specified header; employ -generatorForHeaderField */
- (NSData *)generateDataForHeaderField:(NSString *)_headerField
value:(id)_value;
/* build data with the specified header; */
- (BOOL)isMultiValueCommaHeaderField:(NSString *)_headerField;
- (BOOL)appendHeaderField:(NSString *)_field values:(NSEnumerator *)_values
toData:(NSMutableData *)_data;
/* looking for a NGMimeBodyGenerator in dependece to the content-type */
- (id<NGMimeBodyGenerator>)generatorForBodyOfPart:(id<NGMimePart>)_part;
/* ----- end hooks for subclasses ----- */
/* accessors */
- (id<NGMimePart>)part;
@end
@interface NSObject(NGMimePartGenerator)
/*
The delegete has the opportunity to generate data for specified
header-field with the given enumerator. The classes of the values depends
on the _headerField name, normaly they are NSStrings
*/
- (NSData *)mimePartGenerator:(id<NGMimePartGenerator>)_gen
generateDataForHeaderField:(NSString *)_headerField
value:(NSEnumerator *)_value;
/*
The delegate can choose, which generator should be used, to generate
the specified NGMimePart.
*/
- (id<NGMimeBodyGenerator>)mimePartGenerator:(id<NGMimePartGenerator>)_gen
generatorForBodyOfPart:(id<NGMimePart>)_part;
/*
The delegate has the opportunity to generate the whole body-part. Additional
headers like boundary can be set in _additionalHeaders.
*/
- (NSData *)mimePartGenerator:(id<NGMimePartGenerator>)_gen
generateDataForBodyOfPart:(id<NGMimePart>)_part
additionalHeaders:(NGMutableHashMap *)_additionalHeaders;
/*
The delegate can set prefix and suffix for a multipart.
*/
- (NSString *)multipartBodyGenerator:(id<NGMimeBodyGenerator>)_bodyGen
prefixForPart:(id<NGMimePart>)_part;
- (NSString *)multipartBodyGenerator:(id<NGMimeBodyGenerator>)_bodyGen
suffixForPart:(id<NGMimePart>)_part;
/*
The delegate can select which NGMimeBodyGenerator should de used
for generate the given part.
*/
- (id<NGMimePartGenerator>)multipartBodyGenerator:(id<NGMimeBodyGenerator>)
generatorForPart:(id<NGMimePart>)_part;
- (BOOL)useMimeData;
- (void)setUseMimeData:(BOOL)_b;
@end
#endif // __NGMimeGenerator_NGMimePartGenerator_H__
|