sq_detailed_metrics 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/extconf.rb +26 -0
  3. data/include/half.hpp +4575 -0
  4. data/include/msgpack.h +24 -0
  5. data/include/msgpack/fbuffer.h +42 -0
  6. data/include/msgpack/gcc_atomic.h +25 -0
  7. data/include/msgpack/object.h +118 -0
  8. data/include/msgpack/pack.h +174 -0
  9. data/include/msgpack/pack_define.h +18 -0
  10. data/include/msgpack/pack_template.h +952 -0
  11. data/include/msgpack/sbuffer.h +115 -0
  12. data/include/msgpack/sysdep.h +221 -0
  13. data/include/msgpack/timestamp.h +58 -0
  14. data/include/msgpack/unpack.h +281 -0
  15. data/include/msgpack/unpack_define.h +89 -0
  16. data/include/msgpack/unpack_template.h +471 -0
  17. data/include/msgpack/util.h +15 -0
  18. data/include/msgpack/version.h +38 -0
  19. data/include/msgpack/version_master.h +3 -0
  20. data/include/msgpack/vrefbuffer.h +144 -0
  21. data/include/msgpack/zbuffer.h +205 -0
  22. data/include/msgpack/zone.h +163 -0
  23. data/include/rapidjson/allocators.h +271 -0
  24. data/include/rapidjson/document.h +2575 -0
  25. data/include/rapidjson/encodedstream.h +299 -0
  26. data/include/rapidjson/encodings.h +716 -0
  27. data/include/rapidjson/error/en.h +74 -0
  28. data/include/rapidjson/error/error.h +155 -0
  29. data/include/rapidjson/filereadstream.h +99 -0
  30. data/include/rapidjson/filewritestream.h +104 -0
  31. data/include/rapidjson/fwd.h +151 -0
  32. data/include/rapidjson/internal/biginteger.h +290 -0
  33. data/include/rapidjson/internal/diyfp.h +258 -0
  34. data/include/rapidjson/internal/dtoa.h +245 -0
  35. data/include/rapidjson/internal/ieee754.h +78 -0
  36. data/include/rapidjson/internal/itoa.h +304 -0
  37. data/include/rapidjson/internal/meta.h +181 -0
  38. data/include/rapidjson/internal/pow10.h +55 -0
  39. data/include/rapidjson/internal/regex.h +701 -0
  40. data/include/rapidjson/internal/stack.h +230 -0
  41. data/include/rapidjson/internal/strfunc.h +55 -0
  42. data/include/rapidjson/internal/strtod.h +269 -0
  43. data/include/rapidjson/internal/swap.h +46 -0
  44. data/include/rapidjson/istreamwrapper.h +115 -0
  45. data/include/rapidjson/memorybuffer.h +70 -0
  46. data/include/rapidjson/memorystream.h +71 -0
  47. data/include/rapidjson/msinttypes/inttypes.h +316 -0
  48. data/include/rapidjson/msinttypes/stdint.h +300 -0
  49. data/include/rapidjson/ostreamwrapper.h +81 -0
  50. data/include/rapidjson/pointer.h +1358 -0
  51. data/include/rapidjson/prettywriter.h +255 -0
  52. data/include/rapidjson/rapidjson.h +615 -0
  53. data/include/rapidjson/reader.h +1879 -0
  54. data/include/rapidjson/schema.h +2006 -0
  55. data/include/rapidjson/stream.h +179 -0
  56. data/include/rapidjson/stringbuffer.h +117 -0
  57. data/include/rapidjson/writer.h +610 -0
  58. data/include/xxhash.h +328 -0
  59. data/json_conv.cpp +284 -0
  60. data/json_conv.hpp +17 -0
  61. data/metrics.cpp +239 -0
  62. data/metrics.hpp +84 -0
  63. data/msgpack/objectc.c +482 -0
  64. data/msgpack/unpack.c +703 -0
  65. data/msgpack/version.c +22 -0
  66. data/msgpack/vrefbuffer.c +250 -0
  67. data/msgpack/zone.c +222 -0
  68. data/sq_detailed_metrics.cpp +248 -0
  69. metadata +199 -0
@@ -0,0 +1,74 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_ERROR_EN_H_
16
+ #define RAPIDJSON_ERROR_EN_H_
17
+
18
+ #include "error.h"
19
+
20
+ #ifdef __clang__
21
+ RAPIDJSON_DIAG_PUSH
22
+ RAPIDJSON_DIAG_OFF(switch-enum)
23
+ RAPIDJSON_DIAG_OFF(covered-switch-default)
24
+ #endif
25
+
26
+ RAPIDJSON_NAMESPACE_BEGIN
27
+
28
+ //! Maps error code of parsing into error message.
29
+ /*!
30
+ \ingroup RAPIDJSON_ERRORS
31
+ \param parseErrorCode Error code obtained in parsing.
32
+ \return the error message.
33
+ \note User can make a copy of this function for localization.
34
+ Using switch-case is safer for future modification of error codes.
35
+ */
36
+ inline const RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErrorCode) {
37
+ switch (parseErrorCode) {
38
+ case kParseErrorNone: return RAPIDJSON_ERROR_STRING("No error.");
39
+
40
+ case kParseErrorDocumentEmpty: return RAPIDJSON_ERROR_STRING("The document is empty.");
41
+ case kParseErrorDocumentRootNotSingular: return RAPIDJSON_ERROR_STRING("The document root must not be followed by other values.");
42
+
43
+ case kParseErrorValueInvalid: return RAPIDJSON_ERROR_STRING("Invalid value.");
44
+
45
+ case kParseErrorObjectMissName: return RAPIDJSON_ERROR_STRING("Missing a name for object member.");
46
+ case kParseErrorObjectMissColon: return RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member.");
47
+ case kParseErrorObjectMissCommaOrCurlyBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member.");
48
+
49
+ case kParseErrorArrayMissCommaOrSquareBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element.");
50
+
51
+ case kParseErrorStringUnicodeEscapeInvalidHex: return RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string.");
52
+ case kParseErrorStringUnicodeSurrogateInvalid: return RAPIDJSON_ERROR_STRING("The surrogate pair in string is invalid.");
53
+ case kParseErrorStringEscapeInvalid: return RAPIDJSON_ERROR_STRING("Invalid escape character in string.");
54
+ case kParseErrorStringMissQuotationMark: return RAPIDJSON_ERROR_STRING("Missing a closing quotation mark in string.");
55
+ case kParseErrorStringInvalidEncoding: return RAPIDJSON_ERROR_STRING("Invalid encoding in string.");
56
+
57
+ case kParseErrorNumberTooBig: return RAPIDJSON_ERROR_STRING("Number too big to be stored in double.");
58
+ case kParseErrorNumberMissFraction: return RAPIDJSON_ERROR_STRING("Miss fraction part in number.");
59
+ case kParseErrorNumberMissExponent: return RAPIDJSON_ERROR_STRING("Miss exponent in number.");
60
+
61
+ case kParseErrorTermination: return RAPIDJSON_ERROR_STRING("Terminate parsing due to Handler error.");
62
+ case kParseErrorUnspecificSyntaxError: return RAPIDJSON_ERROR_STRING("Unspecific syntax error.");
63
+
64
+ default: return RAPIDJSON_ERROR_STRING("Unknown error.");
65
+ }
66
+ }
67
+
68
+ RAPIDJSON_NAMESPACE_END
69
+
70
+ #ifdef __clang__
71
+ RAPIDJSON_DIAG_POP
72
+ #endif
73
+
74
+ #endif // RAPIDJSON_ERROR_EN_H_
@@ -0,0 +1,155 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_ERROR_ERROR_H_
16
+ #define RAPIDJSON_ERROR_ERROR_H_
17
+
18
+ #include "../rapidjson.h"
19
+
20
+ #ifdef __clang__
21
+ RAPIDJSON_DIAG_PUSH
22
+ RAPIDJSON_DIAG_OFF(padded)
23
+ #endif
24
+
25
+ /*! \file error.h */
26
+
27
+ /*! \defgroup RAPIDJSON_ERRORS RapidJSON error handling */
28
+
29
+ ///////////////////////////////////////////////////////////////////////////////
30
+ // RAPIDJSON_ERROR_CHARTYPE
31
+
32
+ //! Character type of error messages.
33
+ /*! \ingroup RAPIDJSON_ERRORS
34
+ The default character type is \c char.
35
+ On Windows, user can define this macro as \c TCHAR for supporting both
36
+ unicode/non-unicode settings.
37
+ */
38
+ #ifndef RAPIDJSON_ERROR_CHARTYPE
39
+ #define RAPIDJSON_ERROR_CHARTYPE char
40
+ #endif
41
+
42
+ ///////////////////////////////////////////////////////////////////////////////
43
+ // RAPIDJSON_ERROR_STRING
44
+
45
+ //! Macro for converting string literial to \ref RAPIDJSON_ERROR_CHARTYPE[].
46
+ /*! \ingroup RAPIDJSON_ERRORS
47
+ By default this conversion macro does nothing.
48
+ On Windows, user can define this macro as \c _T(x) for supporting both
49
+ unicode/non-unicode settings.
50
+ */
51
+ #ifndef RAPIDJSON_ERROR_STRING
52
+ #define RAPIDJSON_ERROR_STRING(x) x
53
+ #endif
54
+
55
+ RAPIDJSON_NAMESPACE_BEGIN
56
+
57
+ ///////////////////////////////////////////////////////////////////////////////
58
+ // ParseErrorCode
59
+
60
+ //! Error code of parsing.
61
+ /*! \ingroup RAPIDJSON_ERRORS
62
+ \see GenericReader::Parse, GenericReader::GetParseErrorCode
63
+ */
64
+ enum ParseErrorCode {
65
+ kParseErrorNone = 0, //!< No error.
66
+
67
+ kParseErrorDocumentEmpty, //!< The document is empty.
68
+ kParseErrorDocumentRootNotSingular, //!< The document root must not follow by other values.
69
+
70
+ kParseErrorValueInvalid, //!< Invalid value.
71
+
72
+ kParseErrorObjectMissName, //!< Missing a name for object member.
73
+ kParseErrorObjectMissColon, //!< Missing a colon after a name of object member.
74
+ kParseErrorObjectMissCommaOrCurlyBracket, //!< Missing a comma or '}' after an object member.
75
+
76
+ kParseErrorArrayMissCommaOrSquareBracket, //!< Missing a comma or ']' after an array element.
77
+
78
+ kParseErrorStringUnicodeEscapeInvalidHex, //!< Incorrect hex digit after \\u escape in string.
79
+ kParseErrorStringUnicodeSurrogateInvalid, //!< The surrogate pair in string is invalid.
80
+ kParseErrorStringEscapeInvalid, //!< Invalid escape character in string.
81
+ kParseErrorStringMissQuotationMark, //!< Missing a closing quotation mark in string.
82
+ kParseErrorStringInvalidEncoding, //!< Invalid encoding in string.
83
+
84
+ kParseErrorNumberTooBig, //!< Number too big to be stored in double.
85
+ kParseErrorNumberMissFraction, //!< Miss fraction part in number.
86
+ kParseErrorNumberMissExponent, //!< Miss exponent in number.
87
+
88
+ kParseErrorTermination, //!< Parsing was terminated.
89
+ kParseErrorUnspecificSyntaxError //!< Unspecific syntax error.
90
+ };
91
+
92
+ //! Result of parsing (wraps ParseErrorCode)
93
+ /*!
94
+ \ingroup RAPIDJSON_ERRORS
95
+ \code
96
+ Document doc;
97
+ ParseResult ok = doc.Parse("[42]");
98
+ if (!ok) {
99
+ fprintf(stderr, "JSON parse error: %s (%u)",
100
+ GetParseError_En(ok.Code()), ok.Offset());
101
+ exit(EXIT_FAILURE);
102
+ }
103
+ \endcode
104
+ \see GenericReader::Parse, GenericDocument::Parse
105
+ */
106
+ struct ParseResult {
107
+ public:
108
+ //! Default constructor, no error.
109
+ ParseResult() : code_(kParseErrorNone), offset_(0) {}
110
+ //! Constructor to set an error.
111
+ ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {}
112
+
113
+ //! Get the error code.
114
+ ParseErrorCode Code() const { return code_; }
115
+ //! Get the error offset, if \ref IsError(), 0 otherwise.
116
+ size_t Offset() const { return offset_; }
117
+
118
+ //! Conversion to \c bool, returns \c true, iff !\ref IsError().
119
+ operator bool() const { return !IsError(); }
120
+ //! Whether the result is an error.
121
+ bool IsError() const { return code_ != kParseErrorNone; }
122
+
123
+ bool operator==(const ParseResult& that) const { return code_ == that.code_; }
124
+ bool operator==(ParseErrorCode code) const { return code_ == code; }
125
+ friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; }
126
+
127
+ //! Reset error code.
128
+ void Clear() { Set(kParseErrorNone); }
129
+ //! Update error code and offset.
130
+ void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; }
131
+
132
+ private:
133
+ ParseErrorCode code_;
134
+ size_t offset_;
135
+ };
136
+
137
+ //! Function pointer type of GetParseError().
138
+ /*! \ingroup RAPIDJSON_ERRORS
139
+
140
+ This is the prototype for \c GetParseError_X(), where \c X is a locale.
141
+ User can dynamically change locale in runtime, e.g.:
142
+ \code
143
+ GetParseErrorFunc GetParseError = GetParseError_En; // or whatever
144
+ const RAPIDJSON_ERROR_CHARTYPE* s = GetParseError(document.GetParseErrorCode());
145
+ \endcode
146
+ */
147
+ typedef const RAPIDJSON_ERROR_CHARTYPE* (*GetParseErrorFunc)(ParseErrorCode);
148
+
149
+ RAPIDJSON_NAMESPACE_END
150
+
151
+ #ifdef __clang__
152
+ RAPIDJSON_DIAG_POP
153
+ #endif
154
+
155
+ #endif // RAPIDJSON_ERROR_ERROR_H_
@@ -0,0 +1,99 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_FILEREADSTREAM_H_
16
+ #define RAPIDJSON_FILEREADSTREAM_H_
17
+
18
+ #include "stream.h"
19
+ #include <cstdio>
20
+
21
+ #ifdef __clang__
22
+ RAPIDJSON_DIAG_PUSH
23
+ RAPIDJSON_DIAG_OFF(padded)
24
+ RAPIDJSON_DIAG_OFF(unreachable-code)
25
+ RAPIDJSON_DIAG_OFF(missing-noreturn)
26
+ #endif
27
+
28
+ RAPIDJSON_NAMESPACE_BEGIN
29
+
30
+ //! File byte stream for input using fread().
31
+ /*!
32
+ \note implements Stream concept
33
+ */
34
+ class FileReadStream {
35
+ public:
36
+ typedef char Ch; //!< Character type (byte).
37
+
38
+ //! Constructor.
39
+ /*!
40
+ \param fp File pointer opened for read.
41
+ \param buffer user-supplied buffer.
42
+ \param bufferSize size of buffer in bytes. Must >=4 bytes.
43
+ */
44
+ FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
45
+ RAPIDJSON_ASSERT(fp_ != 0);
46
+ RAPIDJSON_ASSERT(bufferSize >= 4);
47
+ Read();
48
+ }
49
+
50
+ Ch Peek() const { return *current_; }
51
+ Ch Take() { Ch c = *current_; Read(); return c; }
52
+ size_t Tell() const { return count_ + static_cast<size_t>(current_ - buffer_); }
53
+
54
+ // Not implemented
55
+ void Put(Ch) { RAPIDJSON_ASSERT(false); }
56
+ void Flush() { RAPIDJSON_ASSERT(false); }
57
+ Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
58
+ size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
59
+
60
+ // For encoding detection only.
61
+ const Ch* Peek4() const {
62
+ return (current_ + 4 <= bufferLast_) ? current_ : 0;
63
+ }
64
+
65
+ private:
66
+ void Read() {
67
+ if (current_ < bufferLast_)
68
+ ++current_;
69
+ else if (!eof_) {
70
+ count_ += readCount_;
71
+ readCount_ = fread(buffer_, 1, bufferSize_, fp_);
72
+ bufferLast_ = buffer_ + readCount_ - 1;
73
+ current_ = buffer_;
74
+
75
+ if (readCount_ < bufferSize_) {
76
+ buffer_[readCount_] = '\0';
77
+ ++bufferLast_;
78
+ eof_ = true;
79
+ }
80
+ }
81
+ }
82
+
83
+ std::FILE* fp_;
84
+ Ch *buffer_;
85
+ size_t bufferSize_;
86
+ Ch *bufferLast_;
87
+ Ch *current_;
88
+ size_t readCount_;
89
+ size_t count_; //!< Number of characters read
90
+ bool eof_;
91
+ };
92
+
93
+ RAPIDJSON_NAMESPACE_END
94
+
95
+ #ifdef __clang__
96
+ RAPIDJSON_DIAG_POP
97
+ #endif
98
+
99
+ #endif // RAPIDJSON_FILESTREAM_H_
@@ -0,0 +1,104 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_FILEWRITESTREAM_H_
16
+ #define RAPIDJSON_FILEWRITESTREAM_H_
17
+
18
+ #include "stream.h"
19
+ #include <cstdio>
20
+
21
+ #ifdef __clang__
22
+ RAPIDJSON_DIAG_PUSH
23
+ RAPIDJSON_DIAG_OFF(unreachable-code)
24
+ #endif
25
+
26
+ RAPIDJSON_NAMESPACE_BEGIN
27
+
28
+ //! Wrapper of C file stream for input using fread().
29
+ /*!
30
+ \note implements Stream concept
31
+ */
32
+ class FileWriteStream {
33
+ public:
34
+ typedef char Ch; //!< Character type. Only support char.
35
+
36
+ FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) {
37
+ RAPIDJSON_ASSERT(fp_ != 0);
38
+ }
39
+
40
+ void Put(char c) {
41
+ if (current_ >= bufferEnd_)
42
+ Flush();
43
+
44
+ *current_++ = c;
45
+ }
46
+
47
+ void PutN(char c, size_t n) {
48
+ size_t avail = static_cast<size_t>(bufferEnd_ - current_);
49
+ while (n > avail) {
50
+ std::memset(current_, c, avail);
51
+ current_ += avail;
52
+ Flush();
53
+ n -= avail;
54
+ avail = static_cast<size_t>(bufferEnd_ - current_);
55
+ }
56
+
57
+ if (n > 0) {
58
+ std::memset(current_, c, n);
59
+ current_ += n;
60
+ }
61
+ }
62
+
63
+ void Flush() {
64
+ if (current_ != buffer_) {
65
+ size_t result = fwrite(buffer_, 1, static_cast<size_t>(current_ - buffer_), fp_);
66
+ if (result < static_cast<size_t>(current_ - buffer_)) {
67
+ // failure deliberately ignored at this time
68
+ // added to avoid warn_unused_result build errors
69
+ }
70
+ current_ = buffer_;
71
+ }
72
+ }
73
+
74
+ // Not implemented
75
+ char Peek() const { RAPIDJSON_ASSERT(false); return 0; }
76
+ char Take() { RAPIDJSON_ASSERT(false); return 0; }
77
+ size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; }
78
+ char* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
79
+ size_t PutEnd(char*) { RAPIDJSON_ASSERT(false); return 0; }
80
+
81
+ private:
82
+ // Prohibit copy constructor & assignment operator.
83
+ FileWriteStream(const FileWriteStream&);
84
+ FileWriteStream& operator=(const FileWriteStream&);
85
+
86
+ std::FILE* fp_;
87
+ char *buffer_;
88
+ char *bufferEnd_;
89
+ char *current_;
90
+ };
91
+
92
+ //! Implement specialized version of PutN() with memset() for better performance.
93
+ template<>
94
+ inline void PutN(FileWriteStream& stream, char c, size_t n) {
95
+ stream.PutN(c, n);
96
+ }
97
+
98
+ RAPIDJSON_NAMESPACE_END
99
+
100
+ #ifdef __clang__
101
+ RAPIDJSON_DIAG_POP
102
+ #endif
103
+
104
+ #endif // RAPIDJSON_FILESTREAM_H_
@@ -0,0 +1,151 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_FWD_H_
16
+ #define RAPIDJSON_FWD_H_
17
+
18
+ #include "rapidjson.h"
19
+
20
+ RAPIDJSON_NAMESPACE_BEGIN
21
+
22
+ // encodings.h
23
+
24
+ template<typename CharType> struct UTF8;
25
+ template<typename CharType> struct UTF16;
26
+ template<typename CharType> struct UTF16BE;
27
+ template<typename CharType> struct UTF16LE;
28
+ template<typename CharType> struct UTF32;
29
+ template<typename CharType> struct UTF32BE;
30
+ template<typename CharType> struct UTF32LE;
31
+ template<typename CharType> struct ASCII;
32
+ template<typename CharType> struct AutoUTF;
33
+
34
+ template<typename SourceEncoding, typename TargetEncoding>
35
+ struct Transcoder;
36
+
37
+ // allocators.h
38
+
39
+ class CrtAllocator;
40
+
41
+ template <typename BaseAllocator>
42
+ class MemoryPoolAllocator;
43
+
44
+ // stream.h
45
+
46
+ template <typename Encoding>
47
+ struct GenericStringStream;
48
+
49
+ typedef GenericStringStream<UTF8<char> > StringStream;
50
+
51
+ template <typename Encoding>
52
+ struct GenericInsituStringStream;
53
+
54
+ typedef GenericInsituStringStream<UTF8<char> > InsituStringStream;
55
+
56
+ // stringbuffer.h
57
+
58
+ template <typename Encoding, typename Allocator>
59
+ class GenericStringBuffer;
60
+
61
+ typedef GenericStringBuffer<UTF8<char>, CrtAllocator> StringBuffer;
62
+
63
+ // filereadstream.h
64
+
65
+ class FileReadStream;
66
+
67
+ // filewritestream.h
68
+
69
+ class FileWriteStream;
70
+
71
+ // memorybuffer.h
72
+
73
+ template <typename Allocator>
74
+ struct GenericMemoryBuffer;
75
+
76
+ typedef GenericMemoryBuffer<CrtAllocator> MemoryBuffer;
77
+
78
+ // memorystream.h
79
+
80
+ struct MemoryStream;
81
+
82
+ // reader.h
83
+
84
+ template<typename Encoding, typename Derived>
85
+ struct BaseReaderHandler;
86
+
87
+ template <typename SourceEncoding, typename TargetEncoding, typename StackAllocator>
88
+ class GenericReader;
89
+
90
+ typedef GenericReader<UTF8<char>, UTF8<char>, CrtAllocator> Reader;
91
+
92
+ // writer.h
93
+
94
+ template<typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator, unsigned writeFlags>
95
+ class Writer;
96
+
97
+ // prettywriter.h
98
+
99
+ template<typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator, unsigned writeFlags>
100
+ class PrettyWriter;
101
+
102
+ // document.h
103
+
104
+ template <typename Encoding, typename Allocator>
105
+ struct GenericMember;
106
+
107
+ template <bool Const, typename Encoding, typename Allocator>
108
+ class GenericMemberIterator;
109
+
110
+ template<typename CharType>
111
+ struct GenericStringRef;
112
+
113
+ template <typename Encoding, typename Allocator>
114
+ class GenericValue;
115
+
116
+ typedef GenericValue<UTF8<char>, MemoryPoolAllocator<CrtAllocator> > Value;
117
+
118
+ template <typename Encoding, typename Allocator, typename StackAllocator>
119
+ class GenericDocument;
120
+
121
+ typedef GenericDocument<UTF8<char>, MemoryPoolAllocator<CrtAllocator>, CrtAllocator> Document;
122
+
123
+ // pointer.h
124
+
125
+ template <typename ValueType, typename Allocator>
126
+ class GenericPointer;
127
+
128
+ typedef GenericPointer<Value, CrtAllocator> Pointer;
129
+
130
+ // schema.h
131
+
132
+ template <typename SchemaDocumentType>
133
+ class IGenericRemoteSchemaDocumentProvider;
134
+
135
+ template <typename ValueT, typename Allocator>
136
+ class GenericSchemaDocument;
137
+
138
+ typedef GenericSchemaDocument<Value, CrtAllocator> SchemaDocument;
139
+ typedef IGenericRemoteSchemaDocumentProvider<SchemaDocument> IRemoteSchemaDocumentProvider;
140
+
141
+ template <
142
+ typename SchemaDocumentType,
143
+ typename OutputHandler,
144
+ typename StateAllocator>
145
+ class GenericSchemaValidator;
146
+
147
+ typedef GenericSchemaValidator<SchemaDocument, BaseReaderHandler<UTF8<char>, void>, CrtAllocator> SchemaValidator;
148
+
149
+ RAPIDJSON_NAMESPACE_END
150
+
151
+ #endif // RAPIDJSON_RAPIDJSONFWD_H_