1ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block/* 2ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * Copyright (C) 2010 Apple Inc. All rights reserved. 3ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * 4ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * Redistribution and use in source and binary forms, with or without 5ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * modification, are permitted provided that the following conditions 6ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * are met: 7ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * 1. Redistributions of source code must retain the above copyright 8ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * notice, this list of conditions and the following disclaimer. 9ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * 2. Redistributions in binary form must reproduce the above copyright 10ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * notice, this list of conditions and the following disclaimer in the 11ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * documentation and/or other materials provided with the distribution. 12ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * 13ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block * THE POSSIBILITY OF SUCH DAMAGE. 24ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block */ 25ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 26ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#ifndef DOMStringMap_h 27ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#define DOMStringMap_h 28ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 29ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include "PlatformString.h" 30ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include <wtf/Noncopyable.h> 31ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#include <wtf/Vector.h> 32ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 33ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blocknamespace WebCore { 34ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 3568513a70bcd92384395513322f1b801e7bf9c729Steve Blockclass Element; 36ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blocktypedef int ExceptionCode; 37ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 38ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdochclass DOMStringMap { 39ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch WTF_MAKE_NONCOPYABLE(DOMStringMap); WTF_MAKE_FAST_ALLOCATED; 40ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockpublic: 41ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual ~DOMStringMap(); 42ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 43ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual void ref() = 0; 44ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual void deref() = 0; 45ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 46ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual void getNames(Vector<String>&) = 0; 47ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual String item(const String& name) = 0; 48ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool contains(const String& name) = 0; 49ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual void setItem(const String& name, const String& value, ExceptionCode&) = 0; 50ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual void deleteItem(const String& name, ExceptionCode&) = 0; 51ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 5268513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual Element* element() = 0; 5368513a70bcd92384395513322f1b801e7bf9c729Steve Block 54ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockprotected: 55ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block DOMStringMap() 56ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block { 57ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block } 58ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block}; 59ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 60ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} // namespace WebCore 61ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 62ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block#endif // DOMStringMap_h 63