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