Isis 3 Programmer Reference
|
#include <Blob.h>
Public Member Functions | |
Blob (const QString &name, const QString &type) | |
Constructs a Blob object using a name and type. More... | |
Blob (const QString &name, const QString &type, const QString &file) | |
Constructs a Blob object using a name, type, and reading Pvl values from a file. More... | |
Blob (const Blob &other) | |
This copies the blob object. More... | |
Blob & | operator= (const Blob &other) |
This makes the two blob objects exactly the same (copies the blob) More... | |
virtual | ~Blob () |
Destroys the Blob object. More... | |
QString | Type () const |
Accessor method that returns a string containing the Blob type. More... | |
QString | Name () const |
Accessor method that returns a string containing the Blob name. More... | |
int | Size () const |
Accessor method that returns the number of bytes in the blob data. More... | |
PvlObject & | Label () |
Accessor method that returns a PvlObject containing the Blob label. More... | |
void | Read (const QString &file) |
This method reads Pvl values from a specified file. More... | |
void | Read (const QString &file, const Pvl &pvlLabels) |
This method reads the given a file and labels. More... | |
virtual void | Read (const Pvl &pvl, std::istream &is) |
This method reads the Blob data from an open input file stream. More... | |
void | Write (const QString &file) |
Write the blob data out to a file. More... | |
void | Write (Pvl &pvl, std::fstream &stm, const QString &detachedFileName="") |
Write the blob data out to a Pvl object. More... | |
Protected Member Functions | |
void | Find (const Pvl &pvl) |
This method searches the given Pvl for the Blob by the Blob's type and name. More... | |
virtual void | ReadInit () |
This virtual method for classes that inherit Blob. More... | |
virtual void | ReadData (std::istream &is) |
Read binary data from an input stream into the Blob object. More... | |
virtual void | WriteInit () |
This virtual method for classes that inherit Blob. More... | |
virtual void | WriteData (std::fstream &os) |
Writes blob data to a stream. More... | |
Protected Attributes | |
PvlObject | p_blobPvl |
Pvl Blob object. More... | |
QString | p_blobName |
Name of the Blob object. More... | |
char * | p_buffer |
Buffer blob data is stored in. More... | |
BigInt | p_startByte |
Byte blob data starts at in buffer. More... | |
int | p_nbytes |
Size of blob data (in bytes) More... | |
QString | p_type |
Type of data stored in the buffer. More... | |
QString | p_detached |
Used for reading detached blobs. More... | |
QString | p_labelFile |
The file containing the labels. More... | |
2006-04-04 Jeff Anderson Class was not overwriting existing blobs correctly.
2007-02-20 Elizabeth Miller Fixed bug with OriginalLabel naming and modified to be backwards compatible
????-??-?? Steven Lambright Added copy constructor, assignment operator
2010-05-15 Steven Lambright Changed Read to use an istream instead of an fstream
2011-05-25 Janet Barrett and Steven Lambright Added a Read method that takes the pvl labels so they do not have to be re-read, which is a very expensive operation.
2012-10-04 Jeannie Backer Added include due to forward declaration in TableField. Ordered includes and added forward declaration. Fixed header definition statement. Moved method implementation to cpp and reordered methods in cpp. Added documentation. Improved test coverage in all categories. Added padding to control statements. References #1169.
2013-01-11 Steven Lambright and Tracie Sucharski - Fixed support of writing blobs in very large cubes. This was caused by calling the wrong number to string conversion function. Introduced when refactoring the IString class. Fixes #1388.
Isis::Blob::Blob | ( | const QString & | name, |
const QString & | type | ||
) |
Isis::Blob::Blob | ( | const QString & | name, |
const QString & | type, | ||
const QString & | file | ||
) |
Constructs a Blob object using a name, type, and reading Pvl values from a file.
name | The blob name |
type | The blob type |
file | The filename to read from. |
Definition at line 65 of file Blob.cpp.
References Isis::FileName::expanded().
Isis::Blob::Blob | ( | const Blob & | other | ) |
This copies the blob object.
other | Blob to be copied |
Definition at line 81 of file Blob.cpp.
References p_blobName, p_blobPvl, p_buffer, p_detached, p_labelFile, p_nbytes, p_startByte, and p_type.
|
protected |
This method searches the given Pvl for the Blob by the Blob's type and name.
If found, the start byte, number of bytes are read from the Pvl. Also, if a keyword label pointer is found, the filename for the detached blob is stored and the pointer is removed from the blob pvl.
pvl | The Pvl to be searched |
Definition at line 179 of file Blob.cpp.
References _FILEINFO_, Isis::PvlContainer::isNamed(), Isis::PvlObject::object(), Isis::PvlObject::objects(), and Isis::FileName::path().
PvlObject & Isis::Blob::Label | ( | ) |
Accessor method that returns a PvlObject containing the Blob label.
Definition at line 167 of file Blob.cpp.
Referenced by Isis::SpicePosition::CacheLabel(), Isis::SpiceRotation::CacheLabel(), Isis::RosettaVirtisCamera::getPointingTable(), Isis::DawnVirCamera::getPointingTable(), Isis::SpicePosition::LoadCache(), Isis::SpiceRotation::LoadCache(), and Isis::JigsawRunWidget::on_JigsawAcceptButton_clicked().
QString Isis::Blob::Name | ( | ) | const |
Accessor method that returns a string containing the Blob name.
Definition at line 149 of file Blob.cpp.
Referenced by Isis::Shape::isFootprintable(), Isis::Image::isFootprintable(), Isis::SpicePosition::LoadCache(), and Isis::Cube::write().
This makes the two blob objects exactly the same (copies the blob)
other | Blob to be copied |
Definition at line 108 of file Blob.cpp.
References p_blobName, p_blobPvl, p_buffer, p_detached, p_labelFile, p_nbytes, p_startByte, and p_type.
void Isis::Blob::Read | ( | const QString & | file | ) |
This method reads Pvl values from a specified file.
file | The filename to read from. |
iException::Io | - Unable to open file |
iException::Pvl | - Invalid label format |
Definition at line 243 of file Blob.cpp.
References _FILEINFO_, and Isis::Pvl::read().
Referenced by Isis::History::History(), Isis::OriginalLabel::OriginalLabel(), Isis::OriginalXmlLabel::OriginalXmlLabel(), Isis::History::Read(), Isis::Cube::read(), and Isis::Table::Table().
void Isis::Blob::Read | ( | const QString & | file, |
const Pvl & | pvlLabels | ||
) |
This method reads the given a file and labels.
file | The filename to read from. |
pvlLabels | A Pvl containing the label information. |
iException::Io | - Unable to open file |
Definition at line 268 of file Blob.cpp.
References _FILEINFO_, and Isis::Message::FileOpen().
|
virtual |
This method reads the Blob data from an open input file stream.
pvl | A Pvl containing the label information. |
istm | The input file stream containing the blob data to be read. |
iException::Io | - Unable to open file |
Reimplemented in Isis::History.
Definition at line 303 of file Blob.cpp.
References _FILEINFO_, and Isis::Message::FileOpen().
|
protectedvirtual |
Read binary data from an input stream into the Blob object.
stream | The input stream to read from. |
IException::Io | - Error reading data from stream |
Reimplemented in Isis::ImagePolygon, Isis::Table, and Isis::OriginalXmlLabel.
Definition at line 340 of file Blob.cpp.
References _FILEINFO_.
Referenced by Isis::OriginalXmlLabel::ReadData().
|
protectedvirtual |
This virtual method for classes that inherit Blob.
It is not defined in the Blob class.
Reimplemented in Isis::Table.
int Isis::Blob::Size | ( | ) | const |
QString Isis::Blob::Type | ( | ) | const |
Accessor method that returns a string containing the Blob type.
Definition at line 140 of file Blob.cpp.
Referenced by Isis::Shape::isFootprintable(), Isis::Image::isFootprintable(), and Isis::Cube::write().
void Isis::Blob::Write | ( | const QString & | file | ) |
Write the blob data out to a file.
file | The filename to write to. |
IException::Io | - Unable to open file |
IException::Io | - Error preparing to write data to file |
IException::Io | - Error creating file |
Definition at line 369 of file Blob.cpp.
References _FILEINFO_, Isis::PvlObject::addObject(), Isis::PvlObject::findObject(), Isis::toString(), and Isis::Pvl::write().
Referenced by Isis::Cube::write().
void Isis::Blob::Write | ( | Pvl & | pvl, |
std::fstream & | stm, | ||
const QString & | detachedFileName = "" |
||
) |
Write the blob data out to a Pvl object.
pvl | The pvl object to update |
stm | stream to write data to |
detachedFileName | If the stream is detached from the labels give the name of the file |
Definition at line 418 of file Blob.cpp.
References Isis::PvlObject::addObject(), Isis::PvlContainer::name(), Isis::PvlObject::object(), Isis::PvlObject::objects(), and Isis::toString().
|
protectedvirtual |
Writes blob data to a stream.
stream | Output steam blob data will be written to |
IException::Io | - Error writing data to stream |
Reimplemented in Isis::ImagePolygon, Isis::Table, and Isis::OriginalXmlLabel.
Definition at line 502 of file Blob.cpp.
References _FILEINFO_.
|
protectedvirtual |
This virtual method for classes that inherit Blob.
It is not defined in the Blob class.
Reimplemented in Isis::ImagePolygon, Isis::Table, Isis::History, Isis::OriginalLabel, and Isis::OriginalXmlLabel.
|
protected |
Name of the Blob object.
Definition at line 95 of file Blob.h.
Referenced by Blob(), Isis::Table::operator+=(), operator=(), Isis::Table::ReadData(), and Isis::ImagePolygon::ReadData().
|
protected |
Definition at line 94 of file Blob.h.
Referenced by Blob(), operator=(), Isis::OriginalXmlLabel::OriginalXmlLabel(), Isis::Table::ReadInit(), Isis::Table::Table(), Isis::OriginalXmlLabel::WriteInit(), and Isis::Table::WriteInit().
|
protected |
Buffer blob data is stored in.
Definition at line 97 of file Blob.h.
Referenced by Blob(), Isis::GisBlob::GisBlob(), operator=(), Isis::OriginalXmlLabel::ReadData(), Isis::History::ReturnHist(), Isis::OriginalLabel::ReturnLabels(), Isis::GisBlob::setPolygon(), Isis::History::WriteInit(), and Isis::OriginalLabel::WriteInit().
|
protected |
Used for reading detached blobs.
Definition at line 101 of file Blob.h.
Referenced by Blob(), and operator=().
|
protected |
The file containing the labels.
Definition at line 102 of file Blob.h.
Referenced by Blob(), and operator=().
|
protected |
Size of blob data (in bytes)
Definition at line 99 of file Blob.h.
Referenced by Blob(), Isis::GisBlob::GisBlob(), operator=(), Isis::OriginalXmlLabel::ReadData(), Isis::ImagePolygon::ReadData(), Isis::History::ReturnHist(), Isis::OriginalLabel::ReturnLabels(), Isis::GisBlob::setPolygon(), Isis::ImagePolygon::WriteData(), Isis::OriginalXmlLabel::WriteInit(), Isis::History::WriteInit(), Isis::OriginalLabel::WriteInit(), Isis::Table::WriteInit(), and Isis::ImagePolygon::WriteInit().
|
protected |
Byte blob data starts at in buffer.
Definition at line 98 of file Blob.h.
Referenced by Blob(), operator=(), Isis::Table::ReadData(), and Isis::ImagePolygon::ReadData().
|
protected |
Type of data stored in the buffer.
Definition at line 100 of file Blob.h.
Referenced by Blob(), operator=(), and Isis::ImagePolygon::ReadData().