1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
8 #include "wtf/Forward.h"
9 #include "wtf/WTFExport.h"
13 // This class is for passing around un-owned bytes as a pointer + length.
14 // It supports implicit conversion from several other data types.
16 // ArrayPiece has the concept of being "null". This is different from an empty
17 // byte range. It is invalid to call methods other than isNull() on such
20 // IMPORTANT: The data contained by ArrayPiece is NOT OWNED, so caution must be
21 // taken to ensure it is kept alive.
22 class WTF_EXPORT ArrayPiece
{
24 // Constructs a "null" ArrayPiece object.
27 ArrayPiece(void* data
, unsigned byteLength
);
29 // Constructs an ArrayPiece from the given ArrayBuffer. If the input is a
30 // nullptr, then the constructed instance will be isNull().
31 ArrayPiece(ArrayBuffer
*);
32 ArrayPiece(ArrayBufferView
*);
36 unsigned char* bytes() const;
37 unsigned byteLength() const;
40 void initWithData(void* data
, unsigned byteLength
);
46 unsigned m_byteLength
;
52 using WTF::ArrayPiece
;
54 #endif // ArrayPiece_h