view HuffmanString.cpp @ 56:76846cb92b5c

Clean up at exit. Add getSet function.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Thu, 13 Sep 2012 23:49:18 +0200
parents fda70a362ed5
children
line wrap: on
line source

#include "HuffmanString.hpp"

HuffmanSet* HuffmanString::set = 0;

HuffmanString::HuffmanString(const QString& str, HuffmanSet* set)
{
  set = this->set;
  if (!set) {
    set = new HuffmanSet();
    atexit(&atExit);
  }
  this->set = set;

  key = set->insert(str);
}

void HuffmanString::atExit()
{
  delete set;
  set = 0;
}

QString HuffmanString::toString() const
{
  return set->value(key);
}

HuffmanString::operator QString() const
{
  return toString();
}

bool HuffmanString::operator<(const HuffmanString& rhs) const
{
  return this->toString() < rhs.toString();
}

bool HuffmanString::operator==(const HuffmanString& rhs) const
{
  return this->toString() == rhs.toString();
}

HuffmanSet& HuffmanString::getSet()
{
  return *set;
}