/* -*- 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/. */
/* * A wrapper to contain either an nsAttrValue or an nsAString. This is useful * because constructing an nsAttrValue from an nsAString can be expensive when * the buffer of the string is not shared. * * This treats nsAttrValueOrString(nullptr) as the empty string, * to help with contexts where a null pointer denotes an empty value. * * Since a raw pointer to the passed-in string is kept, this class should only * be used on the stack.
*/
void ResetToAttrValue(const nsAttrValue& aValue) {
mAttrValue = &aValue;
mStringPtr = nullptr; // No need to touch mCheapString here. If we need to use it, we will reset // it to the rigthe value anyway.
}
/** * Returns a reference to the string value of the contents of this object. * * When this object points to a string or an nsAttrValue of string or atom * type this should be fairly cheap. Other nsAttrValue types will be * serialized the first time this is called and cached from thereon.
*/ const nsAString& String() const;
/** * Compares the string representation of this object with the string * representation of an nsAttrValue.
*/ bool EqualsAsStrings(const nsAttrValue& aOther) const { if (mStringPtr) { return aOther.Equals(*mStringPtr, eCaseMatters);
} return aOther.EqualsAsStrings(*mAttrValue);
}
/* * Returns true if the value stored is empty
*/ bool IsEmpty() const { if (mStringPtr) { return mStringPtr->IsEmpty();
} if (mAttrValue) { return mAttrValue->IsEmptyString();
} returntrue;
}
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.