void CDFFileReader::Read(CDFData& data, ReadMode mode) { data.Clear(); //data.GetGenericData().UseMemoryMapping(false); GenericFileReader reader; if (fileName.empty()) fileName = data.GetFilename(); reader.SetFilename(fileName); reader.ReadHeader(data.GetGenericData(), GenericFileReader::ReadNoDataGroupHeader); switch(mode) { case ReadSequential: data.PrepareForSequentialAccess(); break; case ReadByProbeSetNumber: data.PrepareForAccessByProbeSetIndex(); break; case ReadByProbeSetName: data.PrepareForAccessByProbeSetName(); break; default: data.PrepareForSequentialAccess(); break; } }
void CDFFileReaderTest::ReadSmallCDFFileBasicTest() { CDFData data; CDFFileReader reader; CPPUNIT_ASSERT_NO_THROW(reader.SetFilename(SMALL_CDF_FILE)); CPPUNIT_ASSERT_NO_THROW(reader.Read(data)); CPPUNIT_ASSERT(data.GetFilename() == SMALL_CDF_FILE); FileHeader* fh = data.GetFileHeader(); u_int32_t pos = fh->GetFirstDataGroupFilePos(); CPPUNIT_ASSERT(pos == 0x1BD); CPPUNIT_ASSERT(data.GetProbeSetCnt() == 10); CPPUNIT_ASSERT(data.GetArrayRows() == 10*2); CPPUNIT_ASSERT(data.GetArrayCols() == 11); }