#include <basics.h>
#include <iostream>
-using namespace std;
+//using namespace std;
#define WT_CODER_HUFF_HDR 2
#define WT_CODER_BINARY_HDR 3
*/
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>