blob: abbc53f7cc2a2ef51a67836aff87ee19bd4379a7 [file] [log] [blame]
scroggo@google.combf642612013-11-20 23:12:25 +00001/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkPdfTokenLooper_DEFINED
9#define SkPdfTokenLooper_DEFINED
10
11class SkCanvas;
12class SkPdfNativeTokenizer;
13class SkPdfContext;
14
15class PdfTokenLooper {
16protected:
17 PdfTokenLooper* fParent;
18 SkPdfNativeTokenizer* fTokenizer;
19 SkPdfContext* fPdfContext;
20 SkCanvas* fCanvas;
21
22public:
23 PdfTokenLooper(PdfTokenLooper* parent,
24 SkPdfNativeTokenizer* tokenizer,
25 SkPdfContext* pdfContext,
26 SkCanvas* canvas)
27 : fParent(parent), fTokenizer(tokenizer), fPdfContext(pdfContext), fCanvas(canvas) {}
28
29 virtual ~PdfTokenLooper() {}
30
31 virtual SkPdfResult consumeToken(PdfToken& token) = 0;
32 virtual void loop() = 0;
33
34 void setUp(PdfTokenLooper* parent) {
35 fParent = parent;
36 fTokenizer = parent->fTokenizer;
37 fPdfContext = parent->fPdfContext;
38 fCanvas = parent->fCanvas;
39 }
40
41 SkPdfNativeTokenizer* tokenizer() { return fTokenizer; }
42};
43#endif // SkPdfTokenLooper_DEFINED