michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: michael@0: using struct mozilla::void_t from "ipc/IPCMessageUtils.h"; michael@0: include protocol PBlob; michael@0: include protocol PFileDescriptorSet; michael@0: michael@0: namespace mozilla { michael@0: namespace ipc { michael@0: michael@0: struct StringInputStreamParams michael@0: { michael@0: nsCString data; michael@0: }; michael@0: michael@0: struct FileInputStreamParams michael@0: { michael@0: uint32_t fileDescriptorIndex; michael@0: int32_t behaviorFlags; michael@0: int32_t ioFlags; michael@0: }; michael@0: michael@0: struct PartialFileInputStreamParams michael@0: { michael@0: FileInputStreamParams fileStreamParams; michael@0: uint64_t begin; michael@0: uint64_t length; michael@0: }; michael@0: michael@0: struct MultiplexInputStreamParams michael@0: { michael@0: InputStreamParams[] streams; michael@0: uint32_t currentStream; michael@0: nsresult status; michael@0: bool startedReadingCurrent; michael@0: }; michael@0: michael@0: struct RemoteInputStreamParams michael@0: { michael@0: PBlob remoteBlob; michael@0: }; michael@0: michael@0: union InputStreamParams michael@0: { michael@0: StringInputStreamParams; michael@0: FileInputStreamParams; michael@0: PartialFileInputStreamParams; michael@0: BufferedInputStreamParams; michael@0: MIMEInputStreamParams; michael@0: MultiplexInputStreamParams; michael@0: RemoteInputStreamParams; michael@0: }; michael@0: michael@0: union OptionalInputStreamParams michael@0: { michael@0: void_t; michael@0: InputStreamParams; michael@0: }; michael@0: michael@0: struct BufferedInputStreamParams michael@0: { michael@0: OptionalInputStreamParams optionalStream; michael@0: uint32_t bufferSize; michael@0: }; michael@0: michael@0: struct MIMEInputStreamParams michael@0: { michael@0: OptionalInputStreamParams optionalStream; michael@0: nsCString headers; michael@0: nsCString contentLength; michael@0: bool startedReading; michael@0: bool addContentLength; michael@0: }; michael@0: michael@0: union OptionalFileDescriptorSet michael@0: { michael@0: PFileDescriptorSet; michael@0: void_t; michael@0: }; michael@0: michael@0: } // namespace ipc michael@0: } // namespace mozilla