aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/json/json_reader.h
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:17 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:17 +0300
commitd3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch)
treedd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/json/json_reader.h
parent72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff)
downloadydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/json/json_reader.h')
-rw-r--r--library/cpp/json/json_reader.h168
1 files changed, 84 insertions, 84 deletions
diff --git a/library/cpp/json/json_reader.h b/library/cpp/json/json_reader.h
index 674b3f6abf..b673788330 100644
--- a/library/cpp/json/json_reader.h
+++ b/library/cpp/json/json_reader.h
@@ -4,7 +4,7 @@
#include <library/cpp/json/common/defs.h>
#include <library/cpp/json/fast_sax/parser.h>
-
+
#include <util/generic/yexception.h>
#include <util/stream/input.h>
@@ -12,37 +12,37 @@
#include <util/stream/mem.h>
namespace NJson {
- struct TJsonReaderConfig {
- TJsonReaderConfig();
+ struct TJsonReaderConfig {
+ TJsonReaderConfig();
- // js-style comments (both // and /**/)
- bool AllowComments = false;
- bool DontValidateUtf8 = false;
+ // js-style comments (both // and /**/)
+ bool AllowComments = false;
+ bool DontValidateUtf8 = false;
bool AllowEscapedApostrophe = false;
- void SetBufferSize(size_t bufferSize);
- size_t GetBufferSize() const;
+ void SetBufferSize(size_t bufferSize);
+ size_t GetBufferSize() const;
- private:
- size_t BufferSize;
- };
+ private:
+ size_t BufferSize;
+ };
- bool ReadJsonTree(TStringBuf in, TJsonValue* out, bool throwOnError = false);
- bool ReadJsonTree(TStringBuf in, bool allowComments, TJsonValue* out, bool throwOnError = false);
- bool ReadJsonTree(TStringBuf in, const TJsonReaderConfig* config, TJsonValue* out, bool throwOnError = false);
+ bool ReadJsonTree(TStringBuf in, TJsonValue* out, bool throwOnError = false);
+ bool ReadJsonTree(TStringBuf in, bool allowComments, TJsonValue* out, bool throwOnError = false);
+ bool ReadJsonTree(TStringBuf in, const TJsonReaderConfig* config, TJsonValue* out, bool throwOnError = false);
- bool ReadJsonTree(IInputStream* in, TJsonValue* out, bool throwOnError = false);
- bool ReadJsonTree(IInputStream* in, bool allowComments, TJsonValue* out, bool throwOnError = false);
- bool ReadJsonTree(IInputStream* in, const TJsonReaderConfig* config, TJsonValue* out, bool throwOnError = false);
+ bool ReadJsonTree(IInputStream* in, TJsonValue* out, bool throwOnError = false);
+ bool ReadJsonTree(IInputStream* in, bool allowComments, TJsonValue* out, bool throwOnError = false);
+ bool ReadJsonTree(IInputStream* in, const TJsonReaderConfig* config, TJsonValue* out, bool throwOnError = false);
- TJsonValue ReadJsonTree(IInputStream* in, bool throwOnError = false);
- TJsonValue ReadJsonTree(IInputStream* in, bool allowComments, bool throwOnError);
- TJsonValue ReadJsonTree(IInputStream* in, const TJsonReaderConfig* config, bool throwOnError = false);
+ TJsonValue ReadJsonTree(IInputStream* in, bool throwOnError = false);
+ TJsonValue ReadJsonTree(IInputStream* in, bool allowComments, bool throwOnError);
+ TJsonValue ReadJsonTree(IInputStream* in, const TJsonReaderConfig* config, bool throwOnError = false);
- bool ReadJson(IInputStream* in, TJsonCallbacks* callbacks);
- bool ReadJson(IInputStream* in, bool allowComments, TJsonCallbacks* callbacks);
+ bool ReadJson(IInputStream* in, TJsonCallbacks* callbacks);
+ bool ReadJson(IInputStream* in, bool allowComments, TJsonCallbacks* callbacks);
bool ReadJson(IInputStream* in, bool allowComments, bool allowEscapedApostrophe, TJsonCallbacks* callbacks);
- bool ReadJson(IInputStream* in, const TJsonReaderConfig* config, TJsonCallbacks* callbacks);
+ bool ReadJson(IInputStream* in, const TJsonReaderConfig* config, TJsonCallbacks* callbacks);
enum ReaderConfigFlags {
COMMENTS = 0b100,
@@ -60,79 +60,79 @@ namespace NJson {
NOCOMMENTS_NOVALID_ESCAPE = 0b001,
};
- inline bool ValidateJson(IInputStream* in, const TJsonReaderConfig* config, bool throwOnError = false) {
- TJsonCallbacks c(throwOnError);
- return ReadJson(in, config, &c);
- }
+ inline bool ValidateJson(IInputStream* in, const TJsonReaderConfig* config, bool throwOnError = false) {
+ TJsonCallbacks c(throwOnError);
+ return ReadJson(in, config, &c);
+ }
- inline bool ValidateJson(TStringBuf in, const TJsonReaderConfig& config = TJsonReaderConfig(), bool throwOnError = false) {
+ inline bool ValidateJson(TStringBuf in, const TJsonReaderConfig& config = TJsonReaderConfig(), bool throwOnError = false) {
TMemoryInput min(in.data(), in.size());
- return ValidateJson(&min, &config, throwOnError);
- }
+ return ValidateJson(&min, &config, throwOnError);
+ }
- inline bool ValidateJsonThrow(IInputStream* in, const TJsonReaderConfig* config) {
- return ValidateJson(in, config, true);
- }
+ inline bool ValidateJsonThrow(IInputStream* in, const TJsonReaderConfig* config) {
+ return ValidateJson(in, config, true);
+ }
- inline bool ValidateJsonThrow(TStringBuf in, const TJsonReaderConfig& config = TJsonReaderConfig()) {
- return ValidateJson(in, config, true);
- }
+ inline bool ValidateJsonThrow(TStringBuf in, const TJsonReaderConfig& config = TJsonReaderConfig()) {
+ return ValidateJson(in, config, true);
+ }
- class TParserCallbacks: public TJsonCallbacks {
- public:
+ class TParserCallbacks: public TJsonCallbacks {
+ public:
TParserCallbacks(TJsonValue& value, bool throwOnError = false, bool notClosedBracketIsError = false);
- bool OnNull() override;
- bool OnBoolean(bool val) override;
- bool OnInteger(long long val) override;
- bool OnUInteger(unsigned long long val) override;
- bool OnString(const TStringBuf& val) override;
- bool OnDouble(double val) override;
- bool OnOpenArray() override;
- bool OnCloseArray() override;
- bool OnOpenMap() override;
- bool OnCloseMap() override;
- bool OnMapKey(const TStringBuf& val) override;
+ bool OnNull() override;
+ bool OnBoolean(bool val) override;
+ bool OnInteger(long long val) override;
+ bool OnUInteger(unsigned long long val) override;
+ bool OnString(const TStringBuf& val) override;
+ bool OnDouble(double val) override;
+ bool OnOpenArray() override;
+ bool OnCloseArray() override;
+ bool OnOpenMap() override;
+ bool OnCloseMap() override;
+ bool OnMapKey(const TStringBuf& val) override;
bool OnEnd() override;
- protected:
- TJsonValue& Value;
- TString Key;
- TVector<TJsonValue*> ValuesStack;
+ protected:
+ TJsonValue& Value;
+ TString Key;
+ TVector<TJsonValue*> ValuesStack;
bool NotClosedBracketIsError;
- enum {
- START,
- AFTER_MAP_KEY,
- IN_MAP,
- IN_ARRAY,
- FINISH
- } CurrentState;
-
- template <class T>
- bool SetValue(const T& value) {
- switch (CurrentState) {
- case START:
- Value.SetValue(value);
- break;
- case AFTER_MAP_KEY:
- ValuesStack.back()->InsertValue(Key, value);
- CurrentState = IN_MAP;
- break;
- case IN_ARRAY:
- ValuesStack.back()->AppendValue(value);
- break;
- case IN_MAP:
- case FINISH:
- return false;
- default:
- ythrow yexception() << "TParserCallbacks::SetValue invalid enum";
- }
- return true;
+ enum {
+ START,
+ AFTER_MAP_KEY,
+ IN_MAP,
+ IN_ARRAY,
+ FINISH
+ } CurrentState;
+
+ template <class T>
+ bool SetValue(const T& value) {
+ switch (CurrentState) {
+ case START:
+ Value.SetValue(value);
+ break;
+ case AFTER_MAP_KEY:
+ ValuesStack.back()->InsertValue(Key, value);
+ CurrentState = IN_MAP;
+ break;
+ case IN_ARRAY:
+ ValuesStack.back()->AppendValue(value);
+ break;
+ case IN_MAP:
+ case FINISH:
+ return false;
+ default:
+ ythrow yexception() << "TParserCallbacks::SetValue invalid enum";
+ }
+ return true;
}
- bool OpenComplexValue(EJsonValueType type);
- bool CloseComplexValue();
- };
+ bool OpenComplexValue(EJsonValueType type);
+ bool CloseComplexValue();
+ };
//// relaxed json, used in library/cpp/scheme
bool ReadJsonFastTree(TStringBuf in, TJsonValue* out, bool throwOnError = false, bool notClosedBracketIsError = false);