00001 #ifndef LUX_STORAGE_LUXIODATAUNIT_H
00002 #define LUX_STORAGE_LUXIODATAUNIT_H
00003
00004 #include <cstdlib>
00005 #include <stdint.h>
00006
00007 namespace Lux {
00008
00009 class LuxIODataUnit {
00010 public:
00011 LuxIODataUnit(bool is_cleanup_needed = false);
00012 LuxIODataUnit(void *data, uint32_t size, bool is_cleanup_needed = false);
00013 void set_data(void *data);
00014 void set_size(uint32_t size);
00015 void set(void *data, uint32_t size);
00016 void *get_data(void);
00017 uint32_t get_size(void);
00018 void set_cleanup_needed(bool is_cleanup_needed);
00019
00020 protected:
00021 ~LuxIODataUnit(void);
00022
00023 private:
00024 void *data_;
00025 uint32_t size_;
00026 bool is_cleanup_needed_;
00027
00028 void cleanup(void);
00029 };
00030 }
00031
00032 #endif