WebSerializedScriptValue.h [plain text]
#ifndef WebSerializedScriptValue_h
#define WebSerializedScriptValue_h
#include "APIObject.h"
#include "DataReference.h"
#include <WebCore/SerializedScriptValue.h>
#include <wtf/RefPtr.h>
namespace WebKit {
class WebSerializedScriptValue : public TypedAPIObject<APIObject::TypeSerializedScriptValue> {
public:
static PassRefPtr<WebSerializedScriptValue> create(PassRefPtr<WebCore::SerializedScriptValue> serializedValue)
{
return adoptRef(new WebSerializedScriptValue(serializedValue));
}
static PassRefPtr<WebSerializedScriptValue> create(JSContextRef context, JSValueRef value, JSValueRef* exception)
{
RefPtr<WebCore::SerializedScriptValue> serializedValue = WebCore::SerializedScriptValue::create(context, value, exception);
if (!serializedValue)
return 0;
return adoptRef(new WebSerializedScriptValue(serializedValue.get()));
}
static PassRefPtr<WebSerializedScriptValue> adopt(Vector<uint8_t>& buffer)
{
return adoptRef(new WebSerializedScriptValue(WebCore::SerializedScriptValue::adopt(buffer)));
}
JSValueRef deserialize(JSContextRef context, JSValueRef* exception)
{
return m_serializedScriptValue->deserialize(context, exception);
}
CoreIPC::DataReference dataReference() const { return m_serializedScriptValue->data(); }
void* internalRepresentation() { return m_serializedScriptValue.get(); }
private:
explicit WebSerializedScriptValue(PassRefPtr<WebCore::SerializedScriptValue> serializedScriptValue)
: m_serializedScriptValue(serializedScriptValue)
{
}
RefPtr<WebCore::SerializedScriptValue> m_serializedScriptValue;
};
}
#endif // WebSerializedScriptValue_h