mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
c0dfa196ce
Before this patch, IPCStream was an union containing IPCRemoteSteam or an InputStreamParamsWithFds. Now InputStreamParamsWithFds is renamed IPCStream and IPCRemoteSteam is one of the possible InputStreamParams structs.
118 lines
2.1 KiB
Plaintext
118 lines
2.1 KiB
Plaintext
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
include ProtocolTypes;
|
|
|
|
include protocol PChildToParentStream;
|
|
include protocol PParentToChildStream;
|
|
|
|
using struct mozilla::void_t
|
|
from "ipc/IPCMessageUtils.h";
|
|
|
|
namespace mozilla {
|
|
namespace ipc {
|
|
|
|
struct HeaderEntry
|
|
{
|
|
nsCString name;
|
|
nsCString value;
|
|
};
|
|
|
|
struct StringInputStreamParams
|
|
{
|
|
nsCString data;
|
|
};
|
|
|
|
struct FileInputStreamParams
|
|
{
|
|
uint32_t fileDescriptorIndex;
|
|
int32_t behaviorFlags;
|
|
int32_t ioFlags;
|
|
};
|
|
|
|
struct MultiplexInputStreamParams
|
|
{
|
|
InputStreamParams[] streams;
|
|
uint32_t currentStream;
|
|
nsresult status;
|
|
bool startedReadingCurrent;
|
|
};
|
|
|
|
struct SlicedInputStreamParams
|
|
{
|
|
InputStreamParams stream;
|
|
uint64_t start;
|
|
uint64_t length;
|
|
uint64_t curPos;
|
|
bool closed;
|
|
};
|
|
|
|
struct IPCBlobInputStreamParams
|
|
{
|
|
nsID id;
|
|
uint64_t start;
|
|
uint64_t length;
|
|
};
|
|
|
|
union IPCRemoteStreamType
|
|
{
|
|
PChildToParentStream;
|
|
PParentToChildStream;
|
|
};
|
|
|
|
struct IPCRemoteStreamParams
|
|
{
|
|
// If this is true, the stream will send data only when the first operation
|
|
// is done on the destination side. The benefit of this is that we do not
|
|
// send data if not needed. On the other hand, it could have a performance
|
|
// issue.
|
|
bool delayedStart;
|
|
|
|
IPCRemoteStreamType stream;
|
|
|
|
int64_t length;
|
|
};
|
|
|
|
union InputStreamParams
|
|
{
|
|
StringInputStreamParams;
|
|
FileInputStreamParams;
|
|
BufferedInputStreamParams;
|
|
MIMEInputStreamParams;
|
|
MultiplexInputStreamParams;
|
|
SlicedInputStreamParams;
|
|
IPCBlobInputStreamParams;
|
|
InputStreamLengthWrapperParams;
|
|
IPCRemoteStreamParams;
|
|
};
|
|
|
|
union OptionalInputStreamParams
|
|
{
|
|
void_t;
|
|
InputStreamParams;
|
|
};
|
|
|
|
struct BufferedInputStreamParams
|
|
{
|
|
OptionalInputStreamParams optionalStream;
|
|
uint32_t bufferSize;
|
|
};
|
|
|
|
struct MIMEInputStreamParams
|
|
{
|
|
OptionalInputStreamParams optionalStream;
|
|
HeaderEntry[] headers;
|
|
bool startedReading;
|
|
};
|
|
|
|
struct InputStreamLengthWrapperParams
|
|
{
|
|
InputStreamParams stream;
|
|
int64_t length;
|
|
bool consumed;
|
|
};
|
|
|
|
} // namespace ipc
|
|
} // namespace mozilla
|