Isis 3 Programmer Reference
|
Feature nomenclature database querier. More...
#include <FeatureNomenclature.h>
Classes | |
class | Feature |
A named feature on a target. More... | |
Public Types | |
enum | IAUStatus { NoStatus, Approved, Dropped, Unapproved } |
Enumeration of approval statuses. More... | |
Signals | |
void | featuresIdentified (FeatureNomenclature *) |
This is emitted when a query is completed. More... | |
Public Member Functions | |
FeatureNomenclature () | |
Instantiate a feature nomenclature. More... | |
FeatureNomenclature (const FeatureNomenclature &other) | |
Copy a feature nomenclature. More... | |
~FeatureNomenclature () | |
Frees allocated memory. More... | |
void | queryFeatures (QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon) |
Makes sure the longitudinal ranges are correct. More... | |
QList< Feature > | features () const |
This gives you the features found in all of the queries so far. More... | |
bool | hasResult () const |
Test if any understandable results have been received from the nomenclature database. More... | |
void | swap (FeatureNomenclature &other) |
Swap the instances *this and other. More... | |
FeatureNomenclature & | operator= (const FeatureNomenclature &other) |
This takes on the data from rhs. More... | |
Static Public Member Functions | |
static bool | featureDiameterGreaterThan (const FeatureNomenclature::Feature &lhs, const FeatureNomenclature::Feature &rhs) |
Compare the diameter of two features. More... | |
Private Slots | |
void | requestFinished (QNetworkReply *) |
This is called when a query is done. More... | |
Private Member Functions | |
void | readSearchResults (QDomElement) |
This is a helper method for requestFinished. More... | |
void | runQuery (QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon) |
Query the nomenclature database for features inside the given range on the target. More... | |
Private Attributes | |
QNetworkAccessManager * | m_networkMgr |
Network manager does request. More... | |
QNetworkRequest * | m_request |
Network request sent. More... | |
QList< Feature > * | m_features |
These are the features identified by the nomenclature database. More... | |
IAUStatus | m_statusApproval |
The approval status of the feature from the database. More... | |
bool | m_lastQuery |
True if all queries have finished. More... | |
Feature nomenclature database querier.
This class queries the nomenclature database for features. To use this class, you create a blank instance. Then you connect to the featuresIdentified() signal. Finally, you call query with the appropriate input data. You can call query as many times as you want; featuresIdentified() will be emitted the same number of times. Finally, you can access the features with features().
Definition at line 51 of file FeatureNomenclature.h.
Enumeration of approval statuses.
Definition at line 57 of file FeatureNomenclature.h.
Isis::FeatureNomenclature::FeatureNomenclature | ( | ) |
Instantiate a feature nomenclature.
This prepares to make network requests.
Definition at line 29 of file FeatureNomenclature.cpp.
References m_features, m_lastQuery, m_networkMgr, m_request, and requestFinished().
Isis::FeatureNomenclature::FeatureNomenclature | ( | const FeatureNomenclature & | other | ) |
Copy a feature nomenclature.
Data being queried currently will not be available in the copy, but ready results will be available.
other | The feature nomenclature to copy |
Definition at line 56 of file FeatureNomenclature.cpp.
References m_features, m_lastQuery, m_networkMgr, m_request, and requestFinished().
Isis::FeatureNomenclature::~FeatureNomenclature | ( | ) |
Frees allocated memory.
Definition at line 77 of file FeatureNomenclature.cpp.
References m_features, m_networkMgr, and m_request.
|
static |
Compare the diameter of two features.
This is very useful for sorting with qSort(). If lhs > rhs, then this returns true. This considers valid data
invalid data.
lhs | The left hand side of the '>' operator |
rhs | The right hand side of the '>' operator |
Definition at line 193 of file FeatureNomenclature.cpp.
References Isis::FeatureNomenclature::Feature::diameter(), and Isis::Distance::isValid().
Referenced by Isis::FeatureNomenclatureTool::ViewportFeatureDisplay::ViewportFeatureDisplay().
QList< FeatureNomenclature::Feature > Isis::FeatureNomenclature::features | ( | ) | const |
This gives you the features found in all of the queries so far.
If all of the queries are finished, then this list will contain all of the results. The list will be empty if no queries have succeeded so far.
Definition at line 136 of file FeatureNomenclature.cpp.
References m_features.
|
signal |
This is emitted when a query is completed.
When emitted, the this pointer is provided.
Referenced by requestFinished().
bool Isis::FeatureNomenclature::hasResult | ( | ) | const |
Test if any understandable results have been received from the nomenclature database.
Definition at line 152 of file FeatureNomenclature.cpp.
References m_features.
FeatureNomenclature & Isis::FeatureNomenclature::operator= | ( | const FeatureNomenclature & | rhs | ) |
This takes on the data from rhs.
Active queries will not be copied. This is exception safe.
rhs | The FeatureNomenclature on the right hand side of the '=' |
Definition at line 176 of file FeatureNomenclature.cpp.
References swap().
void Isis::FeatureNomenclature::queryFeatures | ( | QString | target, |
Latitude | startLat, | ||
Longitude | startLon, | ||
Latitude | endLat, | ||
Longitude | endLon | ||
) |
Makes sure the longitudinal ranges are correct.
If the range intersects with the 0 line the range is split into two ranges, the minimum to 360 and 0 to the maximum. Then it runs a query on each range.
target | The target for which features might be present |
startLat | The minimum latitude of the ground range to search |
startLon | The minimum longitude of the ground range to search |
endLat | The maximum latitude of the ground range to search |
endLon | The maximum longitude of the ground range to search |
Definition at line 100 of file FeatureNomenclature.cpp.
References m_lastQuery, runQuery(), and Isis::Longitude::to360Range().
|
private |
This is a helper method for requestFinished.
This takes the search results and creates a Feature for each equivalent XML feature element.
xmlSearchResults | The searchresults XML from the nomenclature server. |
Definition at line 860 of file FeatureNomenclature.cpp.
References Approved, Dropped, m_features, m_statusApproval, NoStatus, and Unapproved.
Referenced by requestFinished().
|
privateslot |
This is called when a query is done.
This adds the features to our feature list and emits featuresIdentified().
reply | The server's response to our request, containing features in XML form. |
Definition at line 801 of file FeatureNomenclature.cpp.
References featuresIdentified(), m_lastQuery, Isis::IException::Programmer, and readSearchResults().
Referenced by FeatureNomenclature().
|
private |
Query the nomenclature database for features inside the given range on the target.
When the last query for the cube is done, featuresIdentified() will be emitted.
You can call query as many times as you'd like, but the results will be cumulative. Errors are reported in the form of a message box.
target | The target for which features might be present |
startLat | The minimum latitude of the ground range to search |
startLon | The minimum longitude of the ground range to search |
endLat | The maximum latitude of the ground range to search |
endLon | The maximum longitude of the ground range to search |
Definition at line 907 of file FeatureNomenclature.cpp.
References Isis::Angle::degrees(), m_networkMgr, and m_request.
Referenced by queryFeatures().
void Isis::FeatureNomenclature::swap | ( | FeatureNomenclature & | other | ) |
Swap the instances *this and other.
This cannot throw an exception.
other | The FeatureNomenclature to trade data with. |
Definition at line 162 of file FeatureNomenclature.cpp.
References m_features, m_networkMgr, and m_request.
Referenced by Isis::FeatureNomenclature::Feature::operator=(), and operator=().
These are the features identified by the nomenclature database.
Definition at line 196 of file FeatureNomenclature.h.
Referenced by FeatureNomenclature(), features(), hasResult(), readSearchResults(), swap(), and ~FeatureNomenclature().
|
private |
True if all queries have finished.
Definition at line 200 of file FeatureNomenclature.h.
Referenced by FeatureNomenclature(), queryFeatures(), and requestFinished().
|
private |
Network manager does request.
Definition at line 192 of file FeatureNomenclature.h.
Referenced by FeatureNomenclature(), runQuery(), swap(), and ~FeatureNomenclature().
|
private |
Network request sent.
Definition at line 193 of file FeatureNomenclature.h.
Referenced by FeatureNomenclature(), runQuery(), swap(), and ~FeatureNomenclature().
|
private |
The approval status of the feature from the database.
Definition at line 198 of file FeatureNomenclature.h.
Referenced by readSearchResults().