Loading...
Searching...
No Matches
GlfHeader Class Reference

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.

## Detailed Description

This class allows a user to easily get/set the fields in a GLF header.

The GlfHeader contains:

- Variable length text string

Definition at line 29 of file GlfHeader.h.

## Constructor & Destructor Documentation

## GlfHeader() [1/2]

GlfHeader::GlfHeader | ( |  | ) |

Definition at line 25 of file GlfHeader.cpp.

: myText()
{
resetHeader();
}
GlfHeader::resetHeader
void resetHeader()
Clear this header back to the default setting.
Definition GlfHeader.cpp:72

## ~GlfHeader()

GlfHeader::~GlfHeader | ( |  | ) |

Definition at line 32 of file GlfHeader.cpp.

{
resetHeader();
}

## GlfHeader() [2/2]

GlfHeader::GlfHeader | ( | const GlfHeader & | header | ) |

Copy Constructor

Parameters

  header | glfheader to copy into this one.

Definition at line 39 of file GlfHeader.cpp.

: myText()
{
copy(header);
}
GlfHeader::copy
bool copy(const GlfHeader &header)
Copy the passed in header into this header.
Definition GlfHeader.cpp:54

References copy().

## Member Function Documentation

## copy()

bool GlfHeader::copy | ( | const GlfHeader & | header | ) |

Copy the passed in header into this header.

Parameters

  header | glfheader to copy into this one.

Definition at line 54 of file GlfHeader.cpp.

{
// 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);
}

References resetHeader().

Referenced by GlfHeader(), and operator=().

## getHeaderTextString()

bool GlfHeader::getHeaderTextString | ( | std::string & | text | ) |

Set the passed in string to the text string stored in this header.

Parameters

  text | string to populate with the header text string.

Returns
  true if text was successfully returned, false if not.

Definition at line 202 of file GlfHeader.cpp.

{
text = myText.c_str();
return(true);
}

## operator=()

GlfHeader & GlfHeader::operator= | ( | const GlfHeader & | header | ) |

Overload operator= to copy the passed in header into this header.

Parameters

  header | glfheader to copy into this one.

Definition at line 47 of file GlfHeader.cpp.

{
copy(header);
return(*this);
}

References copy().

## read()

bool GlfHeader::read | ( | IFILE | filePtr | ) |

Read the header from the specified file (file MUST be in the correct position for reading the header).

Parameters

  filePtr | file to read from that is in the correct position.

Returns
  true if the header was successfully read from the file, false if not.

Definition at line 80 of file GlfHeader.cpp.

{
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);
}
ifread
unsigned int ifread(IFILE file, void *buffer, unsigned int size)
Read up to size bytes from the file into the buffer.
Definition InputFile.h:600
GlfException
GlfException objects should be thrown by functions that operate on Glf files for exceptions.
Definition GlfException.h:28
GlfStatus::FAIL_ORDER
@ FAIL_ORDER
method failed because it was called out of order, like trying to read a file without opening it for r...
Definition GlfStatus.h:35
GlfStatus::FAIL_IO
@ FAIL_IO
method failed due to an I/O issue.
Definition GlfStatus.h:34
InputFile::isOpen
bool isOpen() const
Returns whether or not the file was successfully opened.
Definition InputFile.h:423
String
Definition StringBasics.h:39

References GlfStatus::FAIL_IO, GlfStatus::FAIL_ORDER, ifread(), and InputFile::isOpen().

Referenced by GlfFile::readHeader().

## resetHeader()

void GlfHeader::resetHeader | ( |  | ) |

Clear this header back to the default setting.

Definition at line 72 of file GlfHeader.cpp.

{
myText.reset();
}

Referenced by copy().

## setHeaderTextString()

bool GlfHeader::setHeaderTextString | ( | const std::string & | text | ) |

Set the header to the passed in string.

Parameters

  text | header text to assign to this header.

Returns
  true if the text was successfully set, false if not.

Definition at line 210 of file GlfHeader.cpp.

{
myText = text;
return(true);
}

## write()

bool GlfHeader::write | ( | IFILE | filePtr | ) | const

Write the header to the specified file.

Parameters

  filePtr | file to write to that is in the correct position.

Returns
  true if the header was successfully written to the file, false if not.

Definition at line 141 of file GlfHeader.cpp.

{
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);
}
ifwrite
unsigned int ifwrite(IFILE file, const void *buffer, unsigned int size)
Write the specified number of bytes from the specified buffer into the file.
Definition InputFile.h:669

References GlfStatus::FAIL_IO, GlfStatus::FAIL_ORDER, ifwrite(), and InputFile::isOpen().

Referenced by GlfFile::writeHeader().

The documentation for this class was generated from the following files:

- glf/GlfHeader.h
- glf/GlfHeader.cpp