view HuffmanSet.hpp @ 40:f711ddb56ae7

Sort up includes.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Fri, 07 Sep 2012 13:32:33 +0200
parents 3bcdb8bb6914
children f8d0ea827db3
line wrap: on
line source

#ifndef HUFFMANSET_HPP
#define HUFFMANSET_HPP

#include "BitDecoder.hpp"

#include <QtCore/QBitArray>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>

class HuffmanSet {
public:
  typedef uint key_t;

private:
  QMap<key_t, QString> newStrings;
  QMap<key_t, QBitArray> map;
  QMap<QString, QBitArray> encoder;
  uint cutoff;
  uint numInserts;
  BitDecoder* lut;


public:
  HuffmanSet();
  void setCutoff(uint cutoff);
  static QStringList chunks(const QString& str);
  BitDecoder* createLut(const QMap<QString, uint>& freqTable);
  QString decode(const QBitArray& bits) const;
  static QBitArray encode(const QString& string, const QMap<QString, QBitArray>& encoder);
  void rebuild();
  bool contains(key_t key) const;
  uint totalElements() const;
  key_t hash(const QString& str);
  key_t insert(const QString& str);
  QString value(key_t key) const;
};

#endif //HUFFMANSET_HPP