BitMatrixParser.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef __BIT_MATRIX_PARSER_H__
  2. #define __BIT_MATRIX_PARSER_H__
  3. /*
  4. * BitMatrixParser.h
  5. * zxing
  6. *
  7. * Copyright 2010 ZXing authors All rights reserved.
  8. *
  9. * Licensed under the Apache License, Version 2.0 (the "License");
  10. * you may not use this file except in compliance with the License.
  11. * You may obtain a copy of the License at
  12. *
  13. * http://www.apache.org/licenses/LICENSE-2.0
  14. *
  15. * Unless required by applicable law or agreed to in writing, software
  16. * distributed under the License is distributed on an "AS IS" BASIS,
  17. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. * See the License for the specific language governing permissions and
  19. * limitations under the License.
  20. */
  21. #include <zxing/ReaderException.h>
  22. #include <zxing/common/BitMatrix.h>
  23. #include <zxing/common/Counted.h>
  24. #include <zxing/common/Array.h>
  25. #include <zxing/qrcode/Version.h>
  26. #include <zxing/qrcode/FormatInformation.h>
  27. namespace zxing {
  28. namespace qrcode {
  29. class BitMatrixParser : public Counted {
  30. private:
  31. Ref<BitMatrix> bitMatrix_;
  32. Version *parsedVersion_;
  33. Ref<FormatInformation> parsedFormatInfo_;
  34. int copyBit(size_t x, size_t y, int versionBits);
  35. public:
  36. BitMatrixParser(Ref<BitMatrix> bitMatrix);
  37. Ref<FormatInformation> readFormatInformation();
  38. Version *readVersion();
  39. ArrayRef<char> readCodewords();
  40. private:
  41. BitMatrixParser(const BitMatrixParser&);
  42. BitMatrixParser& operator =(const BitMatrixParser&);
  43. };
  44. }
  45. }
  46. #endif // __BIT_MATRIX_PARSER_H__