/* -*- 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/. */
// nsISizeOf // Among the sub-classes that inherit (directly or indirectly) from // nsSimpleURI, measurement of the following members may be added later if // DMD finds it is worthwhile: // - nsJSURI: mBaseURI // - nsSimpleNestedURI: mInnerURI // - nsBlobURI: mPrincipal virtual size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const override; virtual size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override;
protected: // enum used in a few places to specify how .ref attribute should be handled enum RefHandlingEnum { eIgnoreRef, eHonorRef, eReplaceRef };
// Helper to share code between Equals methods. virtual nsresult EqualsInternal(nsIURI* other,
RefHandlingEnum refHandlingMode, bool* result);
// Helper to be used by inherited classes who want to test // equality given an assumed nsSimpleURI. This must NOT check // the passed-in other for QI to our CID. bool EqualsInternal(nsSimpleURI* otherUri, RefHandlingEnum refHandlingMode);
// Used by StartClone (and versions of StartClone in subclasses) to // handle the ref in the right way for clones. void SetRefOnClone(nsSimpleURI* url, RefHandlingEnum refHandlingMode, const nsACString& newRef);
// NOTE: This takes the refHandlingMode as an argument because // nsSimpleNestedURI's specialized version needs to know how to clone // its inner URI. virtual nsSimpleURI* StartClone(RefHandlingEnum refHandlingMode, const nsACString& newRef);
// Helper to share code between Clone methods. virtual nsresult CloneInternal(RefHandlingEnum refHandlingMode, const nsACString& newRef, nsIURI** result);
nsCString mScheme;
nsCString mPath; // NOTE: mPath does not include ref, as an optimization
nsCString mRef; // so that URIs with different refs can share string data.
nsCString
mQuery; // so that URLs with different querys can share string data. bool mIsRefValid{false}; // To distinguish between empty-ref and no-ref. // To distinguish between empty-query and no-query. bool mIsQueryValid{false};
public: class Mutator final : public nsIURIMutator, public BaseURIMutator<nsSimpleURI>, public nsISimpleURIMutator, public nsISerializable {
NS_DECL_ISUPPORTS
NS_FORWARD_SAFE_NSIURISETTERS_RET(mURI)
NS_DEFINE_NSIMUTATOR_COMMON
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.