1d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// found in the LICENSE file.
4d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
5d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#ifndef TextResource_h
6d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#define TextResource_h
7d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
8d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "core/fetch/ResourcePtr.h"
9d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
11d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
12d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)class ResourceFetcher;
13d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)class TextResourceDecoder;
14d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
15d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)class TextResource : public Resource {
16d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)public:
17d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    // Returns the decoded data in text form. The data has to be available at
18d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    // call time.
19d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    String decodedText() const;
20d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
21d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    virtual void setEncoding(const String&) OVERRIDE;
22d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    virtual String encoding() const OVERRIDE;
23d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
24d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)protected:
25d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    TextResource(const ResourceRequest&, Type, const String& mimeType, const String& charset);
26d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    virtual ~TextResource();
27d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
28d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)private:
29d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    OwnPtr<TextResourceDecoder> m_decoder;
30d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)};
31d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
32d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)}
33d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)
34d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#endif // TextResource_h
35