All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions
GeopsyCore::MetaDataMap Class Reference

Brief description of class still missing. More...

#include <MetaDataMap.h>

Inheritance diagram for GeopsyCore::MetaDataMap:
QGpCoreTools::SortedVector< int, MetaData >

List of all members.

Public Member Functions

void add (const MetaDataMap &o)
void add (MetaData *d)
void clear ()
int count () const
MetaDatadata (int id)
const MetaDatadata (int id) const
bool hasData (int id) const
void operator= (const MetaDataMap &o)
void remove (int id)
void reserve (int size)
const SortedVector< int,
MetaData > & 
vector () const
 ~MetaDataMap ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

References clear(), and TRACE.

  {
    TRACE;
    clear();
  }

Member Function Documentation

Adds metadata from another map.

References QGpCoreTools::SortedVector< Key, T >::at(), GeopsyCore::MetaData::clone(), count(), QGpCoreTools::SharedObject::referenceCount(), reserve(), and TRACE.

Referenced by operator=(), GeopsyCore::SignalDB::xml_member(), and GeopsyCore::Signal::xml_member().

  {
    TRACE;
    int n=o.count();
    reserve(count()+n);
    for(int i=0; i<n; i++) {
      MetaData * d=o.at(i);
      if(d->referenceCount()==1) {
        d=d->clone(); // Not shared meta data, make a copy
      }
      add(d);
    }
  }

Add meta data d. It takes ownership of d.

References QGpCoreTools::SharedObject::addReference(), QGpCoreTools::SortedVector< int, MetaData >::contains(), GeopsyCore::MetaData::id(), QGpCoreTools::SortedVector< int, MetaData >::insert(), TRACE, and QGpCoreTools::XMLClass::xml_tagName().

  {
    TRACE;
    if(contains(d->id())) {
      qWarning("Add meta data: '%s' already exists.", d->xml_tagName().toAscii().data());
    } else {
      insert(d);
      d->addReference();
    }
  }
int GeopsyCore::MetaDataMap::count ( ) const [inline]

Returns a pointer to meta data id. If it does exist for signal, creates a new instance.

References QGpCoreTools::SharedObject::addReference(), QGpCoreTools::SortedVector< int, MetaData >::at(), GeopsyCore::MetaDataFactory::create(), QGpCoreTools::SortedVector< int, MetaData >::indexOf(), QGpCoreTools::SortedVector< int, MetaData >::insert(), GeopsyCore::MetaDataFactory::instance(), and TRACE.

Referenced by GeopsyCore::Signal::xml_member(), and GeopsyCore::Signal::xml_setProperty().

  {
    TRACE;
    int index=indexOf(id);
    if(index>-1) {
      return at(index);
    } else {
      MetaData * d=MetaDataFactory::instance()->create(id);
      if(d) {
        insert(d);
        d->addReference();
        return d;
      } else {
        return 0;
      }
    }
  }
const MetaData * GeopsyCore::MetaDataMap::data ( int  id) const

Returns a pointer to meta data id. If it does exist for signal, returns the default instance.

References QGpCoreTools::SortedVector< int, MetaData >::at(), GeopsyCore::MetaDataFactory::create(), GeopsyCore::MetaData::defaultValue(), QGpCoreTools::SortedVector< int, MetaData >::indexOf(), GeopsyCore::MetaDataFactory::instance(), and TRACE.

  {
    TRACE;
    int index=indexOf(id);
    if(index>-1) {
      return at(index);
    } else {
      MetaData * td=MetaDataFactory::instance()->create(id);
      if(td) {
        const MetaData * d=td->defaultValue();
        delete td;
        return d;
      } else {
        return 0;
      }
    }
  }
bool GeopsyCore::MetaDataMap::hasData ( int  id) const [inline]

Returns true if metadata with id exists.

{return indexOf(id)>-1;}
void GeopsyCore::MetaDataMap::operator= ( const MetaDataMap o)

References add(), clear(), and TRACE.

  {
    TRACE;
    clear();
    add(o);
  }

Remove meta data with id. Meta data is deleted if it is not shared.

Reimplemented from QGpCoreTools::SortedVector< int, MetaData >.

References QGpCoreTools::SortedVector< int, MetaData >::at(), QGpCoreTools::SortedVector< int, MetaData >::indexOf(), QGpCoreTools::SharedObject::removeReference(), and TRACE.

  {
    TRACE;
    int index=indexOf(id);
    if(index>-1) {
      MetaData * d=at(index);
      remove(index);
      MetaData::removeReference(d);
    }
  }
void GeopsyCore::MetaDataMap::reserve ( int  size) [inline]
const SortedVector<int, MetaData>& GeopsyCore::MetaDataMap::vector ( ) const [inline]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines