-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathRead.h
More file actions
76 lines (72 loc) · 1.25 KB
/
Read.h
File metadata and controls
76 lines (72 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef READ_H_
#define READ_H_
#include <cstring>
using namespace std;
class Read {
public:
char *seq;
char *qual;
int length;
char *passthrough;
string name;
int flags;
bool unaligned;
void Clear() {
if (seq != NULL) {
delete[] seq;
seq=NULL;
}
if (qual != NULL) {
delete[] qual;
qual=NULL;
}
if (passthrough != NULL) {
delete[] passthrough;
passthrough=NULL;
}
length=0;
name="";
}
Read() {
seq=NULL;
length=0;
qual=NULL;
name="";
passthrough=NULL;
flags=0;
unaligned=0;
}
Read(char* _sq, int _len, string _name, char*_qual=NULL) {
seq=_sq;
length=_len;
qual=_qual;
passthrough=NULL;
name=_name;
unaligned=0;
}
Read& operator=(const Read& rhs) {
length=rhs.length;
seq = NULL;
qual= NULL;
unaligned=0;
if (rhs.length > 0) {
if (rhs.seq != NULL) {
seq = new char[length];
memcpy(seq, rhs.seq, length);
}
if (rhs.qual != NULL) {
int qualLen=strlen(rhs.qual);
qual = new char[qualLen+1];
memcpy(qual, rhs.qual, qualLen);
qual[qualLen] = '\0';
}
}
if (rhs.passthrough != NULL) {
passthrough=new char[strlen(rhs.passthrough)];
memcpy(passthrough, rhs.passthrough, strlen(rhs.passthrough));
}
name=rhs.name;
return *this;
}
};
#endif