18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1999 Waldo Bastian (bastian@kde.org) 45ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen * Copyright (C) 2004, 2006, 2010 Apple Inc. All rights reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef CSSNamespace_h 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define CSSNamespace_h 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 25f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include <wtf/text/AtomicString.h> 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 29ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch struct CSSNamespace { 30ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch WTF_MAKE_NONCOPYABLE(CSSNamespace); WTF_MAKE_FAST_ALLOCATED; 31ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch public: 325ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen AtomicString prefix; 335ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen AtomicString uri; 345ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen OwnPtr<CSSNamespace> parent; 355ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 365ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen CSSNamespace(const AtomicString& prefix, const AtomicString& uri, PassOwnPtr<CSSNamespace> parent) 375ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen : prefix(prefix) 385ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen , uri(uri) 395ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen , parent(parent) 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSNamespace* namespaceForPrefix(const AtomicString& prefix) 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 455ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen for (CSSNamespace* candidate = this; candidate; candidate = candidate->parent.get()) { 465ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen if (candidate->prefix == prefix) 475ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return candidate; 485ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen } 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project }; 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // CSSNamespace_h 56