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

Quelle  nsAboutCacheEntry.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 4; 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/. */


#ifndef nsAboutCacheEntry_h__
#define nsAboutCacheEntry_h__

#include "nsIAboutModule.h"
#include "nsICacheEntryOpenCallback.h"
#include "nsICacheEntry.h"
#include "nsIStreamListener.h"
#include "nsString.h"
#include "nsCOMPtr.h"
#include "nsIChannel.h"

class nsIAsyncOutputStream;
class nsIInputStream;
class nsILoadContextInfo;
class nsIURI;

class nsAboutCacheEntry final : public nsIAboutModule {
 public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABOUTMODULE

 private:
  virtual ~nsAboutCacheEntry() = default;

  class Channel final : public nsICacheEntryOpenCallback,
                        public nsICacheEntryMetaDataVisitor,
                        public nsIStreamListener,
                        public nsIChannel {
   public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSICACHEENTRYOPENCALLBACK
    NS_DECL_NSICACHEENTRYMETADATAVISITOR
    NS_DECL_NSIREQUESTOBSERVER
    NS_DECL_NSISTREAMLISTENER
    NS_FORWARD_SAFE_NSICHANNEL(mChannel)
    NS_FORWARD_SAFE_NSIREQUEST(mChannel)

    Channel() = default;

   private:
    virtual ~Channel() = default;

   public:
    [[nodiscard]] nsresult Init(nsIURI* uri, nsILoadInfo* aLoadInfo);

    [[nodiscard]] nsresult GetContentStream(nsIURI*, nsIInputStream**);
    [[nodiscard]] nsresult OpenCacheEntry(nsIURI*);
    [[nodiscard]] nsresult OpenCacheEntry();
    [[nodiscard]] nsresult WriteCacheEntryDescription(nsICacheEntry*);
    [[nodiscard]] nsresult WriteCacheEntryUnavailable();
    [[nodiscard]] nsresult ParseURI(nsIURI* uri, nsACString& storageName,
                                    nsILoadContextInfo** loadInfo,
                                    nsCString& enahnceID, nsIURI** cacheUri);
    void CloseContent();

    [[nodiscard]] static nsresult PrintCacheData(
        nsIInputStream* aInStream, void* aClosure, const char* aFromSegment,
        uint32_t aToOffset, uint32_t aCount, uint32_t* aWriteCount);

   private:
    nsCString mStorageName, mEnhanceId;
    nsCOMPtr<nsILoadContextInfo> mLoadInfo;
    nsCOMPtr<nsIURI> mCacheURI;

    nsCString* mBuffer{nullptr};
    nsCOMPtr<nsIAsyncOutputStream> mOutputStream;
    bool mWaitingForData{false};
    uint32_t mHexDumpState{0};

    nsCOMPtr<nsIChannel> mChannel;
  };
};

#define NS_ABOUT_CACHE_ENTRY_MODULE_CID              \
  { /* 7fa5237d-b0eb-438f-9e50-ca0166e63788 */       \
    0x7fa5237d, 0xb0eb, 0x438f, {                    \
      0x9e, 0x50, 0xca, 0x01, 0x66, 0xe6, 0x37, 0x88 \
    }                                                \
  }

#endif  // nsAboutCacheEntry_h__

Messung V0.5
C=88 H=98 G=93

¤ 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 und die Messung sind noch experimentell.