Isis 3 Programmer Reference
Table.h
1 #ifndef Table_h
2 #define Table_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 #include "Pvl.h"
10 #include <vector>
11 #include "TableRecord.h"
12 
13 namespace Isis {
14  class Blob;
61  class Table {
62  public:
66  enum Association {
67  None,
68  Samples,
69  Lines,
70  Bands
71  };
72 
73  // Constructors and Destructors
74  Table();
75  Table(Blob &blob);
76  Table(const QString &tableName, TableRecord &rec);
77  Table(const QString &tableName);// Only use this constructor for reading in an existing table
78  Table(const QString &tableName, const QString &file);
79  Table(const QString &tableName, const QString &file,
80  const Pvl &fileHeader);
81  Table(const Table &other);
82  Table &operator=(const Isis::Table &other);
83 
84  ~Table();
85 
86 
87  void Write(const QString &file);
88 
89  QString Name() const;
90  PvlObject &Label();
91 
92  void SetAssociation(const Table::Association assoc);
93  bool IsSampleAssociated();
94  bool IsLineAssociated();
95  bool IsBandAssociated();
96 
97  int Records() const;
98  int RecordFields() const;
99  int RecordSize() const;
100 
101  // Read a record
102  TableRecord &operator[](const int index);
103 
104  // Add a record
105  void operator+=(TableRecord &rec);
106 
107  // Update a record
108  void Update(const TableRecord &rec, const int index);
109 
110  // Delete a record
111  void Delete(const int index);
112 
113  void Clear();
114 
115  Blob toBlob() const;
116 
117 
118  static QString toString(Table table, QString fieldDelimiter=",");
119 
120 
121  protected:
122 
123  void initFromBlob(Blob &blob);
124 
126  std::vector<char *> p_recbufs;
127 
128  int p_records;
131  Association p_assoc;
132  bool p_swap;
133 
134  QString p_name;
136  };
137 };
138 
139 #endif
Isis::PvlObject
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:61
Isis::Table::initFromBlob
void initFromBlob(Blob &blob)
Initialize a Table from a Blob that has been read from a file.
Definition: Table.cpp:146
Isis::Table::Label
PvlObject & Label()
The Table's label.
Definition: Table.cpp:260
Isis::Table::IsLineAssociated
bool IsLineAssociated()
Checks to see if association is Lines.
Definition: Table.cpp:292
Isis::Table::p_assoc
Association p_assoc
Association Type of the table.
Definition: Table.h:131
Isis::Table::Update
void Update(const TableRecord &rec, const int index)
Updates a TableRecord.
Definition: Table.cpp:382
Isis::Table::p_label
PvlObject p_label
The label for storing additional information.
Definition: Table.h:135
Isis::Table::toString
static QString toString(Table table, QString fieldDelimiter=",")
Convert the data from a Table into a string.
Definition: Table.cpp:480
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::Table::Write
void Write(const QString &file)
Write the Table to a file.
Definition: Table.cpp:236
Isis::Table::operator=
Table & operator=(const Isis::Table &other)
Sets the Table equal to the input Table object.
Definition: Table.cpp:200
Isis::Table::RecordSize
int RecordSize() const
Returns the number of bytes per record.
Definition: Table.cpp:333
Isis::TableRecord
Definition: TableRecord.h:38
Isis::Table::p_records
int p_records
Holds record count read from labels, may differ from the size of p_recbufs.
Definition: Table.h:128
Isis::Table::SetAssociation
void SetAssociation(const Table::Association assoc)
Sets the association to the input parameter.
Definition: Table.cpp:270
Isis::Table::toBlob
Blob toBlob() const
Serialze the Table to a Blob that can be written to a file.
Definition: Table.cpp:414
Isis::Table::Clear
void Clear()
Clear the table of all records.
Definition: Table.cpp:403
Isis::Table
Class for storing Table blobs information.
Definition: Table.h:61
Isis::Table::Name
QString Name() const
The Table's name.
Definition: Table.cpp:247
Isis::Table::~Table
~Table()
Destroys the Table object.
Definition: Table.cpp:224
Isis::Table::IsBandAssociated
bool IsBandAssociated()
Checks to see if association is Bands.
Definition: Table.cpp:303
Isis::Table::RecordFields
int RecordFields() const
Returns the number of fields per record.
Definition: Table.cpp:323
Isis::Table::p_swap
bool p_swap
Only used for reading.
Definition: Table.h:132
Isis::Table::Delete
void Delete(const int index)
Deletes a TableRecord from the Table.
Definition: Table.cpp:392
Isis::Table::p_recbufs
std::vector< char * > p_recbufs
Buffers containing record values.
Definition: Table.h:126
Isis::Table::Records
int Records() const
Returns the number of records.
Definition: Table.cpp:313
Isis::Table::p_name
QString p_name
The name of the Table.
Definition: Table.h:134
Isis::Table::p_record
TableRecord p_record
The current table record.
Definition: Table.h:125
Isis::Blob
Definition: Blob.h:51
Isis::Table::operator[]
TableRecord & operator[](const int index)
Reads a TableRecord from the Table.
Definition: Table.cpp:345
Isis::Table::operator+=
void operator+=(TableRecord &rec)
Adds a TableRecord to the Table.
Definition: Table.cpp:356
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::Table::IsSampleAssociated
bool IsSampleAssociated()
Checks to see if association is Samples.
Definition: Table.cpp:281