Skip to content

Commit 8ef5ced

Browse files
author
Zhang Fuxin
committed
import
0 parents  commit 8ef5ced

16 files changed

+2667
-0
lines changed

Decoder.cpp

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#pragma once
2+
#include "Helper.h"
3+
#include "Symbol.h"
4+
5+
Decoder::Decoder() {
6+
}
7+
8+
Decoder::~Decoder() {
9+
delete gen;
10+
}
11+
12+
/* initialize general parameters as much as possible
13+
this is meant to be called only once.
14+
By default, N is set to K. It will be fixup in prepare()
15+
*/
16+
bool Decoder::init(int K, int T) {
17+
gen = new Generators();
18+
return gen->gen(K, K, T);
19+
}
20+
21+
Symbol** Decoder::decode(char **source, int _N, int *esi)
22+
{
23+
Symbol **s;
24+
25+
gen->prepare(source,_N,esi);
26+
s = gen->generate_intermediates();
27+
if (!s) return NULL;
28+
return s;
29+
}
30+
31+
Symbol* Decoder::recover(int x)
32+
{
33+
return gen->recover_symbol(x);
34+
}

Decoder.h

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#pragma once
2+
#include "Generators.h"
3+
4+
class Decoder {
5+
public:
6+
Decoder();
7+
virtual ~Decoder();
8+
9+
private:
10+
Generators* gen;
11+
12+
public:
13+
bool init(int K, int T);
14+
Symbol** decode(char **source, int _N, int *esi);
15+
Symbol* recover(int x);
16+
};

Encoder.cpp

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include "Helper.h"
2+
#include "Symbol.h"
3+
4+
Encoder::Encoder(){
5+
}
6+
7+
Encoder::~Encoder() {
8+
delete gen;
9+
}
10+
11+
bool Encoder::init(int K,int T) {
12+
gen = new Generators();
13+
return gen->gen(K, K, T);
14+
}
15+
16+
Symbol** Encoder::encode(char **source, int overhead) {
17+
Symbol **s;
18+
19+
gen->prepare(source,gen->getK(),NULL);
20+
s = gen->generate_intermediates();
21+
if (!s) return NULL;
22+
return gen->generate_repairs(overhead);
23+
}
24+

Encoder.h

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#pragma once
2+
#include "Generators.h"
3+
#include "Symbol.h"
4+
5+
class Encoder {
6+
public:
7+
Encoder();
8+
virtual ~Encoder();
9+
10+
private:
11+
Generators* gen;
12+
13+
public:
14+
bool init(int K, int T);
15+
Symbol** encode(char **source, int overhead);
16+
17+
};

0 commit comments

Comments
 (0)