view HuffmanString.cpp @ 115:404795616b1e default tip

Added a lot of common files to ignore
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Sat, 25 Mar 2017 17:43:57 +0100
parents 76846cb92b5c
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;
}