MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
LTIMetadataDatabase Class Reference

class for storing metadata associated with an image More...

#include <lti_metadataDatabase.h>

Public Member Functions

 LTIMetadataDatabase ()
 default constructor More...
 
 LTIMetadataDatabase (const LTIMetadataDatabase &)
 copy constructor More...
 
virtual ~LTIMetadataDatabase ()
 destructor More...
 
lt_int32 getApproximateSize () const
 get size of metadata database More...
 
void sort (void)
 Sorts the database records by tag name. More...
 
Add functions
LT_STATUS add (const LTIMetadataRecord &record)
 add a record More...
 
LT_STATUS add (const LTIMetadataDatabase &database)
 add all the records from a database More...
 
Retrieval functions
LT_STATUS get (const char *tagName, const LTIMetadataRecord *&record) const
 retrieve a record, given a tag name More...
 
LT_STATUS get (LTIMetadataTag tag, const LTIMetadataRecord *&record) const
 retrieve a record, given a tag number More...
 
bool has (const char *tagName) const
 lookup a record, given a tag name More...
 
bool has (LTIMetadataTag tag) const
 lookup a record, given a tag number More...
 
LT_STATUS getDataByIndex (lt_uint32 index, const LTIMetadataRecord *&record) const
 retrieve a record, given an index number More...
 
lt_uint32 getIndexCount () const
 get number of records More...
 
Removal functions
LT_STATUS remove (const char *tagName)
 remove a record, given a tag name More...
 
LT_STATUS remove (LTIMetadataTag tag)
 remove a record, given a tag number More...
 
LT_STATUS removeAll ()
 remove all records More...
 

Detailed Description

This class implements a simple database which holds a set of LTIMetadataRecords. Each record has a unique tag associated with it.

Each LTIImage object contains an LTIMetadataDatabase for the metadata associated with that image.

The database (and records) are stored in memory in a format-neutral manner. For importing or exporting metadata records to permanent storage, see the LTIMetadataReader and LTIMetadataWriter classes.

Examples:
MetadataDump.cpp.

Definition at line 45 of file lti_metadataDatabase.h.

Constructor & Destructor Documentation

LTIMetadataDatabase::LTIMetadataDatabase ( )

This constructor creates an empty metadata database.

LTIMetadataDatabase::LTIMetadataDatabase ( const LTIMetadataDatabase )
virtual LTIMetadataDatabase::~LTIMetadataDatabase ( )
virtual

Member Function Documentation

LT_STATUS LTIMetadataDatabase::add ( const LTIMetadataRecord record)

This function adds the given record to the metadata database.

If the database already contains a record with the given tag, a status code of LT_STS_LTIMetadata_DuplicateTag is returned.

Parameters
recordthe record to add
Returns
status code indicating success or failure
LT_STATUS LTIMetadataDatabase::add ( const LTIMetadataDatabase database)

This function adds all the records from the given database to this database.

If the database already contains a record with the same tag as one of the records in the database being added, no records are added and a status code of LT_STS_LTIMetadata_DuplicateTag is returned.

Parameters
databasethe database containing the records to add
Returns
status code indicating success or failure
LT_STATUS LTIMetadataDatabase::get ( const char *  tagName,
const LTIMetadataRecord *&  record 
) const

This function returns a pointer to the (first) record in the database that matches the given tag name.

If the tag is not found, the pointer will be set to NULL and a status of LT_STS_LTIMetadata_TagNotFound will be returned.

Parameters
tagNamethe name of the tag of the record to retrieve
recordpointer to the retrieved record
Returns
status code indicating success or failure
LT_STATUS LTIMetadataDatabase::get ( LTIMetadataTag  tag,
const LTIMetadataRecord *&  record 
) const

This function returns a pointer to the (first) record in the database that matches the given tag number.

If the tag is not found, the pointer will be set to NULL and a status of LT_STS_LTIMetadata_TagNotFound will be returned.

Parameters
tagthe number of the tag of the record to retrieve
recordpointer to the retrieved record
Returns
status code indicating success or failure
lt_int32 LTIMetadataDatabase::getApproximateSize ( ) const

This function will return a close-enough estimate of the size of the metadata database, as if it were to be written directly to disk.

Returns
size in bytes of the metadata database
LT_STATUS LTIMetadataDatabase::getDataByIndex ( lt_uint32  index,
const LTIMetadataRecord *&  record 
) const

This function returns a pointer to the (first) record in the database that matches the given index number.

In combination with getIndexCount(), this function can be used to iterate through all the records in the database. (However, removing a record will change the index numbers, so be careful if iterating and removing in the same loop.)

If the index number is not found, the pointer will be set to NULL and a status of LT_STS_LTIMetadata_TagNotFound will be returned.

Parameters
indexthe index number of the record to retrieve
recordpointer to the retrieved record
Returns
status code indicating success or failure
lt_uint32 LTIMetadataDatabase::getIndexCount ( ) const

This function will return the number of records in the database.

Returns
the number of records
Examples:
MetadataDump.cpp.
bool LTIMetadataDatabase::has ( const char *  tagName) const

This function returns a boolean indicating whether the database contains a record with the given tag.

Parameters
tagNamethe name of the tag of the record to look up
Returns
true if the tag is found, otherwise false
bool LTIMetadataDatabase::has ( LTIMetadataTag  tag) const

This function returns a boolean indicating whether the database contains a record with the given tag.

Parameters
tagthe number of the tag of the record to look up
Returns
true if the tag is found, otherwise false
LT_STATUS LTIMetadataDatabase::remove ( const char *  tagName)

This function will remove the record with the given tag from the database.

If the tag is not found, a status of LT_STS_LTIMetadata_TagNotFound will be returned.

Parameters
tagNamethe name of the tag of the record to remove
Returns
status code indicating success or failure
LT_STATUS LTIMetadataDatabase::remove ( LTIMetadataTag  tag)

This function will remove the record with the given tag from the database.

If the tag is not found, a status of LT_STS_LTIMetadata_TagNotFound will be returned.

Parameters
tagthe number of the tag of the record to remove
Returns
status code indicating success or failure
LT_STATUS LTIMetadataDatabase::removeAll ( )

This function will remove all the records from the database.

Returns
status code indicating success or failure
void LTIMetadataDatabase::sort ( void  )

This can be useful in certain debugging and validation scenarios.


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

LizardTech