#ifndef GENERS_CPFOOTERREFERENCE_HH_ #define GENERS_CPFOOTERREFERENCE_HH_ #include "geners/AbsReference.hh" #include "geners/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 > >* 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_