From 5d8375007754101ff2889d0e79486c8f9b7cf5ab Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 3 Sep 2017 11:22:38 -0700 Subject: Initial commit --- src/dutil/inc/jsonutil.h | 112 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/dutil/inc/jsonutil.h (limited to 'src/dutil/inc/jsonutil.h') diff --git a/src/dutil/inc/jsonutil.h b/src/dutil/inc/jsonutil.h new file mode 100644 index 00000000..b05e9970 --- /dev/null +++ b/src/dutil/inc/jsonutil.h @@ -0,0 +1,112 @@ +#pragma once +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum JSON_TOKEN +{ + JSON_TOKEN_NONE, + JSON_TOKEN_ARRAY_START, + JSON_TOKEN_ARRAY_VALUE, + JSON_TOKEN_ARRAY_END, + JSON_TOKEN_OBJECT_START, + JSON_TOKEN_OBJECT_KEY, + JSON_TOKEN_OBJECT_VALUE, + JSON_TOKEN_OBJECT_END, + JSON_TOKEN_VALUE, +} JSON_TOKEN; + +typedef struct _JSON_VALUE +{ +} JSON_VALUE; + +typedef struct _JSON_READER +{ + CRITICAL_SECTION cs; + LPWSTR sczJson; + + LPWSTR pwz; + JSON_TOKEN token; +} JSON_READER; + +typedef struct _JSON_WRITER +{ + CRITICAL_SECTION cs; + LPWSTR sczJson; + + JSON_TOKEN* rgTokenStack; + DWORD cTokens; + DWORD cMaxTokens; +} JSON_WRITER; + + +DAPI_(HRESULT) JsonInitializeReader( + __in_z LPCWSTR wzJson, + __in JSON_READER* pReader + ); + +DAPI_(void) JsonUninitializeReader( + __in JSON_READER* pReader + ); + +DAPI_(HRESULT) JsonReadNext( + __in JSON_READER* pReader, + __out JSON_TOKEN* pToken, + __out JSON_VALUE* pValue + ); + +DAPI_(HRESULT) JsonReadValue( + __in JSON_READER* pReader, + __in JSON_VALUE* pValue + ); + +DAPI_(HRESULT) JsonInitializeWriter( + __in JSON_WRITER* pWriter + ); + +DAPI_(void) JsonUninitializeWriter( + __in JSON_WRITER* pWriter + ); + +DAPI_(HRESULT) JsonWriteBool( + __in JSON_WRITER* pWriter, + __in BOOL fValue + ); + +DAPI_(HRESULT) JsonWriteNumber( + __in JSON_WRITER* pWriter, + __in DWORD dwValue + ); + +DAPI_(HRESULT) JsonWriteString( + __in JSON_WRITER* pWriter, + __in_z LPCWSTR wzValue + ); + +DAPI_(HRESULT) JsonWriteArrayStart( + __in JSON_WRITER* pWriter + ); + +DAPI_(HRESULT) JsonWriteArrayEnd( + __in JSON_WRITER* pWriter + ); + +DAPI_(HRESULT) JsonWriteObjectStart( + __in JSON_WRITER* pWriter + ); + +DAPI_(HRESULT) JsonWriteObjectKey( + __in JSON_WRITER* pWriter, + __in_z LPCWSTR wzKey + ); + +DAPI_(HRESULT) JsonWriteObjectEnd( + __in JSON_WRITER* pWriter + ); + +#ifdef __cplusplus +} +#endif -- cgit v1.2.3-55-g6feb