00001 #ifndef LUX_STORAGE_LUXIOARRAY_H
00002 #define LUX_STORAGE_LUXIOARRAY_H
00003
00004 #include <luxio/array.h>
00005 #include "lux/lux.h"
00006 #include "lux/util.h"
00007 #include "data_unit.h"
00008 #include <cassert>
00009 #include <string>
00010
00011 namespace Lux {
00012
00013 class LuxIOArray {
00014 public:
00015 LuxIOArray(void);
00016 bool open(const char *filename, db_flags_t open_flags);
00017 bool close(void);
00018 void set_index_type(IO::db_index_t index_type,
00019 uint8_t data_size = sizeof(uint32_t));
00020 bool put(uint32_t index, LuxDataUnit &val);
00021 bool put(uint32_t index, LuxDataUnit *val);
00022 bool append(uint32_t index, LuxDataUnit &val);
00023 bool append(uint32_t index, LuxDataUnit *val);
00024 bool get(uint32_t index, LuxDataUnit &val);
00025 bool get(uint32_t index, LuxDataUnit *val);
00026 bool del(uint32_t index);
00027
00028 protected:
00029 ~LuxIOArray(void);
00030
00031 private:
00032 IO::Array *ary_;
00033 };
00034 }
00035
00036 #endif