JSONStringBuilder.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. namespace Js
  7. {
  8. class JSONStringBuilder
  9. {
  10. private:
  11. ScriptContext* scriptContext;
  12. const char16* endLocation;
  13. char16* currentLocation;
  14. JSONProperty* jsonContent;
  15. const char16* gap;
  16. charcount_t gapLength;
  17. uint32 indentLevel;
  18. void AppendGap(uint32 count);
  19. void AppendCharacter(char16 character);
  20. void AppendBuffer(_In_ const char16* buffer, charcount_t length);
  21. void AppendString(_In_ JavascriptString* str);
  22. void AppendEscapeSequence(_In_ const char16 character);
  23. void EscapeAndAppendString(_In_ JavascriptString* str);
  24. void AppendObjectString(_In_ JSONObject* valueList);
  25. void AppendArrayString(_In_ JSONArray* valueArray);
  26. void AppendJSONPropertyString(_In_ JSONProperty* prop);
  27. public:
  28. JSONStringBuilder(
  29. _In_ ScriptContext* scriptContext,
  30. _In_ JSONProperty* jsonContent,
  31. _In_ char16* buffer,
  32. charcount_t bufferLength,
  33. _In_opt_ const char16* gap,
  34. charcount_t gapLength);
  35. void Build();
  36. };
  37. } // namespace Js