|  | // Copyright 2014 PDFium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
|  |  | 
|  | #ifndef FXBARCODE_DATAMATRIX_BC_SYMBOLINFO_H_ | 
|  | #define FXBARCODE_DATAMATRIX_BC_SYMBOLINFO_H_ | 
|  |  | 
|  | #include "core/fxcrt/fx_string.h" | 
|  | #include "core/fxcrt/fx_system.h" | 
|  |  | 
|  | class CBC_SymbolInfo { | 
|  | public: | 
|  | CBC_SymbolInfo(size_t dataCapacity, | 
|  | size_t errorCodewords, | 
|  | int32_t matrixWidth, | 
|  | int32_t matrixHeight, | 
|  | int32_t dataRegions); | 
|  | virtual ~CBC_SymbolInfo(); | 
|  |  | 
|  | static void Initialize(); | 
|  | static void Finalize(); | 
|  | static void overrideSymbolSet(CBC_SymbolInfo* override); | 
|  | static const CBC_SymbolInfo* Lookup(size_t iDataCodewords, | 
|  | bool bAllowRectangular); | 
|  |  | 
|  | int32_t getSymbolDataWidth() const; | 
|  | int32_t getSymbolDataHeight() const; | 
|  | int32_t getSymbolWidth() const; | 
|  | int32_t getSymbolHeight() const; | 
|  | size_t getCodewordCount() const; | 
|  | virtual size_t getInterleavedBlockCount() const; | 
|  | size_t getDataLengthForInterleavedBlock() const; | 
|  | size_t getErrorLengthForInterleavedBlock() const; | 
|  |  | 
|  | size_t dataCapacity() const { return m_dataCapacity; } | 
|  | size_t errorCodewords() const { return m_errorCodewords; } | 
|  | int32_t matrixWidth() const { return m_matrixWidth; } | 
|  | int32_t matrixHeight() const { return m_matrixHeight; } | 
|  |  | 
|  | protected: | 
|  | CBC_SymbolInfo(size_t dataCapacity, | 
|  | size_t errorCodewords, | 
|  | int32_t matrixWidth, | 
|  | int32_t matrixHeight, | 
|  | int32_t dataRegions, | 
|  | size_t rsBlockData, | 
|  | size_t rsBlockError); | 
|  |  | 
|  | private: | 
|  | int32_t getHorizontalDataRegions() const; | 
|  | int32_t getVerticalDataRegions() const; | 
|  |  | 
|  | const bool m_rectangular; | 
|  | const size_t m_dataCapacity; | 
|  | const size_t m_errorCodewords; | 
|  | const int32_t m_matrixWidth; | 
|  | const int32_t m_matrixHeight; | 
|  | const int32_t m_dataRegions; | 
|  | const size_t m_rsBlockData; | 
|  | const size_t m_rsBlockError; | 
|  | }; | 
|  |  | 
|  | #endif  // FXBARCODE_DATAMATRIX_BC_SYMBOLINFO_H_ |