|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 |
|
6 using struct mozilla::void_t from "ipc/IPCMessageUtils.h"; |
|
7 include protocol PBlob; |
|
8 include protocol PFileDescriptorSet; |
|
9 |
|
10 namespace mozilla { |
|
11 namespace ipc { |
|
12 |
|
13 struct StringInputStreamParams |
|
14 { |
|
15 nsCString data; |
|
16 }; |
|
17 |
|
18 struct FileInputStreamParams |
|
19 { |
|
20 uint32_t fileDescriptorIndex; |
|
21 int32_t behaviorFlags; |
|
22 int32_t ioFlags; |
|
23 }; |
|
24 |
|
25 struct PartialFileInputStreamParams |
|
26 { |
|
27 FileInputStreamParams fileStreamParams; |
|
28 uint64_t begin; |
|
29 uint64_t length; |
|
30 }; |
|
31 |
|
32 struct MultiplexInputStreamParams |
|
33 { |
|
34 InputStreamParams[] streams; |
|
35 uint32_t currentStream; |
|
36 nsresult status; |
|
37 bool startedReadingCurrent; |
|
38 }; |
|
39 |
|
40 struct RemoteInputStreamParams |
|
41 { |
|
42 PBlob remoteBlob; |
|
43 }; |
|
44 |
|
45 union InputStreamParams |
|
46 { |
|
47 StringInputStreamParams; |
|
48 FileInputStreamParams; |
|
49 PartialFileInputStreamParams; |
|
50 BufferedInputStreamParams; |
|
51 MIMEInputStreamParams; |
|
52 MultiplexInputStreamParams; |
|
53 RemoteInputStreamParams; |
|
54 }; |
|
55 |
|
56 union OptionalInputStreamParams |
|
57 { |
|
58 void_t; |
|
59 InputStreamParams; |
|
60 }; |
|
61 |
|
62 struct BufferedInputStreamParams |
|
63 { |
|
64 OptionalInputStreamParams optionalStream; |
|
65 uint32_t bufferSize; |
|
66 }; |
|
67 |
|
68 struct MIMEInputStreamParams |
|
69 { |
|
70 OptionalInputStreamParams optionalStream; |
|
71 nsCString headers; |
|
72 nsCString contentLength; |
|
73 bool startedReading; |
|
74 bool addContentLength; |
|
75 }; |
|
76 |
|
77 union OptionalFileDescriptorSet |
|
78 { |
|
79 PFileDescriptorSet; |
|
80 void_t; |
|
81 }; |
|
82 |
|
83 } // namespace ipc |
|
84 } // namespace mozilla |