Nuke binary plugins  14.0.7
DD::Image::MetaData::Bundle Class Reference

Public Types

typedef std::shared_ptr< const Foundry::Property::Base > PropertyPtr
 
typedef std::map< std::string, PropertyPtr, CompareKey > data_t
 all the metadata contained in the bundle
 
using const_iterator = data_t::const_iterator
 iterator over all the metadata
 

Public Member Functions

 Bundle ()
 create an empty bundle
 
 Bundle (const MetaData::Bundle &otherBundle)
 create a new bundle based upon other bundles. This performs a shallow copy.
 
void operator= (const MetaData::Bundle &otherBundle)
 assign this bundle based upon another bundle. This performs a shallow copy.
 
bool operator== (const MetaData::Bundle &otherBundle) const
 compare two bundles. Returns true if they are identical.
 
size_t size () const
 how many metadata elements there are in this bundle
 
const_iterator begin () const
 get iterator to the first piece of metadata
 
const_iterator end () const
 get iterator pointing past the last piece of metadata
 
const_iterator find (const char *key) const
 find a particular piece of metadata by key. returns end() if not present.
 
const_iterator find (const std::string &key) const
 find a particular piece of metadata by key. returns end() if not present.
 
const_iterator erase (const_iterator it)
 
const_iterator erase (const char *key)
 
const_iterator erase (const std::string &key)
 
const data_tmeta () const
 return the underlying std::map for the metadata
 
PropertyPtr getData (const char *key) const
 return the pointer to the named metadata element
 
PropertyPtr getData (const std::string &key) const
 return the pointer to the named metadata element
 
double getDouble (const char *key) const
 return the named metadata element as a double. this will convert strings to numbers. XXX: need to convert rationals as well.
 
unsigned char getUnsignedChar (const char *key) const
 return the named metadata element as an unsigned int. this will convert strings to numbers. XXX: need to convert rationals as well.
 
std::string getString (const char *key) const
 return the named metadata as a string. this involves converting ints and doubles to strings, and formatting arrays by inserting commas
 
void setDataIfNotNan (const std::string &key, double number)
 set the given key to the given number, if and only if number is not NAN. A deep copy may be performed if necessary
 
void setDataIfNotEmpty (const std::string &key, const std::string &data)
 set the given key to the given string, if and only if data is not empty. A deep copy may be performed if necessary
 
void setData (const std::string &key, float data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, const float *data, unsigned count)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, double data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, const double *data, unsigned count)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, int data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, const int *data, unsigned count)
 set the given key to the given data. A deep copy may be performed if necessary
 
template<class T >
void setData (const std::string &key, const std::vector< T > &data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, unsigned int data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, const std::string &data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setData (const std::string &key, const char *data)
 set the given key to the given data. A deep copy may be performed if necessary
 
void setTimeStamp (const std::string &key, const std::string &timestamp)
 
void copyFrom (const Bundle &otherBundle)
 

Detailed Description

a group of metadata, associated with keys to values. values consist of Doubles, Ints, or Strings, or arrays of same

Member Typedef Documentation

typedef std::shared_ptr<const Foundry::Property::Base> DD::Image::MetaData::Bundle::PropertyPtr

opaque data type for the metadata properties themselves. use helper functions isPropertyInt etc to access these

Member Function Documentation

const_iterator DD::Image::MetaData::Bundle::erase ( const_iterator  it)
inline

remove a particular piece of metadata. A deep copy may be performed if necessary return const_iterator following the last removed element or end() if it->first does not exist Note that existing iterators may be invalidated or no longer refer to this bundle including end()

const_iterator DD::Image::MetaData::Bundle::erase ( const char *  key)
inline

remove a particular piece of metadata. A deep copy may be performed if necessary return const_iterator following the last removed element or end() if key does not exist Note that existing iterators may be invalidated or no longer refer to this bundle including end()

MetaData::Bundle::const_iterator DD::Image::MetaData::Bundle::erase ( const std::string &  key)

remove a particular piece of metadata. A deep copy may be performed if necessary return const_iterator following the last removed element or end() if key does not exist Note that existing iterators may be invalidated or no longer refer to this bundle including end()

void DD::Image::MetaData::Bundle::setTimeStamp ( const std::string &  key,
const std::string &  timestamp 
)

set the given key to the given, which is in the format of the timestamp this will reformat 'YYYY:MM:DD HH:MM:SS', 'YYYY:MM:DD:HH:MM:SS', and 'YYYY-MM-DD HH-MM:SS' as the ISO 8601-compliant 'YYYY-MM-DD HH:MM:SS' A deep copy may be performed if necessary

void DD::Image::MetaData::Bundle::copyFrom ( const Bundle otherBundle)

copy all the data from the given metadata bundle Note that any existing keys will be replaced and a deep copy may be performed if necessary

References begin(), and end().



©2024 The Foundry Visionmongers, Ltd. All Rights Reserved.
www.foundry.com