1591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch/* 2591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 3591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * (C) 1999 Antti Koivisto (koivisto@kde.org) 4591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * (C) 2001 Dirk Mueller (mueller@kde.org) 5591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 6591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All rights reserved. 7591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/) 8591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Copyright (C) 2013 Google Inc. All rights reserved. 10591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 11591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * This library is free software; you can redistribute it and/or 12591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * modify it under the terms of the GNU Library General Public 13591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * License as published by the Free Software Foundation; either 14591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * version 2 of the License, or (at your option) any later version. 15591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 16591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * This library is distributed in the hope that it will be useful, 17591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * but WITHOUT ANY WARRANTY; without even the implied warranty of 18591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Library General Public License for more details. 20591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 21591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * You should have received a copy of the GNU Library General Public License 22591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * along with this library; see the file COPYING.LIB. If not, write to 23591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 24591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * Boston, MA 02110-1301, USA. 25591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * 26591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch */ 27591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 28591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#ifndef DocumentOrderedList_h 29591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#define DocumentOrderedList_h 30591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 31591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/FastAllocBase.h" 32591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/ListHashSet.h" 33591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 34591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochnamespace WebCore { 35591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 36591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass Node; 37591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 38591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochclass DocumentOrderedList { 39591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch WTF_MAKE_NONCOPYABLE(DocumentOrderedList); WTF_MAKE_FAST_ALLOCATED; 40591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochpublic: 41591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch DocumentOrderedList() { } 42591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 43591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch void add(Node*); 44591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch void parserAdd(Node*); 45f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) void remove(const Node*); 46591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch bool isEmpty() const { return m_nodes.isEmpty(); } 47591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch void clear() { m_nodes.clear(); } 48591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 49591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch typedef ListHashSet<Node*, 32>::iterator iterator; 50591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 51591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch iterator begin() { return m_nodes.begin(); } 52591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch iterator end() { return m_nodes.end(); } 53591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 54591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdochprivate: 55591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch ListHashSet<Node*, 32> m_nodes; 56591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch}; 57591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 58591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch} 59591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 60591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#endif 61