10 #ifndef __SERIALIZABLE_HDF5_FILE_H__
11 #define __SERIALIZABLE_HDF5_FILE_H__
22 #define TYPE_INDEX H5T_NATIVE_INT32
24 #define STR_IS_SGSERIALIZABLE "is_sgserializable"
25 #define STR_IS_SPARSE "is_sparse"
26 #define STR_IS_CONT "is_container"
27 #define STR_IS_NULL "is_null"
28 #define STR_INSTANCE_NAME "instance_name"
29 #define STR_GENERIC_NAME "generic_name"
30 #define STR_CTYPE_NAME "container_type"
31 #define STR_LENGTH_X "length_x"
32 #define STR_LENGTH_Y "length_y"
34 #define STR_GROUP_PREFIX "$"
36 #define STR_SPARSE_FPTR "features_ptr"
37 #define STR_SPARSEENTRY_FINDEX "feat_index"
38 #define STR_SPARSEENTRY_ENTRY "entry"
42 #define IGNORE_IN_CLASSLIST
44 :
public CSerializableFile
46 friend class SerializableHdf5Reader00;
49 explicit type_item_t(
const char* name_);
54 hid_t dspace, dtype, dset;
57 SGSparseVectorEntry<char>* sparse_ptr;
61 DynArray<type_item_t*> m_stack_type;
62 DynArray<hid_t> m_stack_h5stream;
64 static hid_t sizeof_sparsetype();
65 static hid_t new_sparsetype();
66 static hobj_ref_t* get_ref_sparstype(
void* sparse_buf);
67 static hid_t new_sparseentrytype(EPrimitiveType ptype);
68 static hid_t ptype2hdf5(EPrimitiveType ptype);
69 static hid_t new_stype2hdf5(EStructType stype,
70 EPrimitiveType ptype);
71 static bool isequal_stype2hdf5(EStructType stype,
72 EPrimitiveType ptype, hid_t htype);
73 static bool index2string(
char* dest,
size_t n, EContainerType ctype,
76 void init(
const char* fname);
79 bool attr_write_scalar(hid_t datatype,
const char* name,
81 bool attr_write_string(
const char* name,
const char* val);
82 bool attr_exists(
const char* name);
83 size_t attr_get_size(
const char* name);
84 bool attr_read_scalar(hid_t datatype,
const char* name,
void* val);
85 bool attr_read_string(
const char* name,
char* val,
size_t n);
87 bool group_create(
const char* name,
const char* prefix);
88 bool group_open(
const char* name,
const char* prefix);
92 virtual TSerializableReader* new_reader(
93 char* dest_version,
size_t n);
95 virtual bool write_scalar_wrapped(
96 const TSGDataType* type,
const void* param);
98 virtual bool write_cont_begin_wrapped(
99 const TSGDataType* type,
index_t len_real_y,
101 virtual bool write_cont_end_wrapped(
102 const TSGDataType* type,
index_t len_real_y,
105 virtual bool write_string_begin_wrapped(
106 const TSGDataType* type,
index_t length);
107 virtual bool write_string_end_wrapped(
108 const TSGDataType* type,
index_t length);
110 virtual bool write_stringentry_begin_wrapped(
111 const TSGDataType* type,
index_t y);
112 virtual bool write_stringentry_end_wrapped(
113 const TSGDataType* type,
index_t y);
115 virtual bool write_sparse_begin_wrapped(
116 const TSGDataType* type,
index_t length);
117 virtual bool write_sparse_end_wrapped(
118 const TSGDataType* type,
index_t length);
120 virtual bool write_sparseentry_begin_wrapped(
121 const TSGDataType* type,
const SGSparseVectorEntry<char>* first_entry,
123 virtual bool write_sparseentry_end_wrapped(
124 const TSGDataType* type,
const SGSparseVectorEntry<char>* first_entry,
127 virtual bool write_item_begin_wrapped(
129 virtual bool write_item_end_wrapped(
132 virtual bool write_sgserializable_begin_wrapped(
133 const TSGDataType* type,
const char* sgserializable_name,
134 EPrimitiveType
generic);
135 virtual bool write_sgserializable_end_wrapped(
136 const TSGDataType* type,
const char* sgserializable_name,
137 EPrimitiveType
generic);
139 virtual bool write_type_begin_wrapped(
140 const TSGDataType* type,
const char* name,
142 virtual bool write_type_end_wrapped(
143 const TSGDataType* type,
const char* name,
148 explicit CSerializableHdf5File();
155 explicit CSerializableHdf5File(
const char* fname,
char rw=
'r');
158 virtual ~CSerializableHdf5File();
161 virtual const char* get_name()
const {
162 return "SerializableHdf5File";
165 virtual void close();
166 virtual bool is_opened();
all of classes and functions are contained in the shogun namespace
#define IGNORE_IN_CLASSLIST