VR-Vantage 2.8 API Documentation
Home
Modules
Namespaces
Classes
Files
Libraries
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
rapidjson
error
error.h
Go to the documentation of this file.
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
29
30
// RAPIDJSON_ERROR_CHARTYPE
31
33
38
#ifndef RAPIDJSON_ERROR_CHARTYPE
39
#define RAPIDJSON_ERROR_CHARTYPE char
40
#endif
41
43
// RAPIDJSON_ERROR_STRING
44
46
51
#ifndef RAPIDJSON_ERROR_STRING
52
#define RAPIDJSON_ERROR_STRING(x) x
53
#endif
54
55
RAPIDJSON_NAMESPACE_BEGIN
56
58
// ParseErrorCode
59
61
64
enum
ParseErrorCode
{
65
kParseErrorNone
= 0,
66
67
kParseErrorDocumentEmpty
,
68
kParseErrorDocumentRootNotSingular
,
69
70
kParseErrorValueInvalid
,
71
72
kParseErrorObjectMissName
,
73
kParseErrorObjectMissColon
,
74
kParseErrorObjectMissCommaOrCurlyBracket
,
75
76
kParseErrorArrayMissCommaOrSquareBracket
,
77
78
kParseErrorStringUnicodeEscapeInvalidHex
,
79
kParseErrorStringUnicodeSurrogateInvalid
,
80
kParseErrorStringEscapeInvalid
,
81
kParseErrorStringMissQuotationMark
,
82
kParseErrorStringInvalidEncoding
,
83
84
kParseErrorNumberTooBig
,
85
kParseErrorNumberMissFraction
,
86
kParseErrorNumberMissExponent
,
87
88
kParseErrorTermination
,
89
kParseErrorUnspecificSyntaxError
90
};
91
93
106
struct
ParseResult
{
107
public
:
109
ParseResult
() :
code_
(
kParseErrorNone
),
offset_
(0) {}
111
ParseResult
(
ParseErrorCode
code,
size_t
offset
) :
code_
(code),
offset_
(offset) {}
112
114
ParseErrorCode
Code
()
const
{
return
code_
; }
116
size_t
Offset
()
const
{
return
offset_
; }
117
119
operator
bool
()
const
{
return
!
IsError
(); }
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
128
void
Clear
() {
Set
(
kParseErrorNone
); }
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
138
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_
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (
www.mak.com
)