1// Copyright 2014 PDFium 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.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef XFA_FXBARCODE_COMMON_BC_COMMONBYTEARRAY_H_
8#define XFA_FXBARCODE_COMMON_BC_COMMONBYTEARRAY_H_
9
10#include "core/fxcrt/fx_basic.h"
11
12// TODO(weili): The usage of this class should be replaced by
13// std::vector<uint8_t>.
14class CBC_CommonByteArray {
15 public:
16  CBC_CommonByteArray();
17  explicit CBC_CommonByteArray(int32_t size);
18  CBC_CommonByteArray(uint8_t* byteArray, int32_t size);
19  virtual ~CBC_CommonByteArray();
20
21  int32_t At(int32_t index) const;
22  int32_t Size() const;
23  bool IsEmpty() const;
24  void Set(int32_t index, int32_t value);
25  void AppendByte(int32_t value);
26  void Reserve(int32_t capacity);
27  void Set(uint8_t* source, int32_t offset, int32_t count);
28  void Set(CFX_ArrayTemplate<uint8_t>* source, int32_t offset, int32_t count);
29
30 private:
31  int32_t m_size;
32  int32_t m_index;
33  uint8_t* m_bytes;
34};
35
36#endif  // XFA_FXBARCODE_COMMON_BC_COMMONBYTEARRAY_H_
37