/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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/. */
class NS_NO_VTABLE nsIIPCSerializableInputStream : public nsISupports { public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIPCSERIALIZABLEINPUTSTREAM_IID)
// Determine the serialized complexity of this input stream, initializing // `*aSizeUsed`, `*aPipes` and `*aTransferables` to the number of inline // bytes/pipes/transferable resources which would be used. This will be used // by other `Serialize` implementations to potentially simplify the resulting // stream, reducing the number of pipes or file descriptors required. // // Each outparameter corresponds to a type of resource which will be included // in the serialized message, as follows: // // *aSizeUsed: // Raw bytes to be included inline in the message's payload, usually in the // form of a nsCString for a StringInputStreamParams. This must be less // than or equal to `aMaxSize`. Larger payloads should instead be // serialized using SerializeInputStreamAsPipe. // *aPipes: // New pipes, created using SerializeInputStreamAsPipe, which will be used // to asynchronously transfer part of the pipe over IPC. Callers such as // nsMultiplexInputStream may choose to serialize themselves as a DataPipe // if they contain DataPipes themselves, so existing DataPipe instances // which are cheaply transferred should be counted as transferrables. // *aTransferables: // Existing objects which can be more cheaply transferred over IPC than by // serializing them inline in a payload or transferring them through a new // DataPipe. This includes RemoteLazyInputStreams, FileDescriptors, and // existing DataPipeReceiver instances. // // Callers of this method must have initialized all of `*aSizeUsed`, // `*aPipes`, and `*aTransferables` to 0, so implementations are not required // to initialize all outparameters. The outparameters must not be null. virtualvoid SerializedComplexity(uint32_t aMaxSize, uint32_t* aSizeUsed,
uint32_t* aPipes,
uint32_t* aTransferables) = 0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.