Index: experimental/PdfViewer/inc/SkPdfTokenLooper.h |
diff --git a/experimental/PdfViewer/inc/SkPdfTokenLooper.h b/experimental/PdfViewer/inc/SkPdfTokenLooper.h |
index 8deca1708eab741f1b3ea45f174bdfe188d8cb05..f3897cc78f5e59f270eba1b0ce2e66e94225d3c3 100644 |
--- a/experimental/PdfViewer/inc/SkPdfTokenLooper.h |
+++ b/experimental/PdfViewer/inc/SkPdfTokenLooper.h |
@@ -15,31 +15,54 @@ |
class SkCanvas; |
class SkPdfContext; |
+/** |
+ * An object which reads tokens from a tokenizer and draws it to an SkCanvas. |
+ * FIXME (scroggo): Can this be an interface? See http://goo.gl/AXQtkH |
+ */ |
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, |
+ 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 |