APISerializedScriptValue.h [plain text]
#ifndef APISerializedScriptValue_h
#define APISerializedScriptValue_h
#include "APIObject.h"
#include "DataReference.h"
#include <WebCore/SerializedScriptValue.h>
#include <wtf/RefPtr.h>
namespace API {
class SerializedScriptValue : public API::ObjectImpl<API::Object::Type::SerializedScriptValue> {
public:
static Ref<SerializedScriptValue> create(PassRefPtr<WebCore::SerializedScriptValue> serializedValue)
{
return adoptRef(*new SerializedScriptValue(serializedValue));
}
static RefPtr<SerializedScriptValue> create(JSContextRef context, JSValueRef value, JSValueRef* exception)
{
RefPtr<WebCore::SerializedScriptValue> serializedValue = WebCore::SerializedScriptValue::create(context, value, exception);
if (!serializedValue)
return nullptr;
return adoptRef(*new SerializedScriptValue(serializedValue.get()));
}
static Ref<SerializedScriptValue> adopt(Vector<uint8_t>& buffer)
{
return adoptRef(*new SerializedScriptValue(WebCore::SerializedScriptValue::adopt(buffer)));
}
JSValueRef deserialize(JSContextRef context, JSValueRef* exception)
{
return m_serializedScriptValue->deserialize(context, exception);
}
#if PLATFORM(COCOA) && defined(__OBJC__)
static id deserialize(WebCore::SerializedScriptValue&, JSValueRef* exception);
#endif
IPC::DataReference dataReference() const { return m_serializedScriptValue->data(); }
WebCore::SerializedScriptValue* internalRepresentation() { return m_serializedScriptValue.get(); }
private:
explicit SerializedScriptValue(PassRefPtr<WebCore::SerializedScriptValue> serializedScriptValue)
: m_serializedScriptValue(serializedScriptValue)
{
}
RefPtr<WebCore::SerializedScriptValue> m_serializedScriptValue;
};
}
#endif