1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved.
2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be
3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file.
4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef _BC_COMMONBYTEARRAY_H_
8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define _BC_COMMONBYTEARRAY_H_
9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CBC_CommonByteArray {
10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private:
11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  int32_t m_size;
12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  int32_t m_index;
13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  uint8_t* m_bytes;
14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann
15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public:
16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CBC_CommonByteArray();
17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CBC_CommonByteArray(int32_t size);
18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  CBC_CommonByteArray(uint8_t* byteArray, int32_t size);
19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  virtual ~CBC_CommonByteArray();
20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  int32_t At(int32_t index);
21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void Set(int32_t index, int32_t value);
22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  int32_t Size();
23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  FX_BOOL IsEmpty();
24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void AppendByte(int32_t value);
25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void Reserve(int32_t capacity);
26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void Set(uint8_t* source, int32_t offset, int32_t count);
27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann  void Set(CFX_ByteArray* source, int32_t offset, int32_t count);
28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann};
29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif
30