18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Copyright (C) 2001 Dirk Mueller <mueller@kde.org>
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This library is free software; you can redistribute it and/or
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    modify it under the terms of the GNU Library General Public
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    License as published by the Free Software Foundation; either
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    version 2 of the License, or (at your option) any later version.
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This library is distributed in the hope that it will be useful,
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    but WITHOUT ANY WARRANTY; without even the implied warranty of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Library General Public License for more details.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    You should have received a copy of the GNU Library General Public License
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    along with this library; see the file COPYING.LIB.  If not, write to
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Boston, MA 02110-1301, USA.
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This class provides all functionality needed for loading images, style sheets and html
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    pages from the web. It has a memory cache for these objects.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef CachedXSLStyleSheet_h
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define CachedXSLStyleSheet_h
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CachedResource.h"
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/Vector.h>
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
345abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick    class CachedResourceLoader;
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class TextResourceDecoder;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(XSLT)
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class CachedXSLStyleSheet : public CachedResource {
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    public:
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CachedXSLStyleSheet(const String& url);
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        const String& sheet() const { return m_sheet; }
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        virtual void didAddClient(CachedResourceClient*);
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void setEncoding(const String&);
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual String encoding() const;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived);
496b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner        virtual void error(CachedResource::Status);
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        void checkNotify();
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    protected:
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        String m_sheet;
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        RefPtr<TextResourceDecoder> m_decoder;
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
63