summaryrefslogtreecommitdiff
path: root/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
diff options
context:
space:
mode:
Diffstat (limited to 'fxbarcode/common/reedsolomon/BC_ReedSolomon.h')
-rw-r--r--fxbarcode/common/reedsolomon/BC_ReedSolomon.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomon.h b/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
index 42a1e002ca..68d4ee0624 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomon.h
@@ -7,6 +7,7 @@
#ifndef FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMON_H_
#define FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMON_H_
+#include <memory>
#include <vector>
#include "core/fxcrt/fx_basic.h"
@@ -17,16 +18,16 @@ class CBC_ReedSolomonGF256Poly;
class CBC_ReedSolomonEncoder {
public:
explicit CBC_ReedSolomonEncoder(CBC_ReedSolomonGF256* field);
- virtual ~CBC_ReedSolomonEncoder();
+ ~CBC_ReedSolomonEncoder();
- void Encode(std::vector<int32_t>* toEncode, size_t ecBytes, int32_t& e);
- virtual void Init();
+ void Init();
+ bool Encode(std::vector<int32_t>* toEncode, size_t ecBytes);
private:
- CBC_ReedSolomonGF256Poly* BuildGenerator(size_t degree, int32_t& e);
+ CBC_ReedSolomonGF256Poly* BuildGenerator(size_t degree);
- CBC_ReedSolomonGF256* m_field;
- std::vector<CBC_ReedSolomonGF256Poly*> m_cachedGenerators;
+ CBC_ReedSolomonGF256* const m_field;
+ std::vector<std::unique_ptr<CBC_ReedSolomonGF256Poly>> m_cachedGenerators;
};
#endif // FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMON_H_