зеркало из https://github.com/mozilla/gecko-dev.git
58 строки
1.3 KiB
Plaintext
58 строки
1.3 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 protocol PChildToParentStream;
|
|
include protocol PParentToChildStream;
|
|
|
|
include BlobTypes;
|
|
include InputStreamParams;
|
|
include ProtocolTypes;
|
|
|
|
namespace mozilla {
|
|
namespace ipc {
|
|
|
|
// Do not use this directly. See IPCStream below.
|
|
struct InputStreamParamsWithFds
|
|
{
|
|
InputStreamParams stream;
|
|
OptionalFileDescriptorSet optionalFds;
|
|
};
|
|
|
|
union IPCRemoteStreamType
|
|
{
|
|
PChildToParentStream;
|
|
PParentToChildStream;
|
|
};
|
|
|
|
struct IPCRemoteStream
|
|
{
|
|
// 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;
|
|
};
|
|
|
|
// Use IPCStream or OptionalIPCStream in your ipdl to represent serialized
|
|
// nsIInputStreams. Then use AutoIPCStream from IPCStreamUtils.h to perform
|
|
// the serialization.
|
|
union IPCStream
|
|
{
|
|
InputStreamParamsWithFds;
|
|
IPCRemoteStream;
|
|
};
|
|
|
|
union OptionalIPCStream
|
|
{
|
|
IPCStream;
|
|
void_t;
|
|
};
|
|
|
|
} // namespace ipc
|
|
} // namespace mozilla
|