Chromium Code Reviews| Index: experimental/PdfViewer/inc/SkPdfTokenLooper.h |
| diff --git a/experimental/PdfViewer/inc/SkPdfTokenLooper.h b/experimental/PdfViewer/inc/SkPdfTokenLooper.h |
| index 8deca1708eab741f1b3ea45f174bdfe188d8cb05..7aa9dca442372876a129c1b4964778018da1cdd8 100644 |
| --- a/experimental/PdfViewer/inc/SkPdfTokenLooper.h |
| +++ b/experimental/PdfViewer/inc/SkPdfTokenLooper.h |
| @@ -15,31 +15,53 @@ |
| class SkCanvas; |
| class SkPdfContext; |
| +/** |
| + * An object which reads tokens from a tokenizer and draws it to an SkCanvas. |
| + */ |
| class SkPdfTokenLooper { |
| -protected: |
| - SkPdfTokenLooper* fParent; |
| - SkPdfNativeTokenizer* fTokenizer; |
| - SkPdfContext* fPdfContext; |
| - SkCanvas* fCanvas; |
| - |
| public: |
| - SkPdfTokenLooper(SkPdfTokenLooper* parent, |
| - SkPdfNativeTokenizer* tokenizer, |
| - SkPdfContext* pdfContext, |
| - SkCanvas* canvas) |
| - : fParent(parent), fTokenizer(tokenizer), fPdfContext(pdfContext), fCanvas(canvas) {} |
| + /** |
| + * Create a looper with no parent. |
| + * @param tokenizer SkPdfNativeTokenizer for reading tokens. |
| + * @param pdfContext Context for drawing state. |
| + * @param canvas Target SkCanvas for drawing. |
| + */ |
| + SkPdfTokenLooper(SkPdfNativeTokenizer* tokenizer, |
|
mtklein
2013/12/02 21:28:08
This has just occurred to me (I think, maybe I've
scroggo
2013/12/02 22:34:29
All subclasses need fTokenizer, fPdfContext, and f
|
| + SkPdfContext* pdfContext, |
| + SkCanvas* canvas) |
| + : fParent(NULL) |
| + , fTokenizer(tokenizer) |
| + , fPdfContext(pdfContext) |
| + , fCanvas(canvas) {} |
| + |
| + /** |
| + * Create a looper as a child of parent. It will share the |
| + * SkPdfContext, SkPdfTokenizer, and SkCanvas with its parent. |
| + */ |
| + explicit SkPdfTokenLooper(SkPdfTokenLooper* parent) |
| + : fParent(parent) |
| + , fTokenizer(parent->fTokenizer) |
| + , fPdfContext(parent->fPdfContext) |
| + , fCanvas(parent->fCanvas) {} |
| virtual ~SkPdfTokenLooper() {} |
| + /** |
| + * Consume a token, and draw to fCanvas as directed. |
| + */ |
| virtual SkPdfResult consumeToken(PdfToken& token) = 0; |
| + |
| + /** |
| + * Consume all the tokens this looper can handle. |
| + */ |
| virtual void loop() = 0; |
| - void setUp(SkPdfTokenLooper* parent) { |
| - fParent = parent; |
| - fTokenizer = parent->fTokenizer; |
| - fPdfContext = parent->fPdfContext; |
| - fCanvas = parent->fCanvas; |
| - } |
| +protected: |
| + // All are unowned pointers. |
| + SkPdfTokenLooper* fParent; |
| + SkPdfNativeTokenizer* fTokenizer; |
| + SkPdfContext* fPdfContext; |
| + SkCanvas* fCanvas; |
| }; |
| #endif // SkPdfTokenLooper_DEFINED |