Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/xpcom/io/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  nsStringStream.h   Sprache: C

 
/* -*- 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/. */


#ifndef nsStringStream_h__
#define nsStringStream_h__

#include "nsIStringStream.h"
#include "nsString.h"
#include "nsTArray.h"

/**
 * Implements:
 *   nsIStringInputStream
 *   nsIInputStream
 *   nsISeekableStream
 *   nsITellableStream
 *   nsISupportsCString
 */

#define NS_STRINGINPUTSTREAM_CONTRACTID "@mozilla.org/io/string-input-stream;1"
#define NS_STRINGINPUTSTREAM_CID                     \
  { /* 0abb0835-5000-4790-af28-61b3ba17c295 */       \
    0x0abb0835, 0x5000, 0x4790, {                    \
      0xaf, 0x28, 0x61, 0xb3, 0xba, 0x17, 0xc2, 0x95 \
    }                                                \
  }

/**
 * An enumeration type used to represent a method of assignment.
 */

enum nsAssignmentType {
  NS_ASSIGNMENT_COPY,    // copy by value
  NS_ASSIGNMENT_DEPEND,  // copy by reference
  NS_ASSIGNMENT_ADOPT    // copy by reference (take ownership of resource)
};

/**
 * Factory method to get an nsInputStream from a byte buffer.  Result will
 * implement nsIStringInputStream, nsITellableStream and nsISeekableStream.
 *
 * If aAssignment is NS_ASSIGNMENT_COPY, then the resulting stream holds a copy
 * of the given buffer (aStringToRead), and the caller is free to discard
 * aStringToRead after this function returns.
 *
 * If aAssignment is NS_ASSIGNMENT_DEPEND, then the resulting stream refers
 * directly to the given buffer (aStringToRead), so the caller must ensure that
 * the buffer remains valid for the lifetime of the stream object.  Use with
 * care!!
 *
 * If aAssignment is NS_ASSIGNMENT_ADOPT, then the resulting stream refers
 * directly to the given buffer (aStringToRead) and will free aStringToRead
 * once the stream is closed.
 */

extern nsresult NS_NewByteInputStream(nsIInputStream** aStreamResult,
                                      mozilla::Span<const char> aStringToRead,
                                      nsAssignmentType aAssignment);

/**
 * Factory method to get an nsIInputStream from an nsTArray representing a byte
 * buffer.  This will take ownership of the data and empty out the nsTArray.
 *
 * Result will implement nsIStringInputStream, nsITellableStream and
 * nsISeekableStream.
 */

extern nsresult NS_NewByteInputStream(nsIInputStream** aStreamResult,
                                      nsTArray<uint8_t>&& aArray);

/**
 * Factory method to get an nsIInputStream from an arbitrary StreamBufferSource.
 * This will take a strong reference to the source.
 *
 * Result will implement nsIStringInputStream, nsITellableStream and
 * nsISeekableStream.
 */

extern nsresult NS_NewByteInputStream(nsIInputStream** aStreamResult,
                                      mozilla::StreamBufferSource* aSource);

/**
 * Factory method to get an nsInputStream from an nsACString.  Result will
 * implement nsIStringInputStream, nsTellableStream and nsISeekableStream.
 */

extern nsresult NS_NewCStringInputStream(nsIInputStream** aStreamResult,
                                         const nsACString& aStringToRead);
extern nsresult NS_NewCStringInputStream(nsIInputStream** aStreamResult,
                                         nsCString&& aStringToRead);

#endif  // nsStringStream_h__

100%


¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.