blob: 6c73bf546f8647c3f7d43f98a0ef96923de6c690 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef DOMArrayBufferBase_h
#define DOMArrayBufferBase_h
#include "bindings/core/v8/ScriptWrappable.h"
#include "core/CoreExport.h"
#include "wtf/ArrayBuffer.h"
#include "wtf/RefCounted.h"
namespace blink {
class CORE_EXPORT DOMArrayBufferBase : public RefCounted<DOMArrayBufferBase>, public ScriptWrappable {
public:
virtual ~DOMArrayBufferBase() { }
const WTF::ArrayBuffer* buffer() const { return m_buffer.get(); }
WTF::ArrayBuffer* buffer() { return m_buffer.get(); }
const void* data() const { return buffer()->data(); }
void* data() { return buffer()->data(); }
unsigned byteLength() const { return buffer()->byteLength(); }
bool transfer(WTF::ArrayBufferContents& result) { return buffer()->transfer(result); }
bool shareContentsWith(WTF::ArrayBufferContents& result) { return buffer()->shareContentsWith(result); }
bool isNeutered() const { return buffer()->isNeutered(); }
bool isShared() const { return buffer()->isShared(); }
v8::Local<v8::Object> wrap(v8::Isolate*, v8::Local<v8::Object> creationContext) override
{
ASSERT_NOT_REACHED();
return v8::Local<v8::Object>();
}
protected:
explicit DOMArrayBufferBase(PassRefPtr<WTF::ArrayBuffer> buffer)
: m_buffer(buffer)
{
ASSERT(m_buffer);
}
RefPtr<WTF::ArrayBuffer> m_buffer;
};
} // namespace blink
#endif // DOMArrayBuffer_h