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/. */
7 include protocol PChildToParentStream;
8 include protocol PParentToChildStream;
9 include protocol PRemoteLazyInputStream;
11 using struct mozilla::void_t
12 from "ipc/IPCMessageUtils.h";
23 struct StringInputStreamParams
28 struct FileInputStreamParams
30 uint32_t fileDescriptorIndex;
31 int32_t behaviorFlags;
35 struct MultiplexInputStreamParams
37 InputStreamParams[] streams;
38 uint32_t currentStream;
40 bool startedReadingCurrent;
43 struct SlicedInputStreamParams
45 InputStreamParams stream;
52 struct RemoteLazyInputStreamRef
59 union RemoteLazyInputStreamParams
61 RemoteLazyInputStreamRef;
62 PRemoteLazyInputStream;
65 union IPCRemoteStreamType
71 struct IPCRemoteStreamParams
73 // If this is true, the stream will send data only when the first operation
74 // is done on the destination side. The benefit of this is that we do not
75 // send data if not needed. On the other hand, it could have a performance
79 IPCRemoteStreamType stream;
84 union InputStreamParams
86 StringInputStreamParams;
87 FileInputStreamParams;
88 BufferedInputStreamParams;
89 MIMEInputStreamParams;
90 MultiplexInputStreamParams;
91 SlicedInputStreamParams;
92 RemoteLazyInputStreamParams;
93 InputStreamLengthWrapperParams;
94 IPCRemoteStreamParams;
95 EncryptedFileInputStreamParams;
98 struct EncryptedFileInputStreamParams
100 FileInputStreamParams fileInputStreamParams;
105 struct BufferedInputStreamParams
107 InputStreamParams? optionalStream;
111 struct MIMEInputStreamParams
113 InputStreamParams? optionalStream;
114 HeaderEntry[] headers;
118 struct InputStreamLengthWrapperParams
120 InputStreamParams stream;
126 } // namespace mozilla