| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- #pragma once
- namespace Js
- {
- namespace SCACore
- {
- class Serializer
- {
- public:
- Serializer(ScriptContext *scriptContext, HostStream *stream)
- : m_streamWriter(scriptContext, stream)
- {
- }
- HRESULT SetTransferableVars(Var *vars, size_t count);
- void WriteRawBytes(const void* source, size_t length);
- bool WriteValue(Var rootObject);
- bool DetachArrayBuffer();
- bool Release(byte** data, size_t *dataLength);
- private:
- StreamWriter m_streamWriter;
- Var* m_transferableVars = nullptr;
- size_t m_cTransferableVars = 0;
- };
- class Deserializer
- {
- public:
- Deserializer(void *data, size_t length, ScriptContext *scriptContext, HostReadStream *stream)
- : m_streamReader(scriptContext, (byte*)data, length, stream)
- {
- }
- HRESULT SetTransferableVars(Var *vars, size_t count);
- bool ReadRawBytes(size_t length, void **data);
- bool ReadBytes(size_t length, void **data);
- Var ReadValue();
- private:
- StreamReader m_streamReader;
- Var* m_transferableVars = nullptr;
- size_t m_cTransferableVars = 0;
- };
- }
- }
|