55 Blob(tableName,
"Table") {
75 Table::Table(
const QString &tableName) :
94 Table::Table(
const QString &tableName,
const QString &file) :
95 Blob(tableName,
"Table") {
115 Table::Table(
const QString &tableName,
const QString &file,
116 const Pvl &fileHeader) :
Blob(tableName,
"Table") {
118 Read(file, fileHeader);
134 for (
unsigned int i = 0; i < other.
p_recbufs.size(); i++) {
162 for (
unsigned int i = 0; i < other.
p_recbufs.size(); i++) {
196 return (
p_assoc == Table::Samples);
206 return (
p_assoc == Table::Lines);
216 return (
p_assoc == Table::Bands);
265 IString msg =
"Unable to add records to Isis Table [" 266 +
p_blobName +
"]. Bytes per record = [0 bytes].";
271 QString msg =
"Unable to add the given record with size = [" 298 vector<char *>::iterator it =
p_recbufs.begin();
299 for (
int i = 0; i < index; i++, it++);
327 QString temp = (QString)
p_blobPvl[
"Association"];
328 temp = temp.toUpper();
329 if (temp ==
"SAMPLES")
p_assoc = Table::Samples;
330 if (temp ==
"LINES")
p_assoc = Table::Lines;
331 if (temp ==
"BANDS")
p_assoc = Table::Bands;
352 for (
int rec = 0; rec <
p_records; rec++) {
355 stream.seekg(sbyte, std::ios::beg);
356 if (!stream.good()) {
357 QString msg =
"Error preparing to read record [" +
Isis::toString(rec + 1) +
364 if (!stream.good()) {
365 QString msg =
"Error reading record [" +
Isis::toString(rec + 1) +
381 p_blobPvl[
"ByteOrder"] = Isis::ByteOrderName(Isis::Lsb);
384 p_blobPvl[
"ByteOrder"] = Isis::ByteOrderName(Isis::Msb);
407 for (
int rec = 0; rec <
Records(); rec++) {
413 QString Table::toString(
Table table, QString fieldDelimiter) {
416 tableValues += TableRecord::toString(table[0], fieldDelimiter,
true,
true);
418 for (
int recordIndex = 1; recordIndex < table.
Records(); recordIndex++) {
419 tableValues += TableRecord::toString(table[recordIndex], fieldDelimiter);
int RecordSize() const
Returns the number of bytes per record.
void WriteInit()
Virtual Function to prepare labels for writing.
int Records() const
Returns the number of records.
QString p_blobName
Name of the Blob object.
bool IsBandAssociated()
Checks to see if association is Bands.
TableRecord p_record
The current table record.
int RecordSize() const
Returns the number of bytes per record.
void Read(const QString &file)
This method reads Pvl values from a specified file.
bool IsLineAssociated()
Checks to see if association is Lines.
void WriteData(std::fstream &os)
Virtual function to write the data.
void addGroup(const Isis::PvlGroup &group)
Add a group to the object.
int p_records
Holds record count read from labels, may differ from the size of p_recbufs.
Namespace for the standard library.
ByteOrder
Tests the current architecture for byte order.
void Unpack(const char *buf)
Reads record information from the binary buffer.
int p_nbytes
Size of blob data (in bytes)
PvlObject p_blobPvl
Pvl Blob object.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
A type of error that occurred when performing an actual I/O operation.
~Table()
Destroys the Table object.
std::vector< char * > p_recbufs
Buffers containing record values.
Association p_assoc
Association Type of the table.
void Clear()
Clear the table of all records.
bool hasKeyword(const QString &kname, FindOptions opts) const
See if a keyword is in the current PvlObject, or deeper inside other PvlObjects and Pvlgroups within ...
int RecordFields() const
Returns the number of fields per record.
void Pack(char *buf) const
Writes record information into the binary buffer.
void Swap(char *buf) const
Swaps bytes of the buffer, depending on the TableField::Type.
#define _FILEINFO_
Macro for the filename and line number.
A single keyword-value pair.
bool IsLsb()
Return true if this host is an LSB first machine and false if it is not.
A type of error that cannot be classified as any of the other error types.
void Delete(const int index)
Deletes a TableRecord from the Table.
Container for cube-like labels.
void Update(const TableRecord &rec, const int index)
Updates a TableRecord.
void SetAssociation(const Table::Association assoc)
Sets the association to the input parameter.
Table & operator=(const Isis::Table &other)
Sets the Table equal to the input Table object.
bool isNamed(const QString &match) const
Returns whether the given string is equal to the container name or not.
PvlGroup & group(const int index)
Return the group at the specified index.
Class for storing Table blobs information.
void operator+=(TableRecord &rec)
Adds a TableRecord to the Table.
TableRecord & operator[](const int index)
Reads a TableRecord from the Table.
Adds specific functionality to C++ strings.
Namespace for ISIS/Bullet specific routines.
void ReadInit()
Virtual function to validate PVL table information.
int Fields() const
Returns the number of fields that are currently in the record.
bool IsSampleAssociated()
Checks to see if association is Samples.
Class for storing an Isis::Table's field information.
int groups() const
Returns the number of groups contained.
bool IsMsb()
Return true if this host is an MSB first machine and false if it is not.
void ReadData(std::istream &stream)
Virtual function to Read the data.
BigInt p_startByte
Byte blob data starts at in buffer.
bool p_swap
Only used for reading.
void deleteKeyword(const QString &name)
Remove a specified keyword.