libStatGen Software
1
|
This class allows a user to easily get/set the fields in a GLF header. More...
#include <GlfHeader.h>
Public Member Functions | |
GlfHeader (const GlfHeader &header) | |
Copy Constructor. | |
GlfHeader & | operator= (const GlfHeader &header) |
Overload operator= to copy the passed in header into this header. | |
bool | copy (const GlfHeader &header) |
Copy the passed in header into this header. | |
void | resetHeader () |
Clear this header back to the default setting. | |
bool | read (IFILE filePtr) |
Read the header from the specified file (file MUST be in the correct position for reading the header). | |
bool | write (IFILE filePtr) const |
Write the header to the specified file. | |
bool | getHeaderTextString (std::string &text) |
Set the passed in string to the text string stored in this header. | |
bool | setHeaderTextString (const std::string &text) |
Set the header to the passed in string. |
This class allows a user to easily get/set the fields in a GLF header.
The GlfHeader contains:
Definition at line 29 of file GlfHeader.h.
GlfHeader::GlfHeader | ( | const GlfHeader & | header | ) |
Copy Constructor.
header | glfheader to copy into this one. |
Definition at line 39 of file GlfHeader.cpp.
References copy().
: myText() { copy(header); }
bool GlfHeader::copy | ( | const GlfHeader & | header | ) |
Copy the passed in header into this header.
header | glfheader to copy into this one. |
Definition at line 54 of file GlfHeader.cpp.
References resetHeader().
Referenced by GlfHeader(), and operator=().
{ // Check to see if the passed in value is the same as this. if(this == &header) { return(true); } resetHeader(); // Copy the header. myText = header.myText; return(true); }
bool GlfHeader::getHeaderTextString | ( | std::string & | text | ) |
Set the passed in string to the text string stored in this header.
text | string to populate with the header text string. |
Definition at line 202 of file GlfHeader.cpp.
{ text = myText.c_str(); return(true); }
Overload operator= to copy the passed in header into this header.
header | glfheader to copy into this one. |
Definition at line 47 of file GlfHeader.cpp.
References copy().
{ copy(header); return(*this); }
bool GlfHeader::read | ( | IFILE | filePtr | ) |
Read the header from the specified file (file MUST be in the correct position for reading the header).
filePtr | file to read from that is in the correct position. |
Definition at line 80 of file GlfHeader.cpp.
References GlfStatus::FAIL_IO, GlfStatus::FAIL_ORDER, ifread(), and InputFile::isOpen().
Referenced by GlfFile::readHeader().
{ if((filePtr == NULL) || (filePtr->isOpen() == false)) { // File is not open, return failure. std::string errorString = "Failed to read the header since the file is not open."; throw(GlfException(GlfStatus::FAIL_ORDER, errorString)); return(false); } // Read the magic int numRead = 0; char magic[GLF_MAGIC_LEN]; numRead = ifread(filePtr, &magic, GLF_MAGIC_LEN); if(numRead != GLF_MAGIC_LEN) { String errorMsg = "Failed to read the magic number ("; errorMsg += GLF_MAGIC_LEN; errorMsg += " bytes). Only read "; errorMsg += numRead; errorMsg += " bytes."; std::string errorString = errorMsg.c_str(); throw(GlfException(GlfStatus::FAIL_IO, errorString)); return(false); } // Read the header length. int32_t headerLen = 0; int byteLen = sizeof(int32_t); numRead = ifread(filePtr, &headerLen, byteLen); if(numRead != byteLen) { String errorMsg = "Failed to read the length of the header text ("; errorMsg += byteLen; errorMsg += " bytes). Only read "; errorMsg += numRead; errorMsg += " bytes."; std::string errorString = errorMsg.c_str(); throw(GlfException(GlfStatus::FAIL_IO, errorString)); return(false); } // Read the header from the file. numRead = myText.readFromFile(filePtr, headerLen); if(numRead != headerLen) { String errorMsg = "Failed to read the header text ("; errorMsg += headerLen; errorMsg += " bytes). Only read "; errorMsg += numRead; errorMsg += " bytes."; std::string errorString = errorMsg.c_str(); throw(GlfException(GlfStatus::FAIL_IO, errorString)); return(false); } // Successfully read, return success. return(true); }
bool GlfHeader::setHeaderTextString | ( | const std::string & | text | ) |
Set the header to the passed in string.
text | header text to assign to this header. |
Definition at line 210 of file GlfHeader.cpp.
{ myText = text; return(true); }
bool GlfHeader::write | ( | IFILE | filePtr | ) | const |
Write the header to the specified file.
filePtr | file to write to that is in the correct position. |
Definition at line 141 of file GlfHeader.cpp.
References GlfStatus::FAIL_IO, GlfStatus::FAIL_ORDER, ifwrite(), and InputFile::isOpen().
Referenced by GlfFile::writeHeader().
{ if((filePtr == NULL) || (filePtr->isOpen() == false)) { // File is not open, return failure. std::string errorString = "Failed to write the header since the file is not open."; throw(GlfException(GlfStatus::FAIL_ORDER, errorString)); return(false); } int numWrite = 0; // Write the magic numWrite = ifwrite(filePtr, GLF_MAGIC.c_str(), GLF_MAGIC_LEN); if(numWrite != GLF_MAGIC_LEN) { String errorMsg = "Failed to write the magic number ("; errorMsg += GLF_MAGIC_LEN; errorMsg += " bytes). Only wrote "; errorMsg += numWrite; errorMsg += " bytes."; std::string errorString = errorMsg.c_str(); throw(GlfException(GlfStatus::FAIL_IO, errorString)); return(false); } // Write the header length. int32_t headerLen = myText.length(); int byteLen = sizeof(int32_t); numWrite = ifwrite(filePtr, &headerLen, byteLen); if(numWrite != byteLen) { String errorMsg = "Failed to write the length of the header text ("; errorMsg += byteLen; errorMsg += " bytes). Only wrote "; errorMsg += numWrite; errorMsg += " bytes."; std::string errorString = errorMsg.c_str(); throw(GlfException(GlfStatus::FAIL_IO, errorString)); return(false); } // Write the header to the file. numWrite = ifwrite(filePtr, myText.c_str(), headerLen); if(numWrite != headerLen) { String errorMsg = "Failed to write the header text ("; errorMsg += headerLen; errorMsg += " bytes). Only wrote "; errorMsg += numWrite; errorMsg += " bytes."; std::string errorString = errorMsg.c_str(); throw(GlfException(GlfStatus::FAIL_IO, errorString)); return(false); } // Successfully wrote, return success. return(true); }