Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1295)

Side by Side Diff: gecko-sdk/include/nsIInputStream.h

Issue 20346: Version 1.8 of gecko-sdk. Downloaded from here:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gecko-sdk/include/nsIIOService.h ('k') | gecko-sdk/include/nsIInterfaceRequestor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /*
2 * DO NOT EDIT. THIS FILE IS GENERATED FROM c:/builds/tinderbox/XR-Mozilla1.8.0 -Release/WINNT_5.2_Depend/mozilla/xpcom/io/nsIInputStream.idl
3 */
4
5 #ifndef __gen_nsIInputStream_h__
6 #define __gen_nsIInputStream_h__
7
8
9 #ifndef __gen_nsISupports_h__
10 #include "nsISupports.h"
11 #endif
12
13 /* For IDL files that don't want to include root IDL files. */
14 #ifndef NS_NO_VTABLE
15 #define NS_NO_VTABLE
16 #endif
17 class nsIInputStream; /* forward declaration */
18
19 /**
20 * The signature of the writer function passed to ReadSegments. This
21 * is the "consumer" of data that gets read from the stream's buffer.
22 *
23 * @param aInStream stream being read
24 * @param aClosure opaque parameter passed to ReadSegments
25 * @param aFromSegment pointer to memory owned by the input stream
26 * @param aToOffset amount already read (since ReadSegments was called)
27 * @param aCount length of fromSegment
28 * @param aWriteCount number of bytes read
29 *
30 * Implementers should return the following:
31 *
32 * @return NS_OK and (*aWriteCount > 0) if consumed some data
33 * @return <any-error> if not interested in consuming any data
34 *
35 * Errors are never passed to the caller of ReadSegments.
36 *
37 * NOTE: returning NS_OK and (*aWriteCount = 0) has undefined behavior.
38 *
39 * @status FROZEN
40 */
41 typedef NS_CALLBACK(nsWriteSegmentFun)(nsIInputStream *aInStream,
42 void *aClosure,
43 const char *aFromSegment,
44 PRUint32 aToOffset,
45 PRUint32 aCount,
46 PRUint32 *aWriteCount);
47
48 /* starting interface: nsIInputStream */
49 #define NS_IINPUTSTREAM_IID_STR "fa9c7f6c-61b3-11d4-9877-00c04fa0cf4a"
50
51 #define NS_IINPUTSTREAM_IID \
52 {0xfa9c7f6c, 0x61b3, 0x11d4, \
53 { 0x98, 0x77, 0x00, 0xc0, 0x4f, 0xa0, 0xcf, 0x4a }}
54
55 class NS_NO_VTABLE nsIInputStream : public nsISupports {
56 public:
57
58 NS_DEFINE_STATIC_IID_ACCESSOR(NS_IINPUTSTREAM_IID)
59
60 /**
61 * nsIInputStream
62 *
63 * @status FROZEN
64 */
65 /**
66 * Close the stream.
67 */
68 /* void close (); */
69 NS_IMETHOD Close(void) = 0;
70
71 /**
72 * @return number of bytes currently available in the stream
73 */
74 /* unsigned long available (); */
75 NS_IMETHOD Available(PRUint32 *_retval) = 0;
76
77 /**
78 * Read data from the stream.
79 *
80 * @param aBuf the buffer into which the data is to be read
81 * @param aCount the maximum number of bytes to be read
82 *
83 * @return number of bytes read (may be less than aCount).
84 * @return 0 if reached end of file
85 *
86 * @throws NS_BASE_STREAM_WOULD_BLOCK if reading from the input stream would
87 * block the calling thread (non-blocking mode only)
88 * @throws <other-error> on failure
89 */
90 /* [noscript] unsigned long read (in charPtr aBuf, in unsigned long aCount); * /
91 NS_IMETHOD Read(char * aBuf, PRUint32 aCount, PRUint32 *_retval) = 0;
92
93 /**
94 * Low-level read method that has access to the stream's underlying buffer.
95 * The writer function may be called multiple times for segmented buffers.
96 * ReadSegments is expected to keep calling the writer until either there is
97 * nothing left to read or the writer returns an error. ReadSegments should
98 * not call the writer with zero bytes to consume.
99 *
100 * @param aWriter the "consumer" of the data to be read
101 * @param aClosure opaque parameter passed to writer
102 * @param aCount the maximum number of bytes to be read
103 *
104 * @return number of bytes read (may be less than aCount)
105 * @return 0 if reached end of file (or if aWriter refused to consume data)
106 *
107 * @throws NS_BASE_STREAM_WOULD_BLOCK if reading from the input stream would
108 * block the calling thread (non-blocking mode only)
109 * @throws <other-error> on failure
110 *
111 * NOTE: this function may be unimplemented if a stream has no underlying
112 * buffer (e.g., socket input stream).
113 */
114 /* [noscript] unsigned long readSegments (in nsWriteSegmentFun aWriter, in voi dPtr aClosure, in unsigned long aCount); */
115 NS_IMETHOD ReadSegments(nsWriteSegmentFun aWriter, void * aClosure, PRUint32 a Count, PRUint32 *_retval) = 0;
116
117 /**
118 * @return true if stream is non-blocking
119 */
120 /* boolean isNonBlocking (); */
121 NS_IMETHOD IsNonBlocking(PRBool *_retval) = 0;
122
123 };
124
125 /* Use this macro when declaring classes that implement this interface. */
126 #define NS_DECL_NSIINPUTSTREAM \
127 NS_IMETHOD Close(void); \
128 NS_IMETHOD Available(PRUint32 *_retval); \
129 NS_IMETHOD Read(char * aBuf, PRUint32 aCount, PRUint32 *_retval); \
130 NS_IMETHOD ReadSegments(nsWriteSegmentFun aWriter, void * aClosure, PRUint32 a Count, PRUint32 *_retval); \
131 NS_IMETHOD IsNonBlocking(PRBool *_retval);
132
133 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object. */
134 #define NS_FORWARD_NSIINPUTSTREAM(_to) \
135 NS_IMETHOD Close(void) { return _to Close(); } \
136 NS_IMETHOD Available(PRUint32 *_retval) { return _to Available(_retval); } \
137 NS_IMETHOD Read(char * aBuf, PRUint32 aCount, PRUint32 *_retval) { return _to Read(aBuf, aCount, _retval); } \
138 NS_IMETHOD ReadSegments(nsWriteSegmentFun aWriter, void * aClosure, PRUint32 a Count, PRUint32 *_retval) { return _to ReadSegments(aWriter, aClosure, aCount, _ retval); } \
139 NS_IMETHOD IsNonBlocking(PRBool *_retval) { return _to IsNonBlocking(_retval); }
140
141 /* Use this macro to declare functions that forward the behavior of this interfa ce to another object in a safe way. */
142 #define NS_FORWARD_SAFE_NSIINPUTSTREAM(_to) \
143 NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
144 NS_IMETHOD Available(PRUint32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Available(_retval); } \
145 NS_IMETHOD Read(char * aBuf, PRUint32 aCount, PRUint32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(aBuf, aCount, _retval); } \
146 NS_IMETHOD ReadSegments(nsWriteSegmentFun aWriter, void * aClosure, PRUint32 a Count, PRUint32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadSegme nts(aWriter, aClosure, aCount, _retval); } \
147 NS_IMETHOD IsNonBlocking(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTE R : _to->IsNonBlocking(_retval); }
148
149 #if 0
150 /* Use the code below as a template for the implementation class for this interf ace. */
151
152 /* Header file */
153 class nsInputStream : public nsIInputStream
154 {
155 public:
156 NS_DECL_ISUPPORTS
157 NS_DECL_NSIINPUTSTREAM
158
159 nsInputStream();
160
161 private:
162 ~nsInputStream();
163
164 protected:
165 /* additional members */
166 };
167
168 /* Implementation file */
169 NS_IMPL_ISUPPORTS1(nsInputStream, nsIInputStream)
170
171 nsInputStream::nsInputStream()
172 {
173 /* member initializers and constructor code */
174 }
175
176 nsInputStream::~nsInputStream()
177 {
178 /* destructor code */
179 }
180
181 /* void close (); */
182 NS_IMETHODIMP nsInputStream::Close()
183 {
184 return NS_ERROR_NOT_IMPLEMENTED;
185 }
186
187 /* unsigned long available (); */
188 NS_IMETHODIMP nsInputStream::Available(PRUint32 *_retval)
189 {
190 return NS_ERROR_NOT_IMPLEMENTED;
191 }
192
193 /* [noscript] unsigned long read (in charPtr aBuf, in unsigned long aCount); */
194 NS_IMETHODIMP nsInputStream::Read(char * aBuf, PRUint32 aCount, PRUint32 *_retva l)
195 {
196 return NS_ERROR_NOT_IMPLEMENTED;
197 }
198
199 /* [noscript] unsigned long readSegments (in nsWriteSegmentFun aWriter, in voidP tr aClosure, in unsigned long aCount); */
200 NS_IMETHODIMP nsInputStream::ReadSegments(nsWriteSegmentFun aWriter, void * aClo sure, PRUint32 aCount, PRUint32 *_retval)
201 {
202 return NS_ERROR_NOT_IMPLEMENTED;
203 }
204
205 /* boolean isNonBlocking (); */
206 NS_IMETHODIMP nsInputStream::IsNonBlocking(PRBool *_retval)
207 {
208 return NS_ERROR_NOT_IMPLEMENTED;
209 }
210
211 /* End of implementation class template. */
212 #endif
213
214
215 #endif /* __gen_nsIInputStream_h__ */
OLDNEW
« no previous file with comments | « gecko-sdk/include/nsIIOService.h ('k') | gecko-sdk/include/nsIInterfaceRequestor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698