/* -*- 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/. */
// A `google::protobuf::io::ZeroCopyOutputStream` implementation that uses an // `nsIOutputStream` under the covers. // // This class will automatically write and flush its data to the // `nsIOutputStream` in its destructor, but if you care whether that call // succeeds or fails, then you should call the `flush` method yourself. Errors // will be logged, however. class MOZ_STACK_CLASS ZeroCopyNSIOutputStream
: public ::google::protobuf::io::ZeroCopyOutputStream { staticconstint BUFFER_SIZE = 8192;
// The nsIOutputStream we are streaming to.
nsCOMPtr<nsIOutputStream>& out;
// The buffer we write data to before passing it to the output stream. char buffer[BUFFER_SIZE];
// The status of writing to the underlying output stream.
nsresult result_;
// The number of bytes in the buffer that have been used thus far. int amountUsed;
// Excluding the amount of the buffer currently used (which hasn't been // written and flushed yet), this is the number of bytes written to the output // stream.
int64_t writtenCount;
// Write the internal buffer to the output stream and flush it.
nsresult writeBuffer();
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.