*/
class wt_coder {
public:
+ wt_coder();
+ virtual void use();
+ virtual void unuse();
virtual ~wt_coder() {};
/** Tells if at level l the symbol is represented by a one or a zero */
virtual bool is_set(uint symbol, uint l)=0;
virtual bool done(uint symbol, uint l)=0;
/** Returns the size of the coder */
virtual uint size()=0;
+ /** Returns the depth of the tree */
+ virtual uint depth() {
+ return -1; // Implemented in wt_coder_binary
+ }
/** Saves the coder to a file, returns 0 in case of success */
virtual uint save(FILE *fp)=0;
/** Loads a coder from a file, returns NULL in case of error */
static wt_coder * load(FILE *fp);
+ protected:
+ uint user_count;
};
#include <wt_coder_huff.h>