OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * Copyright 2012 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 SkJsonWriteBuffer_DEFINED | |
9 #define SkJsonWriteBuffer_DEFINED | |
10 | |
11 #include "SkWriteBuffer.h" | |
12 | |
13 #include "SkCanvas.h" | |
14 #include "SkTLazy.h" | |
15 #include "SkPath.h" | |
16 #include "SkRRect.h" | |
17 #include "SkString.h" | |
18 #include "SkTDArray.h" | |
19 #include "SkJSONCPP.h" | |
20 #include "UrlDataManager.h" | |
21 | |
22 class SkJsonWriteBuffer : public SkWriteBuffer { | |
mtklein
2016/04/29 17:55:42
final?
| |
23 public: | |
24 SkJsonWriteBuffer(UrlDataManager* urlDataManager) | |
25 : fUrlDataManager(urlDataManager) | |
26 , fFieldCount(0) | |
27 , fReserveDataSize(0) {} | |
28 | |
29 bool isCrossProcess() const override { return false; } | |
30 | |
31 uint32_t* reserve(size_t size) override; | |
32 | |
33 void writeByteArray(const void* data, size_t size) override; | |
34 void writeDataAsByteArray(SkData* data) override; | |
35 void writeBool(bool value) override; | |
36 void writeScalar(SkScalar value) override; | |
37 void writeScalarArray(const SkScalar* value, uint32_t count) override; | |
38 void writeInt(int32_t value) override; | |
39 void writeIntArray(const int32_t* value, uint32_t count) override; | |
40 void writeUInt(uint32_t value) override; | |
41 void write32(int32_t value) override; | |
42 void writeString(const char* value) override; | |
43 void writeEncodedString(const void* value, size_t byteLength, | |
44 SkPaint::TextEncoding encoding) override; | |
45 void writeFunctionPtr(void* ptr) override; | |
46 | |
47 void writeFlattenable(const SkFlattenable* flattenable) override; | |
48 void writeColor(const SkColor& color) override; | |
49 void writeColorArray(const SkColor* color, uint32_t count) override; | |
50 void writePoint(const SkPoint& point) override; | |
51 void writePointArray(const SkPoint* point, uint32_t count) override; | |
52 void writeMatrix(const SkMatrix& matrix) override; | |
53 void writeIRect(const SkIRect& rect) override; | |
54 void writeRect(const SkRect& rect) override; | |
55 void writeRegion(const SkRegion& region) override; | |
56 void writePath(const SkPath& path) override; | |
57 size_t writeStream(SkStream* stream, size_t length) override; | |
58 void writeBitmap(const SkBitmap& bitmap) override; | |
59 void writeImage(const SkImage*) override; | |
60 void writeTypeface(SkTypeface* typeface) override; | |
61 void writePaint(const SkPaint& paint) override; | |
62 | |
63 const Json::Value& getValue() const { return fJson; } | |
64 | |
65 private: | |
66 void append(const char* type, const Json::Value& value); | |
67 | |
68 UrlDataManager* fUrlDataManager; | |
69 Json::Value fJson; | |
70 uint32_t fFieldCount; | |
71 SkAutoTMalloc<uint32_t> fReserveData; | |
72 size_t fReserveDataSize; | |
73 }; | |
74 | |
75 #endif | |
OLD | NEW |