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
|
#include "HDFAlnGroupGroup.hpp"
using namespace std;
bool HDFAlnGroupGroup::Create(HDFGroup &parent) {
parent.AddGroup("AlnGroup");
if (alnGroup.Initialize(parent.group, "AlnGroup") == 0) { return 0; }
idArray.Create(alnGroup, "ID");
pathArray.Create(alnGroup, "Path");
return true;
}
int HDFAlnGroupGroup::AddPath(string path) {
pathArray.Write(&path, 1);
unsigned int id = pathArray.size();
idArray.Write(&id, 1);
int size = pathArray.size();
return size;
}
int HDFAlnGroupGroup::Initialize(HDFGroup &parent) {
if (alnGroup.Initialize(parent.group, "AlnGroup") == 0) {
cout << "ERROR, could not open /AlnGroup group." << endl;
exit(1);
}
if (idArray.Initialize(alnGroup, "ID") == 0) {
cout << "ERROR, could not open /AlnGroup/ID." << endl;
exit(1);
}
if (pathArray.Initialize(alnGroup, "Path") == 0) {
cout << "ERROR, could not open /AlnGroup/Path." << endl;
exit(1);
}
return 1;
}
void HDFAlnGroupGroup::Read(AlnGroup &aln) {
UInt nRow = idArray.size();
if (nRow > 0) {
aln.id.resize(nRow);
idArray.Read(0, nRow, &aln.id[0]);
aln.path.resize(nRow);
unsigned int i;
for (i = 0; i < nRow; i++) {
pathArray.Read(i, i+1, &aln.path[i]);
}
}
}
HDFAlnGroupGroup::~HDFAlnGroupGroup() {
alnGroup.Close();
}
|