Import libcds.
[SXSI/libcds.git] / src / static_bitsequence / static_bitsequence_sdarray.h
diff --git a/src/static_bitsequence/static_bitsequence_sdarray.h b/src/static_bitsequence/static_bitsequence_sdarray.h
new file mode 100644 (file)
index 0000000..f8944d4
--- /dev/null
@@ -0,0 +1,30 @@
+
+#ifndef _STATIC_BITSEQUENCE_SDARRAY_H
+#define _STATIC_BITSEQUENCE_SDARRAY_H
+
+#include <basics.h>
+#include <static_bitsequence.h>
+#include <sdarray.h>
+
+class static_bitsequence_sdarray: public static_bitsequence {
+       public:
+               static_bitsequence_sdarray(uint * buff, uint len);
+               virtual ~static_bitsequence_sdarray();
+               virtual uint select1(uint i);
+               virtual uint rank1(uint i);
+               virtual uint select_next1(uint i);
+               virtual uint size();
+               virtual int save(FILE * fp);
+               static static_bitsequence_sdarray * load(FILE * fp);
+
+               uint select_next1_unsafe(uint i){
+                       return selects3_selectnext(&sd,i);      
+               };
+       protected:
+               selects3 sd;
+               static_bitsequence_sdarray();
+
+};
+
+#endif
+