41 lines
912 B
C
41 lines
912 B
C
|
|
/*
|
||
|
|
* Copyright 2016 Huy Cuong Nguyen
|
||
|
|
* Copyright 2016 ZXing authors
|
||
|
|
*/
|
||
|
|
// SPDX-License-Identifier: Apache-2.0
|
||
|
|
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "AZToken.h"
|
||
|
|
|
||
|
|
#include <vector>
|
||
|
|
|
||
|
|
namespace ZXing::Aztec {
|
||
|
|
|
||
|
|
class Token;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* State represents all information about a sequence necessary to generate the current output.
|
||
|
|
* Note that a state is immutable.
|
||
|
|
*/
|
||
|
|
class EncodingState
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// The list of tokens that we output. If we are in Binary Shift mode, this
|
||
|
|
// token list does *not* yet included the token for those bytes
|
||
|
|
std::vector<Token> tokens;
|
||
|
|
|
||
|
|
// The current mode of the encoding (or the mode to which we'll return if
|
||
|
|
// we're in Binary Shift mode.
|
||
|
|
int mode = 0;
|
||
|
|
|
||
|
|
// If non-zero, the number of most recent bytes that should be output
|
||
|
|
// in Binary Shift mode.
|
||
|
|
int binaryShiftByteCount = 0;
|
||
|
|
|
||
|
|
// The total number of bits generated (including Binary Shift).
|
||
|
|
int bitCount = 0;
|
||
|
|
};
|
||
|
|
|
||
|
|
} // namespace ZXing::Aztec
|