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
|
#ifndef GENERS_CPFOOTERREFERENCE_HH_
#define GENERS_CPFOOTERREFERENCE_HH_
#include "Alignment/Geners/interface/AbsArchive.hh"
#include "Alignment/Geners/interface/AbsReference.hh"
#include "Alignment/Geners/interface/GenericIO.hh"
namespace gs {
namespace Private {
struct CPFooterReference : public AbsReference
{
inline CPFooterReference(
AbsArchive& ar, const ClassId& classId,
const char* name, const char* category)
: AbsReference(ar, classId, "gs::CPFooter",
name, category) {}
// Disable class id comparison
inline bool isIOCompatible(const CatalogEntry& r) const
{return this->isSameIOPrototype(r);}
void fillItems(
unsigned long* nrows, unsigned long long* headerId,
std::vector<std::vector<
std::pair<unsigned long,unsigned long long> > >* ids,
unsigned long long* offset,
const unsigned long number) const
{
const unsigned long long itemId = this->id(number);
assert(itemId);
std::istream& s = this->positionInputStream(itemId);
*offset = archive().catalogEntry(itemId)->offset();
read_pod(s, nrows);
read_pod(s, headerId);
restore_item(s, ids, false);
}
};
}
}
#endif // GENERS_CPFOOTERREFERENCE_HH_
|