mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
64bit ftello update
This commit is contained in:
parent
0c4ddaea0b
commit
9ec9850bdb
@ -224,7 +224,7 @@ class GridLimeReader : public BinaryIO {
|
|||||||
|
|
||||||
assert(PayloadSize == file_bytes);// Must match or user error
|
assert(PayloadSize == file_bytes);// Must match or user error
|
||||||
|
|
||||||
off_t offset= ftell(File);
|
uint64_t offset= ftello(File);
|
||||||
// std::cout << " ReadLatticeObject from offset "<<offset << std::endl;
|
// std::cout << " ReadLatticeObject from offset "<<offset << std::endl;
|
||||||
BinarySimpleMunger<sobj,sobj> munge;
|
BinarySimpleMunger<sobj,sobj> munge;
|
||||||
BinaryIO::readLatticeObject< vobj, sobj >(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
|
BinaryIO::readLatticeObject< vobj, sobj >(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
|
||||||
@ -253,16 +253,13 @@ class GridLimeReader : public BinaryIO {
|
|||||||
while ( limeReaderNextRecord(LimeR) == LIME_SUCCESS ) {
|
while ( limeReaderNextRecord(LimeR) == LIME_SUCCESS ) {
|
||||||
|
|
||||||
// std::cout << GridLogMessage<< " readLimeObject seeking "<< record_name <<" found record :" <<limeReaderType(LimeR) <<std::endl;
|
// std::cout << GridLogMessage<< " readLimeObject seeking "<< record_name <<" found record :" <<limeReaderType(LimeR) <<std::endl;
|
||||||
|
|
||||||
uint64_t nbytes = limeReaderBytes(LimeR);//size of this record (configuration)
|
uint64_t nbytes = limeReaderBytes(LimeR);//size of this record (configuration)
|
||||||
|
|
||||||
if ( !strncmp(limeReaderType(LimeR), record_name.c_str(),strlen(record_name.c_str()) ) ) {
|
if ( !strncmp(limeReaderType(LimeR), record_name.c_str(),strlen(record_name.c_str()) ) ) {
|
||||||
|
|
||||||
// std::cout << GridLogMessage<< " readLimeObject matches ! " << record_name <<std::endl;
|
// std::cout << GridLogMessage<< " readLimeObject matches ! " << record_name <<std::endl;
|
||||||
|
|
||||||
std::vector<char> xmlc(nbytes+1,'\0');
|
std::vector<char> xmlc(nbytes+1,'\0');
|
||||||
limeReaderReadData((void *)&xmlc[0], &nbytes, LimeR);
|
limeReaderReadData((void *)&xmlc[0], &nbytes, LimeR);
|
||||||
|
|
||||||
// std::cout << GridLogMessage<< " readLimeObject matches XML " << &xmlc[0] <<std::endl;
|
// std::cout << GridLogMessage<< " readLimeObject matches XML " << &xmlc[0] <<std::endl;
|
||||||
|
|
||||||
XmlReader RD(&xmlc[0],"");
|
XmlReader RD(&xmlc[0],"");
|
||||||
@ -332,7 +329,7 @@ class GridLimeWriter : public BinaryIO {
|
|||||||
err=limeWriteRecordData(&xmlstring[0], &nbytes, LimeW); assert(err>=0);
|
err=limeWriteRecordData(&xmlstring[0], &nbytes, LimeW); assert(err>=0);
|
||||||
err=limeWriterCloseRecord(LimeW); assert(err>=0);
|
err=limeWriterCloseRecord(LimeW); assert(err>=0);
|
||||||
limeDestroyHeader(h);
|
limeDestroyHeader(h);
|
||||||
// std::cout << " File offset is now"<<ftell(File) << std::endl;
|
// std::cout << " File offset is now"<<ftello(File) << std::endl;
|
||||||
}
|
}
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
// Write a generic lattice field and csum
|
// Write a generic lattice field and csum
|
||||||
@ -360,18 +357,20 @@ class GridLimeWriter : public BinaryIO {
|
|||||||
// These are both buffered, so why I think this code is right is as follows.
|
// These are both buffered, so why I think this code is right is as follows.
|
||||||
//
|
//
|
||||||
// i) write record header to FILE *File, telegraphing the size.
|
// i) write record header to FILE *File, telegraphing the size.
|
||||||
// ii) ftell reads the offset from FILE *File .
|
// ii) ftello reads the offset from FILE *File .
|
||||||
// iii) iostream / MPI Open independently seek this offset. Write sequence direct to disk.
|
// iii) iostream / MPI Open independently seek this offset. Write sequence direct to disk.
|
||||||
// Closes iostream and flushes.
|
// Closes iostream and flushes.
|
||||||
// iv) fseek on FILE * to end of this disjoint section.
|
// iv) fseek on FILE * to end of this disjoint section.
|
||||||
// v) Continue writing scidac record.
|
// v) Continue writing scidac record.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
off_t offset = ftell(File);
|
uint64_t offset = ftello(File);
|
||||||
// std::cout << " Writing to offset "<<offset << std::endl;
|
// std::cout << " Writing to offset "<<offset << std::endl;
|
||||||
std::string format = getFormatString<vobj>();
|
std::string format = getFormatString<vobj>();
|
||||||
BinarySimpleMunger<sobj,sobj> munge;
|
BinarySimpleMunger<sobj,sobj> munge;
|
||||||
BinaryIO::writeLatticeObject<vobj,sobj>(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
|
BinaryIO::writeLatticeObject<vobj,sobj>(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
|
||||||
|
// fseek(File,0,SEEK_END); offset = ftello(File);std::cout << " offset now "<<offset << std::endl;
|
||||||
err=limeWriterCloseRecord(LimeW); assert(err>=0);
|
err=limeWriterCloseRecord(LimeW); assert(err>=0);
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
// Write checksum element, propagaing forward from the BinaryIO
|
// Write checksum element, propagaing forward from the BinaryIO
|
||||||
// Always pair a checksum with a binary object, and close message
|
// Always pair a checksum with a binary object, and close message
|
||||||
@ -703,8 +702,7 @@ class IldgReader : public GridLimeReader {
|
|||||||
// Binary data
|
// Binary data
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
std::cout << GridLogMessage << "ILDG Binary record found : " ILDG_BINARY_DATA << std::endl;
|
std::cout << GridLogMessage << "ILDG Binary record found : " ILDG_BINARY_DATA << std::endl;
|
||||||
off_t offset= ftell(File);
|
uint64_t offset= ftello(File);
|
||||||
|
|
||||||
if ( format == std::string("IEEE64BIG") ) {
|
if ( format == std::string("IEEE64BIG") ) {
|
||||||
GaugeSimpleMunger<dobj, sobj> munge;
|
GaugeSimpleMunger<dobj, sobj> munge;
|
||||||
BinaryIO::readLatticeObject< vobj, dobj >(Umu, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
|
BinaryIO::readLatticeObject< vobj, dobj >(Umu, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user