Blame ipc/glue/IPCStream.ipdlh
|
Packit |
f0b94e |
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
Packit |
f0b94e |
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
Packit |
f0b94e |
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
include protocol PChildToParentStream;
|
|
Packit |
f0b94e |
include protocol PParentToChildStream;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
include BlobTypes;
|
|
Packit |
f0b94e |
include InputStreamParams;
|
|
Packit |
f0b94e |
include ProtocolTypes;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
namespace mozilla {
|
|
Packit |
f0b94e |
namespace ipc {
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// Do not use this directly. See IPCStream below.
|
|
Packit |
f0b94e |
struct InputStreamParamsWithFds
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
InputStreamParams stream;
|
|
Packit |
f0b94e |
OptionalFileDescriptorSet optionalFds;
|
|
Packit |
f0b94e |
};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
union IPCRemoteStreamType
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
PChildToParentStream;
|
|
Packit |
f0b94e |
PParentToChildStream;
|
|
Packit |
f0b94e |
};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
struct IPCRemoteStream
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
// If this is true, the stream will send data only when the first operation
|
|
Packit |
f0b94e |
// is done on the destination side. The benefit of this is that we do not
|
|
Packit |
f0b94e |
// send data if not needed. On the other hand, it could have a performance
|
|
Packit |
f0b94e |
// issue.
|
|
Packit |
f0b94e |
bool delayedStart;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
IPCRemoteStreamType stream;
|
|
Packit |
f0b94e |
};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// Use IPCStream or OptionalIPCStream in your ipdl to represent serialized
|
|
Packit |
f0b94e |
// nsIInputStreams. Then use AutoIPCStream from IPCStreamUtils.h to perform
|
|
Packit |
f0b94e |
// the serialization.
|
|
Packit |
f0b94e |
union IPCStream
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
InputStreamParamsWithFds;
|
|
Packit |
f0b94e |
IPCRemoteStream;
|
|
Packit |
f0b94e |
};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
union OptionalIPCStream
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
IPCStream;
|
|
Packit |
f0b94e |
void_t;
|
|
Packit |
f0b94e |
};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
} // namespace ipc
|
|
Packit |
f0b94e |
} // namespace mozilla
|