blob: 8deca1708eab741f1b3ea45f174bdfe188d8cb05 [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
scroggo@google.com248647c2013-12-02 20:18:09 +000011#include "SkPdfNativeTokenizer.h"
12// For SkPdfResult
13#include "SkPdfUtils.h"
14
scroggo@google.combf642612013-11-20 23:12:25 +000015class SkCanvas;
scroggo@google.combf642612013-11-20 23:12:25 +000016class SkPdfContext;
17
scroggo@google.com248647c2013-12-02 20:18:09 +000018class SkPdfTokenLooper {
scroggo@google.combf642612013-11-20 23:12:25 +000019protected:
scroggo@google.com248647c2013-12-02 20:18:09 +000020 SkPdfTokenLooper* fParent;
scroggo@google.combf642612013-11-20 23:12:25 +000021 SkPdfNativeTokenizer* fTokenizer;
22 SkPdfContext* fPdfContext;
23 SkCanvas* fCanvas;
24
25public:
scroggo@google.com248647c2013-12-02 20:18:09 +000026 SkPdfTokenLooper(SkPdfTokenLooper* parent,
scroggo@google.combf642612013-11-20 23:12:25 +000027 SkPdfNativeTokenizer* tokenizer,
28 SkPdfContext* pdfContext,
29 SkCanvas* canvas)
30 : fParent(parent), fTokenizer(tokenizer), fPdfContext(pdfContext), fCanvas(canvas) {}
31
scroggo@google.com248647c2013-12-02 20:18:09 +000032 virtual ~SkPdfTokenLooper() {}
scroggo@google.combf642612013-11-20 23:12:25 +000033
34 virtual SkPdfResult consumeToken(PdfToken& token) = 0;
35 virtual void loop() = 0;
36
scroggo@google.com248647c2013-12-02 20:18:09 +000037 void setUp(SkPdfTokenLooper* parent) {
scroggo@google.combf642612013-11-20 23:12:25 +000038 fParent = parent;
39 fTokenizer = parent->fTokenizer;
40 fPdfContext = parent->fPdfContext;
41 fCanvas = parent->fCanvas;
42 }
scroggo@google.combf642612013-11-20 23:12:25 +000043};
scroggo@google.com248647c2013-12-02 20:18:09 +000044
scroggo@google.combf642612013-11-20 23:12:25 +000045#endif // SkPdfTokenLooper_DEFINED