gecko-dev/xpcom/io/nsIStringStream.idl
Wes Kocher 6c1a0ae549 Backed out 6 changesets (bug 1371699) for various failures including frequent img-blobURI-2.html failures and leaks a=backout
Backed out changeset 67a27cf0ab80 (bug 1371699)
Backed out changeset 7e494fa90087 (bug 1371699)
Backed out changeset 30405ec37e1e (bug 1371699)
Backed out changeset 2d67624a01dc (bug 1371699)
Backed out changeset 503c9d22e6bb (bug 1371699)
Backed out changeset eedcb67a9fb6 (bug 1371699)

MozReview-Commit-ID: 4HydLjK7Ond
2017-06-13 17:50:11 -07:00

67 lines
2.4 KiB
Plaintext

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "nsIInputStream.idl"
%{C++
#include "mozilla/MemoryReporting.h"
%}
native MallocSizeOf(mozilla::MallocSizeOf);
/**
* nsIStringInputStream
*
* Provides scriptable and specialized C++-only methods for initializing a
* nsIInputStream implementation with a simple character array.
*/
[scriptable, builtinclass, uuid(450cd2d4-f0fd-424d-b365-b1251f80fd53)]
interface nsIStringInputStream : nsIInputStream
{
/**
* SetData - assign data to the input stream (copied on assignment).
*
* @param data - stream data
* @param dataLen - stream data length (-1 if length should be computed)
*
* NOTE: C++ code should consider using AdoptData or ShareData to avoid
* making an extra copy of the stream data.
*
* NOTE: For JS callers, the given data must not contain null characters
* (other than a null terminator) because a null character in the middle of
* the data string will be seen as a terminator when the data is converted
* from a JS string to a C++ character array.
*/
void setData(in string data, in long dataLen);
/**
* NOTE: the following methods are designed to give C++ code added control
* over the ownership and lifetime of the stream data. Use with care :-)
*/
/**
* AdoptData - assign data to the input stream. the input stream takes
* ownership of the given data buffer and will free it when
* the input stream is destroyed.
*
* @param data - stream data
* @param dataLen - stream data length (-1 if length should be computed)
*/
[noscript] void adoptData(in charPtr data, in long dataLen);
/**
* ShareData - assign data to the input stream. the input stream references
* the given data buffer until the input stream is destroyed. the given
* data buffer must outlive the input stream.
*
* @param data - stream data
* @param dataLen - stream data length (-1 if length should be computed)
*/
[noscript] void shareData(in string data, in long dataLen);
[noscript, notxpcom]
size_t SizeOfIncludingThis(in MallocSizeOf aMallocSizeOf);
};