ocarina/core/tags/generic.cpp
Anna Schumaker cbcd9c594d GenericTag: Add a function for comparing tag names
I was only ever comparing the lowercase version of the name, so this
should be done in a single place (the GenericTag) to make maintenance
easier.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-12-04 08:31:51 -05:00

49 lines
789 B
C++

/**
* @file
* Copyright 2014 (c) Anna Schumaker.
*/
#include <core/filter.h>
#include <core/tags/generic.h>
GenericTag :: GenericTag() {}
GenericTag :: GenericTag(const std::string &name)
: _name(name), _lower(filter :: lowercase(name))
{
}
const std::string GenericTag :: primary_key() const
{
return _name;
}
void GenericTag :: read(File &file)
{
_name = file.getline();
_lower = filter :: lowercase(_name);
}
void GenericTag :: write(File &file)
{
file << _name;
}
const std::string &GenericTag :: name() const
{
return _name;
}
const std::string &GenericTag :: lowercase()
{
return _lower;
}
int GenericTag :: compare(const GenericTag *rhs)
{
if (_lower.size() == 0)
return 1;
if (rhs->_lower.size() == 0)
return -1;
return _lower.compare(rhs->_lower);
}