14 if (boost::filesystem::exists(path_))
15 file_ = H5Fopen(path_.c_str(), H5F_ACC_RDWR, H5P_DEFAULT);
17 file_ = H5Fcreate(path_.c_str(), H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
18 opened_types_.clear();
23 uuid_type_ = H5Tcopy(H5T_C_S1);
25 H5Tset_strpad(uuid_type_, H5T_STR_NULLPAD);
26 opened_types_.insert(uuid_type_);
29 sha1_type_ = H5Tarray_create2(H5T_NATIVE_UINT, 1, &sha1_len);
30 opened_types_.insert(sha1_type_);
32 vlstr_type_ = H5Tcopy(H5T_C_S1);
33 H5Tset_size(vlstr_type_, H5T_VARIABLE);
34 opened_types_.insert(vlstr_type_);
37 blob_type_ = vlstr_type_;
38 vldts_[
BLOB] = blob_type_;
49 std::set<hid_t>::iterator t;
50 for (t = opened_types_.begin(); t != opened_types_.end(); ++t)
52 std::map<std::string, hid_t>::iterator vldsit;
53 for (vldsit = vldatasets_.begin(); vldsit != vldatasets_.end(); ++vldsit)
54 H5Dclose(vldsit->second);
57 std::map<std::string, size_t*>::iterator it;
58 std::map<std::string, DbTypes*>::iterator dbtit;
59 for (it = col_offsets_.begin(); it != col_offsets_.end(); ++it) {
62 for (it = col_sizes_.begin(); it != col_sizes_.end(); ++it) {
65 for (dbtit = schemas_.begin(); dbtit != schemas_.end(); ++dbtit) {
66 delete[](dbtit->second);
78 std::map<std::string, DatumList> groups;
79 for (DatumList::iterator it = data.begin(); it != data.end(); ++it) {
80 std::string name = (*it)->title();
81 if (schema_sizes_.count(name) == 0) {
82 if (H5Lexists(file_, name.c_str(), H5P_DEFAULT)) {
83 LoadTableTypes(name, (*it)->vals().size(), *it);
90 groups[name].push_back(*it);
93 std::map<std::string, DatumList>::iterator it;
94 for (it = groups.begin(); it != groups.end(); ++it) {
95 WriteGroup(it->second);
100std::string Hdf5Back::VLRead<std::string, VL_STRING>(
const char* rawkey) {
105 const std::vector<hsize_t> idx(key.begin(), key.end());
106 hid_t dset = VLDataset(
VL_STRING,
false);
107 hid_t dspace = H5Dget_space(dset);
109 herr_t status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET,
110 (
const hsize_t*) &idx[0],
111 NULL, vlchunk_, NULL);
113 throw IOError(
"could not select hyperslab of string value array for reading "
114 "in the database '" + path_ +
"'.");
115 char** buf =
new char*[
sizeof(
char *)];
116 status = H5Dread(dset, vldts_[
VL_STRING], mspace, dspace, H5P_DEFAULT, buf);
118 throw IOError(
"failed to read in variable length string data "
119 "in database '" + path_ +
"'.");
122 val = string(buf[0]);
123 status = H5Dvlen_reclaim(vldts_[
VL_STRING], mspace, H5P_DEFAULT, buf);
125 throw IOError(
"failed to reclaim variable length string data space in "
126 "database '" + path_ +
"'.");
134Blob Hdf5Back::VLRead<Blob, BLOB>(
const char* rawkey) {
138 const std::vector<hsize_t> idx(key.begin(), key.end());
139 hid_t dset = VLDataset(
BLOB,
false);
140 hid_t dspace = H5Dget_space(dset);
142 herr_t status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET,
143 (
const hsize_t*) &idx[0],
144 NULL, vlchunk_, NULL);
146 throw IOError(
"could not select hyperslab of Blob value array for reading "
147 "in the database '" + path_ +
"'.");
148 char** buf =
new char*[
sizeof(
char *)];
149 status = H5Dread(dset, vldts_[
BLOB], mspace, dspace, H5P_DEFAULT, buf);
151 throw IOError(
"failed to read in Blob data in database '" + path_ +
"'.");
152 Blob val = Blob(buf[0]);
153 status = H5Dvlen_reclaim(vldts_[
BLOB], mspace, H5P_DEFAULT, buf);
155 throw IOError(
"failed to reclaim Blob data space in database "
170 if (!H5Lexists(file_, table.c_str(), H5P_DEFAULT))
171 throw IOError(
"table '" + table +
"' does not exist in '" + path_ +
"'.");
176 hid_t tb_set = H5Dopen2(file_, table.c_str(), H5P_DEFAULT);
177 hid_t tb_space = H5Dget_space(tb_set);
178 hid_t tb_plist = H5Dget_create_plist(tb_set);
179 hid_t tb_type = H5Dget_type(tb_set);
180 size_t tb_typesize = H5Tget_size(tb_type);
181 int tb_length = H5Sget_simple_extent_npoints(tb_space);
182 hsize_t tb_chunksize;
183 H5Pget_chunk(tb_plist, 1, &tb_chunksize);
184 unsigned int nchunks =
185 (tb_length/tb_chunksize) + (tb_length%tb_chunksize == 0?0:1);
188 std::map<std::string, std::vector<Cond*> > field_conds =
189 std::map<std::string, std::vector<Cond*> >();
192 for (i = 0; i < conds->size(); ++i) {
193 cond = &((*conds)[i]);
194 if (field_conds.count(cond->
field) == 0)
195 field_conds[cond->
field] = std::vector<Cond*>();
196 field_conds[cond->
field].push_back(cond);
201 QueryResult qr = GetTableInfo(table, tb_set, tb_type);
202 int nfields = qr.
fields.size();
203 for (i = 0; i < nfields; ++i) {
204 if (field_conds.count(qr.
fields[i]) == 0) {
205 field_conds[qr.
fields[i]] = std::vector<Cond*>();
208 for (
unsigned int n = 0; n < nchunks; ++n) {
211 hsize_t start = n * tb_chunksize;
213 (tb_length-start) < tb_chunksize ? tb_length - start : tb_chunksize;
214 char* buf =
new char[tb_typesize * count];
215 hid_t memspace = H5Screate_simple(1, &count, NULL);
216 status = H5Sselect_hyperslab(tb_space, H5S_SELECT_SET, &start, NULL,
218 status = H5Dread(tb_set, tb_type, memspace, tb_space, H5P_DEFAULT, buf);
220 bool is_row_selected;
221 for (i = 0; i < count; ++i) {
222 offset = i * tb_typesize;
223 is_row_selected =
true;
225 for (j = 0; j < nfields; ++j) {
226 switch (qr.
types[j]) {
228 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
229 unsigned int total_size0=H5Tget_size(fieldtype0);
231 x0=*
reinterpret_cast<bool*
>(buf+offset);
237 H5Tclose(fieldtype0);
242 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
243 unsigned int total_size0=H5Tget_size(fieldtype0);
245 x0=*
reinterpret_cast<int*
>(buf+offset);
251 H5Tclose(fieldtype0);
256 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
257 unsigned int total_size0=H5Tget_size(fieldtype0);
259 x0=*
reinterpret_cast<float*
>(buf+offset);
265 H5Tclose(fieldtype0);
270 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
271 unsigned int total_size0=H5Tget_size(fieldtype0);
273 x0=*
reinterpret_cast<double*
>(buf+offset);
279 H5Tclose(fieldtype0);
285 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
286 unsigned int total_size0=H5Tget_size(fieldtype0);
288 x0=std::string(buf+offset, total_size0);
289 nullpos0=x0.find(
'\0');
290 if(nullpos0!=std::string::npos){
299 H5Tclose(fieldtype0);
304 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
305 unsigned int total_size0=H5Tget_size(fieldtype0);
313 H5Tclose(fieldtype0);
318 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
319 unsigned int total_size0=H5Tget_size(fieldtype0);
321 x0=VLRead<cyclus::Blob,BLOB>(buf+offset);
327 H5Tclose(fieldtype0);
332 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
333 unsigned int total_size0=H5Tget_size(fieldtype0);
334 boost::uuids::uuid x0;
335 memcpy(&x0, buf+offset, total_size0);
341 H5Tclose(fieldtype0);
346 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
347 unsigned int total_size0=H5Tget_size(fieldtype0);
349 H5Tget_array_dims2(fieldtype0, &fieldlen0);
350 hid_t item_type0=H5Tget_super(fieldtype0);
351 unsigned int total_size1elem=H5Tget_size(item_type0);
353 x0=std::vector<int>(fieldlen0);
354 memcpy(&x0[0], buf+offset, total_size0);
360 H5Tclose(item_type0);
361 H5Tclose(fieldtype0);
378 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
379 unsigned int total_size0=H5Tget_size(fieldtype0);
381 H5Tget_array_dims2(fieldtype0, &fieldlen0);
382 hid_t item_type0=H5Tget_super(fieldtype0);
383 unsigned int total_size1elem=H5Tget_size(item_type0);
384 std::vector<float> x0;
385 x0=std::vector<float>(fieldlen0);
386 memcpy(&x0[0], buf+offset, total_size0);
392 H5Tclose(item_type0);
393 H5Tclose(fieldtype0);
399 std::vector<float> x0;
410 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
411 unsigned int total_size0=H5Tget_size(fieldtype0);
413 H5Tget_array_dims2(fieldtype0, &fieldlen0);
414 hid_t item_type0=H5Tget_super(fieldtype0);
415 unsigned int total_size1elem=H5Tget_size(item_type0);
416 std::vector<double> x0;
417 x0=std::vector<double>(fieldlen0);
418 memcpy(&x0[0], buf+offset, total_size0);
424 H5Tclose(item_type0);
425 H5Tclose(fieldtype0);
431 std::vector<double> x0;
442 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
443 unsigned int total_size0=H5Tget_size(fieldtype0);
445 H5Tget_array_dims2(fieldtype0, &fieldlen0);
446 hid_t item_type0=H5Tget_super(fieldtype0);
448 unsigned int total_size1elem=H5Tget_size(item_type0);
449 std::vector<std::string> x0;
450 x0=std::vector<std::string>(fieldlen0);
451 for(
unsigned int k0=0;k0<fieldlen0;++k0){
452 x0[k0]=std::string(buf+offset+total_size1elem*k0, total_size1elem);
453 nullpos1elem=x0[k0].find(
'\0');
454 if(nullpos1elem!=std::string::npos){
455 x0[k0].resize(nullpos1elem);
465 H5Tclose(item_type0);
466 H5Tclose(fieldtype0);
472 std::vector<std::string> x0;
483 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
484 unsigned int total_size0=H5Tget_size(fieldtype0);
486 H5Tget_array_dims2(fieldtype0, &fieldlen0);
487 hid_t item_type0=H5Tget_super(fieldtype0);
488 unsigned int total_size1elem=H5Tget_size(item_type0);
489 std::vector<std::string> x0;
490 x0=std::vector<std::string>(fieldlen0);
491 for(
unsigned int k0=0;k0<fieldlen0;++k0){
502 H5Tclose(item_type0);
503 H5Tclose(fieldtype0);
509 std::vector<std::string> x0;
520 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
521 unsigned int total_size0=H5Tget_size(fieldtype0);
523 H5Tget_array_dims2(fieldtype0, &fieldlen0);
524 hid_t item_type0=H5Tget_super(fieldtype0);
525 unsigned int total_size1elem=H5Tget_size(item_type0);
526 std::vector<cyclus::Blob> x0;
527 x0=std::vector<cyclus::Blob>(fieldlen0);
528 for(
unsigned int k0=0;k0<fieldlen0;++k0){
530 x1elem=VLRead<cyclus::Blob,BLOB>(buf+offset+total_size1elem*k0);
539 H5Tclose(item_type0);
540 H5Tclose(fieldtype0);
546 std::vector<cyclus::Blob> x0;
557 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
558 unsigned int total_size0=H5Tget_size(fieldtype0);
560 H5Tget_array_dims2(fieldtype0, &fieldlen0);
561 hid_t item_type0=H5Tget_super(fieldtype0);
562 unsigned int total_size1elem=H5Tget_size(item_type0);
563 std::vector<boost::uuids::uuid> x0;
564 x0=std::vector<boost::uuids::uuid>(fieldlen0);
565 for(
unsigned int k0=0;k0<fieldlen0;++k0){
566 boost::uuids::uuid x1elem;
567 memcpy(&x1elem, buf+offset+total_size1elem*k0, total_size1elem);
576 H5Tclose(item_type0);
577 H5Tclose(fieldtype0);
583 std::vector<boost::uuids::uuid> x0;
584 x0=VLRead<std::vector<boost::uuids::uuid>,
VL_VECTOR_UUID>(buf+offset);
594 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
595 unsigned int total_size0=H5Tget_size(fieldtype0);
597 H5Tget_array_dims2(fieldtype0, &fieldlen0);
598 hid_t item_type0=H5Tget_super(fieldtype0);
599 unsigned int total_size1elem=H5Tget_size(item_type0);
601 int* xraw1elem=
reinterpret_cast<int*
>(buf+offset);
602 x0=std::set<int>(xraw1elem, xraw1elem+fieldlen0);
608 H5Tclose(item_type0);
609 H5Tclose(fieldtype0);
616 x0=VLRead<std::set<int>,
VL_SET_INT>(buf+offset);
626 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
627 unsigned int total_size0=H5Tget_size(fieldtype0);
629 H5Tget_array_dims2(fieldtype0, &fieldlen0);
630 hid_t item_type0=H5Tget_super(fieldtype0);
631 unsigned int total_size1elem=H5Tget_size(item_type0);
633 float* xraw1elem=
reinterpret_cast<float*
>(buf+offset);
634 x0=std::set<float>(xraw1elem, xraw1elem+fieldlen0);
640 H5Tclose(item_type0);
641 H5Tclose(fieldtype0);
658 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
659 unsigned int total_size0=H5Tget_size(fieldtype0);
661 H5Tget_array_dims2(fieldtype0, &fieldlen0);
662 hid_t item_type0=H5Tget_super(fieldtype0);
663 unsigned int total_size1elem=H5Tget_size(item_type0);
665 double* xraw1elem=
reinterpret_cast<double*
>(buf+offset);
666 x0=std::set<double>(xraw1elem, xraw1elem+fieldlen0);
672 H5Tclose(item_type0);
673 H5Tclose(fieldtype0);
690 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
691 unsigned int total_size0=H5Tget_size(fieldtype0);
693 H5Tget_array_dims2(fieldtype0, &fieldlen0);
694 hid_t item_type0=H5Tget_super(fieldtype0);
696 unsigned int total_size1elem=H5Tget_size(item_type0);
697 std::set<std::string> x0;
698 for(
unsigned int k0=0;k0<fieldlen0;++k0){
700 x1elem=std::string(buf+offset+total_size1elem*k0, total_size1elem);
701 nullpos1elem=x1elem.find(
'\0');
702 if(nullpos1elem!=std::string::npos){
703 x1elem.resize(nullpos1elem);
714 H5Tclose(item_type0);
715 H5Tclose(fieldtype0);
721 std::set<std::string> x0;
732 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
733 unsigned int total_size0=H5Tget_size(fieldtype0);
735 H5Tget_array_dims2(fieldtype0, &fieldlen0);
736 hid_t item_type0=H5Tget_super(fieldtype0);
737 unsigned int total_size1elem=H5Tget_size(item_type0);
738 std::set<std::string> x0;
739 for(
unsigned int k0=0;k0<fieldlen0;++k0){
750 H5Tclose(item_type0);
751 H5Tclose(fieldtype0);
757 std::set<std::string> x0;
768 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
769 unsigned int total_size0=H5Tget_size(fieldtype0);
771 H5Tget_array_dims2(fieldtype0, &fieldlen0);
772 hid_t item_type0=H5Tget_super(fieldtype0);
773 unsigned int total_size1elem=H5Tget_size(item_type0);
774 std::set<cyclus::Blob> x0;
775 for(
unsigned int k0=0;k0<fieldlen0;++k0){
777 x1elem=VLRead<cyclus::Blob,BLOB>(buf+offset+total_size1elem*k0);
786 H5Tclose(item_type0);
787 H5Tclose(fieldtype0);
793 std::set<cyclus::Blob> x0;
794 x0=VLRead<std::set<cyclus::Blob>,
VL_SET_BLOB>(buf+offset);
804 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
805 unsigned int total_size0=H5Tget_size(fieldtype0);
807 H5Tget_array_dims2(fieldtype0, &fieldlen0);
808 hid_t item_type0=H5Tget_super(fieldtype0);
809 unsigned int total_size1elem=H5Tget_size(item_type0);
810 std::set<boost::uuids::uuid> x0;
811 for(
unsigned int k0=0;k0<fieldlen0;++k0){
812 boost::uuids::uuid x1elem;
813 memcpy(&x1elem, buf+offset+total_size1elem*k0, total_size1elem);
822 H5Tclose(item_type0);
823 H5Tclose(fieldtype0);
829 std::set<boost::uuids::uuid> x0;
830 x0=VLRead<std::set<boost::uuids::uuid>,
VL_SET_UUID>(buf+offset);
840 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
841 unsigned int total_size0=H5Tget_size(fieldtype0);
843 H5Tget_array_dims2(fieldtype0, &fieldlen0);
844 hid_t item_type0=H5Tget_super(fieldtype0);
845 unsigned int total_size1elem=H5Tget_size(item_type0);
847 for(
unsigned int k0=0;k0<fieldlen0;++k0){
849 x1elem=*
reinterpret_cast<bool*
>(buf+offset+total_size1elem*k0);
850 x0.push_back(x1elem);
858 H5Tclose(item_type0);
859 H5Tclose(fieldtype0);
876 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
877 unsigned int total_size0=H5Tget_size(fieldtype0);
879 H5Tget_array_dims2(fieldtype0, &fieldlen0);
880 hid_t item_type0=H5Tget_super(fieldtype0);
881 unsigned int total_size1elem=H5Tget_size(item_type0);
883 int* xraw1elem=
reinterpret_cast<int*
>(buf+offset);
884 x0=std::list<int>(xraw1elem, xraw1elem+fieldlen0);
890 H5Tclose(item_type0);
891 H5Tclose(fieldtype0);
908 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
909 unsigned int total_size0=H5Tget_size(fieldtype0);
911 H5Tget_array_dims2(fieldtype0, &fieldlen0);
912 hid_t item_type0=H5Tget_super(fieldtype0);
913 unsigned int total_size1elem=H5Tget_size(item_type0);
915 float* xraw1elem=
reinterpret_cast<float*
>(buf+offset);
916 x0=std::list<float>(xraw1elem, xraw1elem+fieldlen0);
922 H5Tclose(item_type0);
923 H5Tclose(fieldtype0);
940 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
941 unsigned int total_size0=H5Tget_size(fieldtype0);
943 H5Tget_array_dims2(fieldtype0, &fieldlen0);
944 hid_t item_type0=H5Tget_super(fieldtype0);
945 unsigned int total_size1elem=H5Tget_size(item_type0);
946 std::list<double> x0;
947 double* xraw1elem=
reinterpret_cast<double*
>(buf+offset);
948 x0=std::list<double>(xraw1elem, xraw1elem+fieldlen0);
954 H5Tclose(item_type0);
955 H5Tclose(fieldtype0);
961 std::list<double> x0;
972 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
973 unsigned int total_size0=H5Tget_size(fieldtype0);
975 H5Tget_array_dims2(fieldtype0, &fieldlen0);
976 hid_t item_type0=H5Tget_super(fieldtype0);
978 unsigned int total_size1elem=H5Tget_size(item_type0);
979 std::list<std::string> x0;
980 for(
unsigned int k0=0;k0<fieldlen0;++k0){
982 x1elem=std::string(buf+offset+total_size1elem*k0, total_size1elem);
983 nullpos1elem=x1elem.find(
'\0');
984 if(nullpos1elem!=std::string::npos){
985 x1elem.resize(nullpos1elem);
988 x0.push_back(x1elem);
996 H5Tclose(item_type0);
997 H5Tclose(fieldtype0);
1003 std::list<std::string> x0;
1006 if(is_row_selected){
1014 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1015 unsigned int total_size0=H5Tget_size(fieldtype0);
1017 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1018 hid_t item_type0=H5Tget_super(fieldtype0);
1019 unsigned int total_size1elem=H5Tget_size(item_type0);
1020 std::list<std::string> x0;
1021 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1024 x0.push_back(x1elem);
1028 if(is_row_selected){
1032 H5Tclose(item_type0);
1033 H5Tclose(fieldtype0);
1039 std::list<std::string> x0;
1042 if(is_row_selected){
1050 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1051 unsigned int total_size0=H5Tget_size(fieldtype0);
1053 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1054 hid_t item_type0=H5Tget_super(fieldtype0);
1055 unsigned int total_size1elem=H5Tget_size(item_type0);
1056 std::list<cyclus::Blob> x0;
1057 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1059 x1elem=VLRead<cyclus::Blob,BLOB>(buf+offset+total_size1elem*k0);
1060 x0.push_back(x1elem);
1064 if(is_row_selected){
1068 H5Tclose(item_type0);
1069 H5Tclose(fieldtype0);
1075 std::list<cyclus::Blob> x0;
1076 x0=VLRead<std::list<cyclus::Blob>,
VL_LIST_BLOB>(buf+offset);
1078 if(is_row_selected){
1086 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1087 unsigned int total_size0=H5Tget_size(fieldtype0);
1089 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1090 hid_t item_type0=H5Tget_super(fieldtype0);
1091 unsigned int total_size1elem=H5Tget_size(item_type0);
1092 std::list<boost::uuids::uuid> x0;
1093 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1094 boost::uuids::uuid x1elem;
1095 memcpy(&x1elem, buf+offset+total_size1elem*k0, total_size1elem);
1096 x0.push_back(x1elem);
1100 if(is_row_selected){
1104 H5Tclose(item_type0);
1105 H5Tclose(fieldtype0);
1111 std::list<boost::uuids::uuid> x0;
1112 x0=VLRead<std::list<boost::uuids::uuid>,
VL_LIST_UUID>(buf+offset);
1114 if(is_row_selected){
1122 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1123 unsigned int total_size0=H5Tget_size(fieldtype0);
1124 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1125 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1126 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1127 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1128 std::pair<int, bool> x0;
1130 x1first=*
reinterpret_cast<int*
>(buf+offset);
1132 x1second=*
reinterpret_cast<bool*
>(buf+offset+total_size1first);
1133 x0=std::make_pair(x1first, x1second);
1135 if(is_row_selected){
1139 H5Tclose(fieldtype1second);
1140 H5Tclose(fieldtype1first);
1141 H5Tclose(fieldtype0);
1146 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1147 unsigned int total_size0=H5Tget_size(fieldtype0);
1148 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1149 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1150 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1151 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1152 std::pair<int, int> x0;
1154 x1first=*
reinterpret_cast<int*
>(buf+offset);
1156 x1second=*
reinterpret_cast<int*
>(buf+offset+total_size1first);
1157 x0=std::make_pair(x1first, x1second);
1159 if(is_row_selected){
1163 H5Tclose(fieldtype1second);
1164 H5Tclose(fieldtype1first);
1165 H5Tclose(fieldtype0);
1170 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1171 unsigned int total_size0=H5Tget_size(fieldtype0);
1172 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1173 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1174 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1175 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1176 std::pair<int, float> x0;
1178 x1first=*
reinterpret_cast<int*
>(buf+offset);
1180 x1second=*
reinterpret_cast<float*
>(buf+offset+total_size1first);
1181 x0=std::make_pair(x1first, x1second);
1183 if(is_row_selected){
1187 H5Tclose(fieldtype1second);
1188 H5Tclose(fieldtype1first);
1189 H5Tclose(fieldtype0);
1194 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1195 unsigned int total_size0=H5Tget_size(fieldtype0);
1196 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1197 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1198 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1199 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1200 std::pair<int, double> x0;
1202 x1first=*
reinterpret_cast<int*
>(buf+offset);
1204 x1second=*
reinterpret_cast<double*
>(buf+offset+total_size1first);
1205 x0=std::make_pair(x1first, x1second);
1207 if(is_row_selected){
1211 H5Tclose(fieldtype1second);
1212 H5Tclose(fieldtype1first);
1213 H5Tclose(fieldtype0);
1218 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1219 unsigned int total_size0=H5Tget_size(fieldtype0);
1220 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1221 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1222 size_t nullpos1second;
1223 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1224 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1225 std::pair<int, std::string> x0;
1227 x1first=*
reinterpret_cast<int*
>(buf+offset);
1228 std::string x1second;
1229 x1second=std::string(buf+offset+total_size1first, total_size1second);
1230 nullpos1second=x1second.find(
'\0');
1231 if(nullpos1second!=std::string::npos){
1232 x1second.resize(nullpos1second);
1235 x0=std::make_pair(x1first, x1second);
1237 if(is_row_selected){
1241 H5Tclose(fieldtype1second);
1242 H5Tclose(fieldtype1first);
1243 H5Tclose(fieldtype0);
1248 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1249 unsigned int total_size0=H5Tget_size(fieldtype0);
1250 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1251 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1252 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1253 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1254 std::pair<int, std::string> x0;
1256 x1first=*
reinterpret_cast<int*
>(buf+offset);
1257 std::string x1second;
1259 x0=std::make_pair(x1first, x1second);
1261 if(is_row_selected){
1265 H5Tclose(fieldtype1second);
1266 H5Tclose(fieldtype1first);
1267 H5Tclose(fieldtype0);
1272 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1273 unsigned int total_size0=H5Tget_size(fieldtype0);
1274 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1275 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1276 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1277 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1278 std::pair<int, cyclus::Blob> x0;
1280 x1first=*
reinterpret_cast<int*
>(buf+offset);
1282 x1second=VLRead<cyclus::Blob,BLOB>(buf+offset+total_size1first);
1283 x0=std::make_pair(x1first, x1second);
1285 if(is_row_selected){
1289 H5Tclose(fieldtype1second);
1290 H5Tclose(fieldtype1first);
1291 H5Tclose(fieldtype0);
1296 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1297 unsigned int total_size0=H5Tget_size(fieldtype0);
1298 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1299 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1300 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1301 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1302 std::pair<int, boost::uuids::uuid> x0;
1304 x1first=*
reinterpret_cast<int*
>(buf+offset);
1305 boost::uuids::uuid x1second;
1306 memcpy(&x1second, buf+offset+total_size1first, total_size1second);
1307 x0=std::make_pair(x1first, x1second);
1309 if(is_row_selected){
1313 H5Tclose(fieldtype1second);
1314 H5Tclose(fieldtype1first);
1315 H5Tclose(fieldtype0);
1320 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1321 unsigned int total_size0=H5Tget_size(fieldtype0);
1322 size_t nullpos1first;
1323 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1324 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1325 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1326 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1327 std::pair<std::string, bool> x0;
1328 std::string x1first;
1329 x1first=std::string(buf+offset, total_size1first);
1330 nullpos1first=x1first.find(
'\0');
1331 if(nullpos1first!=std::string::npos){
1332 x1first.resize(nullpos1first);
1336 x1second=*
reinterpret_cast<bool*
>(buf+offset+total_size1first);
1337 x0=std::make_pair(x1first, x1second);
1339 if(is_row_selected){
1343 H5Tclose(fieldtype1second);
1344 H5Tclose(fieldtype1first);
1345 H5Tclose(fieldtype0);
1350 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1351 unsigned int total_size0=H5Tget_size(fieldtype0);
1352 size_t nullpos1first;
1353 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1354 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1355 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1356 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1357 std::pair<std::string, int> x0;
1358 std::string x1first;
1359 x1first=std::string(buf+offset, total_size1first);
1360 nullpos1first=x1first.find(
'\0');
1361 if(nullpos1first!=std::string::npos){
1362 x1first.resize(nullpos1first);
1366 x1second=*
reinterpret_cast<int*
>(buf+offset+total_size1first);
1367 x0=std::make_pair(x1first, x1second);
1369 if(is_row_selected){
1373 H5Tclose(fieldtype1second);
1374 H5Tclose(fieldtype1first);
1375 H5Tclose(fieldtype0);
1380 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1381 unsigned int total_size0=H5Tget_size(fieldtype0);
1382 size_t nullpos1first;
1383 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1384 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1385 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1386 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1387 std::pair<std::string, float> x0;
1388 std::string x1first;
1389 x1first=std::string(buf+offset, total_size1first);
1390 nullpos1first=x1first.find(
'\0');
1391 if(nullpos1first!=std::string::npos){
1392 x1first.resize(nullpos1first);
1396 x1second=*
reinterpret_cast<float*
>(buf+offset+total_size1first);
1397 x0=std::make_pair(x1first, x1second);
1399 if(is_row_selected){
1403 H5Tclose(fieldtype1second);
1404 H5Tclose(fieldtype1first);
1405 H5Tclose(fieldtype0);
1410 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1411 unsigned int total_size0=H5Tget_size(fieldtype0);
1412 size_t nullpos1first;
1413 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1414 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1415 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1416 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1417 std::pair<std::string, double> x0;
1418 std::string x1first;
1419 x1first=std::string(buf+offset, total_size1first);
1420 nullpos1first=x1first.find(
'\0');
1421 if(nullpos1first!=std::string::npos){
1422 x1first.resize(nullpos1first);
1426 x1second=*
reinterpret_cast<double*
>(buf+offset+total_size1first);
1427 x0=std::make_pair(x1first, x1second);
1429 if(is_row_selected){
1433 H5Tclose(fieldtype1second);
1434 H5Tclose(fieldtype1first);
1435 H5Tclose(fieldtype0);
1440 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1441 unsigned int total_size0=H5Tget_size(fieldtype0);
1442 size_t nullpos1first;
1443 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1444 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1445 size_t nullpos1second;
1446 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1447 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1448 std::pair<std::string, std::string> x0;
1449 std::string x1first;
1450 x1first=std::string(buf+offset, total_size1first);
1451 nullpos1first=x1first.find(
'\0');
1452 if(nullpos1first!=std::string::npos){
1453 x1first.resize(nullpos1first);
1456 std::string x1second;
1457 x1second=std::string(buf+offset+total_size1first, total_size1second);
1458 nullpos1second=x1second.find(
'\0');
1459 if(nullpos1second!=std::string::npos){
1460 x1second.resize(nullpos1second);
1463 x0=std::make_pair(x1first, x1second);
1465 if(is_row_selected){
1469 H5Tclose(fieldtype1second);
1470 H5Tclose(fieldtype1first);
1471 H5Tclose(fieldtype0);
1476 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1477 unsigned int total_size0=H5Tget_size(fieldtype0);
1478 size_t nullpos1first;
1479 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1480 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1481 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1482 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1483 std::pair<std::string, std::string> x0;
1484 std::string x1first;
1485 x1first=std::string(buf+offset, total_size1first);
1486 nullpos1first=x1first.find(
'\0');
1487 if(nullpos1first!=std::string::npos){
1488 x1first.resize(nullpos1first);
1491 std::string x1second;
1493 x0=std::make_pair(x1first, x1second);
1495 if(is_row_selected){
1499 H5Tclose(fieldtype1second);
1500 H5Tclose(fieldtype1first);
1501 H5Tclose(fieldtype0);
1506 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1507 unsigned int total_size0=H5Tget_size(fieldtype0);
1508 size_t nullpos1first;
1509 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1510 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1511 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1512 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1513 std::pair<std::string, cyclus::Blob> x0;
1514 std::string x1first;
1515 x1first=std::string(buf+offset, total_size1first);
1516 nullpos1first=x1first.find(
'\0');
1517 if(nullpos1first!=std::string::npos){
1518 x1first.resize(nullpos1first);
1522 x1second=VLRead<cyclus::Blob,BLOB>(buf+offset+total_size1first);
1523 x0=std::make_pair(x1first, x1second);
1525 if(is_row_selected){
1529 H5Tclose(fieldtype1second);
1530 H5Tclose(fieldtype1first);
1531 H5Tclose(fieldtype0);
1536 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1537 unsigned int total_size0=H5Tget_size(fieldtype0);
1538 size_t nullpos1first;
1539 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1540 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1541 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1542 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1543 std::pair<std::string, boost::uuids::uuid> x0;
1544 std::string x1first;
1545 x1first=std::string(buf+offset, total_size1first);
1546 nullpos1first=x1first.find(
'\0');
1547 if(nullpos1first!=std::string::npos){
1548 x1first.resize(nullpos1first);
1551 boost::uuids::uuid x1second;
1552 memcpy(&x1second, buf+offset+total_size1first, total_size1second);
1553 x0=std::make_pair(x1first, x1second);
1555 if(is_row_selected){
1559 H5Tclose(fieldtype1second);
1560 H5Tclose(fieldtype1first);
1561 H5Tclose(fieldtype0);
1566 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1567 unsigned int total_size0=H5Tget_size(fieldtype0);
1568 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1569 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1570 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1571 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1572 std::pair<std::string, bool> x0;
1573 std::string x1first;
1576 x1second=*
reinterpret_cast<bool*
>(buf+offset+total_size1first);
1577 x0=std::make_pair(x1first, x1second);
1579 if(is_row_selected){
1583 H5Tclose(fieldtype1second);
1584 H5Tclose(fieldtype1first);
1585 H5Tclose(fieldtype0);
1590 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1591 unsigned int total_size0=H5Tget_size(fieldtype0);
1592 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1593 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1594 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1595 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1596 std::pair<std::string, int> x0;
1597 std::string x1first;
1600 x1second=*
reinterpret_cast<int*
>(buf+offset+total_size1first);
1601 x0=std::make_pair(x1first, x1second);
1603 if(is_row_selected){
1607 H5Tclose(fieldtype1second);
1608 H5Tclose(fieldtype1first);
1609 H5Tclose(fieldtype0);
1614 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1615 unsigned int total_size0=H5Tget_size(fieldtype0);
1616 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1617 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1618 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1619 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1620 std::pair<std::string, float> x0;
1621 std::string x1first;
1624 x1second=*
reinterpret_cast<float*
>(buf+offset+total_size1first);
1625 x0=std::make_pair(x1first, x1second);
1627 if(is_row_selected){
1631 H5Tclose(fieldtype1second);
1632 H5Tclose(fieldtype1first);
1633 H5Tclose(fieldtype0);
1638 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1639 unsigned int total_size0=H5Tget_size(fieldtype0);
1640 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1641 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1642 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1643 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1644 std::pair<std::string, double> x0;
1645 std::string x1first;
1648 x1second=*
reinterpret_cast<double*
>(buf+offset+total_size1first);
1649 x0=std::make_pair(x1first, x1second);
1651 if(is_row_selected){
1655 H5Tclose(fieldtype1second);
1656 H5Tclose(fieldtype1first);
1657 H5Tclose(fieldtype0);
1662 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1663 unsigned int total_size0=H5Tget_size(fieldtype0);
1664 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1665 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1666 size_t nullpos1second;
1667 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1668 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1669 std::pair<std::string, std::string> x0;
1670 std::string x1first;
1672 std::string x1second;
1673 x1second=std::string(buf+offset+total_size1first, total_size1second);
1674 nullpos1second=x1second.find(
'\0');
1675 if(nullpos1second!=std::string::npos){
1676 x1second.resize(nullpos1second);
1679 x0=std::make_pair(x1first, x1second);
1681 if(is_row_selected){
1685 H5Tclose(fieldtype1second);
1686 H5Tclose(fieldtype1first);
1687 H5Tclose(fieldtype0);
1692 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1693 unsigned int total_size0=H5Tget_size(fieldtype0);
1694 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1695 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1696 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1697 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1698 std::pair<std::string, std::string> x0;
1699 std::string x1first;
1701 std::string x1second;
1703 x0=std::make_pair(x1first, x1second);
1705 if(is_row_selected){
1709 H5Tclose(fieldtype1second);
1710 H5Tclose(fieldtype1first);
1711 H5Tclose(fieldtype0);
1716 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1717 unsigned int total_size0=H5Tget_size(fieldtype0);
1718 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1719 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1720 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1721 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1722 std::pair<std::string, cyclus::Blob> x0;
1723 std::string x1first;
1726 x1second=VLRead<cyclus::Blob,BLOB>(buf+offset+total_size1first);
1727 x0=std::make_pair(x1first, x1second);
1729 if(is_row_selected){
1733 H5Tclose(fieldtype1second);
1734 H5Tclose(fieldtype1first);
1735 H5Tclose(fieldtype0);
1740 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1741 unsigned int total_size0=H5Tget_size(fieldtype0);
1742 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
1743 unsigned int total_size1first=H5Tget_size(fieldtype1first);
1744 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
1745 unsigned int total_size1second=H5Tget_size(fieldtype1second);
1746 std::pair<std::string, boost::uuids::uuid> x0;
1747 std::string x1first;
1749 boost::uuids::uuid x1second;
1750 memcpy(&x1second, buf+offset+total_size1first, total_size1second);
1751 x0=std::make_pair(x1first, x1second);
1753 if(is_row_selected){
1757 H5Tclose(fieldtype1second);
1758 H5Tclose(fieldtype1first);
1759 H5Tclose(fieldtype0);
1764 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1765 unsigned int total_size0=H5Tget_size(fieldtype0);
1767 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1768 hid_t item_type0=H5Tget_super(fieldtype0);
1769 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
1770 unsigned int total_size1key=H5Tget_size(fieldtype1key);
1771 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
1772 unsigned int total_size1val=H5Tget_size(fieldtype1val);
1773 std::map<int, bool> x0;
1774 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1776 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
1778 x1val=*
reinterpret_cast<bool*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
1783 if(is_row_selected){
1787 H5Tclose(fieldtype1val);
1788 H5Tclose(fieldtype1key);
1789 H5Tclose(item_type0);
1790 H5Tclose(fieldtype0);
1796 std::map<int, bool> x0;
1799 if(is_row_selected){
1807 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1808 unsigned int total_size0=H5Tget_size(fieldtype0);
1810 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1811 hid_t item_type0=H5Tget_super(fieldtype0);
1812 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
1813 unsigned int total_size1key=H5Tget_size(fieldtype1key);
1814 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
1815 unsigned int total_size1val=H5Tget_size(fieldtype1val);
1816 std::map<int, int> x0;
1817 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1819 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
1821 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
1826 if(is_row_selected){
1830 H5Tclose(fieldtype1val);
1831 H5Tclose(fieldtype1key);
1832 H5Tclose(item_type0);
1833 H5Tclose(fieldtype0);
1839 std::map<int, int> x0;
1842 if(is_row_selected){
1850 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1851 unsigned int total_size0=H5Tget_size(fieldtype0);
1853 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1854 hid_t item_type0=H5Tget_super(fieldtype0);
1855 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
1856 unsigned int total_size1key=H5Tget_size(fieldtype1key);
1857 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
1858 unsigned int total_size1val=H5Tget_size(fieldtype1val);
1859 std::map<int, float> x0;
1860 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1862 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
1864 x1val=*
reinterpret_cast<float*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
1869 if(is_row_selected){
1873 H5Tclose(fieldtype1val);
1874 H5Tclose(fieldtype1key);
1875 H5Tclose(item_type0);
1876 H5Tclose(fieldtype0);
1882 std::map<int, float> x0;
1885 if(is_row_selected){
1893 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1894 unsigned int total_size0=H5Tget_size(fieldtype0);
1896 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1897 hid_t item_type0=H5Tget_super(fieldtype0);
1898 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
1899 unsigned int total_size1key=H5Tget_size(fieldtype1key);
1900 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
1901 unsigned int total_size1val=H5Tget_size(fieldtype1val);
1902 std::map<int, double> x0;
1903 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1905 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
1907 x1val=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
1912 if(is_row_selected){
1916 H5Tclose(fieldtype1val);
1917 H5Tclose(fieldtype1key);
1918 H5Tclose(item_type0);
1919 H5Tclose(fieldtype0);
1925 std::map<int, double> x0;
1928 if(is_row_selected){
1936 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1937 unsigned int total_size0=H5Tget_size(fieldtype0);
1939 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1940 hid_t item_type0=H5Tget_super(fieldtype0);
1941 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
1942 unsigned int total_size1key=H5Tget_size(fieldtype1key);
1944 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
1945 unsigned int total_size1val=H5Tget_size(fieldtype1val);
1946 std::map<int, std::string> x0;
1947 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1949 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
1951 x1val=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
1952 nullpos1val=x1val.find(
'\0');
1953 if(nullpos1val!=std::string::npos){
1954 x1val.resize(nullpos1val);
1961 if(is_row_selected){
1965 H5Tclose(fieldtype1val);
1966 H5Tclose(fieldtype1key);
1967 H5Tclose(item_type0);
1968 H5Tclose(fieldtype0);
1974 std::map<int, std::string> x0;
1977 if(is_row_selected){
1985 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
1986 unsigned int total_size0=H5Tget_size(fieldtype0);
1988 H5Tget_array_dims2(fieldtype0, &fieldlen0);
1989 hid_t item_type0=H5Tget_super(fieldtype0);
1990 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
1991 unsigned int total_size1key=H5Tget_size(fieldtype1key);
1992 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
1993 unsigned int total_size1val=H5Tget_size(fieldtype1val);
1994 std::map<int, std::string> x0;
1995 for(
unsigned int k0=0;k0<fieldlen0;++k0){
1997 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
2004 if(is_row_selected){
2008 H5Tclose(fieldtype1val);
2009 H5Tclose(fieldtype1key);
2010 H5Tclose(item_type0);
2011 H5Tclose(fieldtype0);
2017 std::map<int, std::string> x0;
2020 if(is_row_selected){
2028 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2029 unsigned int total_size0=H5Tget_size(fieldtype0);
2031 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2032 hid_t item_type0=H5Tget_super(fieldtype0);
2033 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2034 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2035 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2036 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2037 std::map<int, cyclus::Blob> x0;
2038 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2040 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
2042 x1val=VLRead<cyclus::Blob,BLOB>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2047 if(is_row_selected){
2051 H5Tclose(fieldtype1val);
2052 H5Tclose(fieldtype1key);
2053 H5Tclose(item_type0);
2054 H5Tclose(fieldtype0);
2060 std::map<int, cyclus::Blob> x0;
2063 if(is_row_selected){
2071 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2072 unsigned int total_size0=H5Tget_size(fieldtype0);
2074 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2075 hid_t item_type0=H5Tget_super(fieldtype0);
2076 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2077 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2078 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2079 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2080 std::map<int, boost::uuids::uuid> x0;
2081 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2083 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
2084 boost::uuids::uuid x1val;
2085 memcpy(&x1val, buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
2090 if(is_row_selected){
2094 H5Tclose(fieldtype1val);
2095 H5Tclose(fieldtype1key);
2096 H5Tclose(item_type0);
2097 H5Tclose(fieldtype0);
2103 std::map<int, boost::uuids::uuid> x0;
2104 x0=VLRead<std::map<int, boost::uuids::uuid>,
VL_MAP_INT_UUID>(buf+offset);
2106 if(is_row_selected){
2114 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2115 unsigned int total_size0=H5Tget_size(fieldtype0);
2117 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2118 hid_t item_type0=H5Tget_super(fieldtype0);
2120 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2121 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2122 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2123 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2124 std::map<std::string, bool> x0;
2125 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2127 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2128 nullpos1key=x1key.find(
'\0');
2129 if(nullpos1key!=std::string::npos){
2130 x1key.resize(nullpos1key);
2134 x1val=*
reinterpret_cast<bool*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2139 if(is_row_selected){
2143 H5Tclose(fieldtype1val);
2144 H5Tclose(fieldtype1key);
2145 H5Tclose(item_type0);
2146 H5Tclose(fieldtype0);
2152 std::map<std::string, bool> x0;
2155 if(is_row_selected){
2163 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2164 unsigned int total_size0=H5Tget_size(fieldtype0);
2166 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2167 hid_t item_type0=H5Tget_super(fieldtype0);
2169 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2170 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2171 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2172 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2173 std::map<std::string, int> x0;
2174 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2176 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2177 nullpos1key=x1key.find(
'\0');
2178 if(nullpos1key!=std::string::npos){
2179 x1key.resize(nullpos1key);
2183 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2188 if(is_row_selected){
2192 H5Tclose(fieldtype1val);
2193 H5Tclose(fieldtype1key);
2194 H5Tclose(item_type0);
2195 H5Tclose(fieldtype0);
2201 std::map<std::string, int> x0;
2204 if(is_row_selected){
2212 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2213 unsigned int total_size0=H5Tget_size(fieldtype0);
2215 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2216 hid_t item_type0=H5Tget_super(fieldtype0);
2218 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2219 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2220 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2221 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2222 std::map<std::string, float> x0;
2223 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2225 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2226 nullpos1key=x1key.find(
'\0');
2227 if(nullpos1key!=std::string::npos){
2228 x1key.resize(nullpos1key);
2232 x1val=*
reinterpret_cast<float*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2237 if(is_row_selected){
2241 H5Tclose(fieldtype1val);
2242 H5Tclose(fieldtype1key);
2243 H5Tclose(item_type0);
2244 H5Tclose(fieldtype0);
2250 std::map<std::string, float> x0;
2253 if(is_row_selected){
2261 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2262 unsigned int total_size0=H5Tget_size(fieldtype0);
2264 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2265 hid_t item_type0=H5Tget_super(fieldtype0);
2267 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2268 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2269 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2270 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2271 std::map<std::string, double> x0;
2272 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2274 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2275 nullpos1key=x1key.find(
'\0');
2276 if(nullpos1key!=std::string::npos){
2277 x1key.resize(nullpos1key);
2281 x1val=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2286 if(is_row_selected){
2290 H5Tclose(fieldtype1val);
2291 H5Tclose(fieldtype1key);
2292 H5Tclose(item_type0);
2293 H5Tclose(fieldtype0);
2299 std::map<std::string, double> x0;
2302 if(is_row_selected){
2310 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2311 unsigned int total_size0=H5Tget_size(fieldtype0);
2313 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2314 hid_t item_type0=H5Tget_super(fieldtype0);
2316 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2317 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2319 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2320 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2321 std::map<std::string, std::string> x0;
2322 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2324 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2325 nullpos1key=x1key.find(
'\0');
2326 if(nullpos1key!=std::string::npos){
2327 x1key.resize(nullpos1key);
2331 x1val=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
2332 nullpos1val=x1val.find(
'\0');
2333 if(nullpos1val!=std::string::npos){
2334 x1val.resize(nullpos1val);
2341 if(is_row_selected){
2345 H5Tclose(fieldtype1val);
2346 H5Tclose(fieldtype1key);
2347 H5Tclose(item_type0);
2348 H5Tclose(fieldtype0);
2354 std::map<std::string, std::string> x0;
2357 if(is_row_selected){
2365 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2366 unsigned int total_size0=H5Tget_size(fieldtype0);
2368 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2369 hid_t item_type0=H5Tget_super(fieldtype0);
2371 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2372 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2373 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2374 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2375 std::map<std::string, std::string> x0;
2376 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2378 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2379 nullpos1key=x1key.find(
'\0');
2380 if(nullpos1key!=std::string::npos){
2381 x1key.resize(nullpos1key);
2390 if(is_row_selected){
2394 H5Tclose(fieldtype1val);
2395 H5Tclose(fieldtype1key);
2396 H5Tclose(item_type0);
2397 H5Tclose(fieldtype0);
2403 std::map<std::string, std::string> x0;
2406 if(is_row_selected){
2414 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2415 unsigned int total_size0=H5Tget_size(fieldtype0);
2417 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2418 hid_t item_type0=H5Tget_super(fieldtype0);
2420 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2421 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2422 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2423 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2424 std::map<std::string, cyclus::Blob> x0;
2425 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2427 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2428 nullpos1key=x1key.find(
'\0');
2429 if(nullpos1key!=std::string::npos){
2430 x1key.resize(nullpos1key);
2434 x1val=VLRead<cyclus::Blob,BLOB>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2439 if(is_row_selected){
2443 H5Tclose(fieldtype1val);
2444 H5Tclose(fieldtype1key);
2445 H5Tclose(item_type0);
2446 H5Tclose(fieldtype0);
2452 std::map<std::string, cyclus::Blob> x0;
2455 if(is_row_selected){
2463 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2464 unsigned int total_size0=H5Tget_size(fieldtype0);
2466 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2467 hid_t item_type0=H5Tget_super(fieldtype0);
2469 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2470 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2471 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2472 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2473 std::map<std::string, boost::uuids::uuid> x0;
2474 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2476 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2477 nullpos1key=x1key.find(
'\0');
2478 if(nullpos1key!=std::string::npos){
2479 x1key.resize(nullpos1key);
2482 boost::uuids::uuid x1val;
2483 memcpy(&x1val, buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
2488 if(is_row_selected){
2492 H5Tclose(fieldtype1val);
2493 H5Tclose(fieldtype1key);
2494 H5Tclose(item_type0);
2495 H5Tclose(fieldtype0);
2501 std::map<std::string, boost::uuids::uuid> x0;
2504 if(is_row_selected){
2512 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2513 unsigned int total_size0=H5Tget_size(fieldtype0);
2515 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2516 hid_t item_type0=H5Tget_super(fieldtype0);
2517 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2518 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2519 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2520 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2521 std::map<std::string, bool> x0;
2522 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2526 x1val=*
reinterpret_cast<bool*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2531 if(is_row_selected){
2535 H5Tclose(fieldtype1val);
2536 H5Tclose(fieldtype1key);
2537 H5Tclose(item_type0);
2538 H5Tclose(fieldtype0);
2544 std::map<std::string, bool> x0;
2547 if(is_row_selected){
2555 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2556 unsigned int total_size0=H5Tget_size(fieldtype0);
2558 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2559 hid_t item_type0=H5Tget_super(fieldtype0);
2560 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2561 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2562 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2563 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2564 std::map<std::string, int> x0;
2565 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2569 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2574 if(is_row_selected){
2578 H5Tclose(fieldtype1val);
2579 H5Tclose(fieldtype1key);
2580 H5Tclose(item_type0);
2581 H5Tclose(fieldtype0);
2587 std::map<std::string, int> x0;
2590 if(is_row_selected){
2598 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2599 unsigned int total_size0=H5Tget_size(fieldtype0);
2601 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2602 hid_t item_type0=H5Tget_super(fieldtype0);
2603 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2604 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2605 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2606 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2607 std::map<std::string, float> x0;
2608 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2612 x1val=*
reinterpret_cast<float*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2617 if(is_row_selected){
2621 H5Tclose(fieldtype1val);
2622 H5Tclose(fieldtype1key);
2623 H5Tclose(item_type0);
2624 H5Tclose(fieldtype0);
2630 std::map<std::string, float> x0;
2633 if(is_row_selected){
2641 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2642 unsigned int total_size0=H5Tget_size(fieldtype0);
2644 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2645 hid_t item_type0=H5Tget_super(fieldtype0);
2646 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2647 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2648 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2649 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2650 std::map<std::string, double> x0;
2651 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2655 x1val=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2660 if(is_row_selected){
2664 H5Tclose(fieldtype1val);
2665 H5Tclose(fieldtype1key);
2666 H5Tclose(item_type0);
2667 H5Tclose(fieldtype0);
2673 std::map<std::string, double> x0;
2676 if(is_row_selected){
2684 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2685 unsigned int total_size0=H5Tget_size(fieldtype0);
2687 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2688 hid_t item_type0=H5Tget_super(fieldtype0);
2689 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2690 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2692 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2693 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2694 std::map<std::string, std::string> x0;
2695 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2699 x1val=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
2700 nullpos1val=x1val.find(
'\0');
2701 if(nullpos1val!=std::string::npos){
2702 x1val.resize(nullpos1val);
2709 if(is_row_selected){
2713 H5Tclose(fieldtype1val);
2714 H5Tclose(fieldtype1key);
2715 H5Tclose(item_type0);
2716 H5Tclose(fieldtype0);
2722 std::map<std::string, std::string> x0;
2725 if(is_row_selected){
2733 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2734 unsigned int total_size0=H5Tget_size(fieldtype0);
2736 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2737 hid_t item_type0=H5Tget_super(fieldtype0);
2738 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2739 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2740 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2741 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2742 std::map<std::string, std::string> x0;
2743 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2752 if(is_row_selected){
2756 H5Tclose(fieldtype1val);
2757 H5Tclose(fieldtype1key);
2758 H5Tclose(item_type0);
2759 H5Tclose(fieldtype0);
2765 std::map<std::string, std::string> x0;
2768 if(is_row_selected){
2776 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2777 unsigned int total_size0=H5Tget_size(fieldtype0);
2779 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2780 hid_t item_type0=H5Tget_super(fieldtype0);
2781 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2782 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2783 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2784 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2785 std::map<std::string, cyclus::Blob> x0;
2786 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2790 x1val=VLRead<cyclus::Blob,BLOB>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2795 if(is_row_selected){
2799 H5Tclose(fieldtype1val);
2800 H5Tclose(fieldtype1key);
2801 H5Tclose(item_type0);
2802 H5Tclose(fieldtype0);
2808 std::map<std::string, cyclus::Blob> x0;
2811 if(is_row_selected){
2819 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2820 unsigned int total_size0=H5Tget_size(fieldtype0);
2822 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2823 hid_t item_type0=H5Tget_super(fieldtype0);
2824 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2825 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2826 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2827 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2828 std::map<std::string, boost::uuids::uuid> x0;
2829 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2832 boost::uuids::uuid x1val;
2833 memcpy(&x1val, buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
2838 if(is_row_selected){
2842 H5Tclose(fieldtype1val);
2843 H5Tclose(fieldtype1key);
2844 H5Tclose(item_type0);
2845 H5Tclose(fieldtype0);
2851 std::map<std::string, boost::uuids::uuid> x0;
2854 if(is_row_selected){
2862 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2863 unsigned int total_size0=H5Tget_size(fieldtype0);
2865 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2866 hid_t item_type0=H5Tget_super(fieldtype0);
2867 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2868 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2869 hid_t fieldtype2keyfirst=H5Tget_member_type(fieldtype1key, 0);
2870 unsigned int total_size2keyfirst=H5Tget_size(fieldtype2keyfirst);
2871 size_t nullpos2keysecond;
2872 hid_t fieldtype2keysecond=H5Tget_member_type(fieldtype1key, 1);
2873 unsigned int total_size2keysecond=H5Tget_size(fieldtype2keysecond);
2874 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2875 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2876 std::map<std::pair<int, std::string>,
double> x0;
2877 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2878 std::pair<int, std::string> x1key;
2880 x2keyfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
2881 std::string x2keysecond;
2882 x2keysecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size2keyfirst, total_size2keysecond);
2883 nullpos2keysecond=x2keysecond.find(
'\0');
2884 if(nullpos2keysecond!=std::string::npos){
2885 x2keysecond.resize(nullpos2keysecond);
2888 x1key=std::make_pair(x2keyfirst, x2keysecond);
2890 x1val=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2895 if(is_row_selected){
2899 H5Tclose(fieldtype1val);
2900 H5Tclose(fieldtype2keysecond);
2901 H5Tclose(fieldtype2keyfirst);
2902 H5Tclose(fieldtype1key);
2903 H5Tclose(item_type0);
2904 H5Tclose(fieldtype0);
2910 std::map<std::pair<int, std::string>,
double> x0;
2913 if(is_row_selected){
2921 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2922 unsigned int total_size0=H5Tget_size(fieldtype0);
2924 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2925 hid_t item_type0=H5Tget_super(fieldtype0);
2926 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2927 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2928 hid_t fieldtype2keyfirst=H5Tget_member_type(fieldtype1key, 0);
2929 unsigned int total_size2keyfirst=H5Tget_size(fieldtype2keyfirst);
2930 hid_t fieldtype2keysecond=H5Tget_member_type(fieldtype1key, 1);
2931 unsigned int total_size2keysecond=H5Tget_size(fieldtype2keysecond);
2932 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2933 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2934 std::map<std::pair<int, std::string>,
double> x0;
2935 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2936 std::pair<int, std::string> x1key;
2938 x2keyfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
2939 std::string x2keysecond;
2941 x1key=std::make_pair(x2keyfirst, x2keysecond);
2943 x1val=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
2948 if(is_row_selected){
2952 H5Tclose(fieldtype1val);
2953 H5Tclose(fieldtype2keysecond);
2954 H5Tclose(fieldtype2keyfirst);
2955 H5Tclose(fieldtype1key);
2956 H5Tclose(item_type0);
2957 H5Tclose(fieldtype0);
2963 std::map<std::pair<int, std::string>,
double> x0;
2966 if(is_row_selected){
2974 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
2975 unsigned int total_size0=H5Tget_size(fieldtype0);
2977 H5Tget_array_dims2(fieldtype0, &fieldlen0);
2978 hid_t item_type0=H5Tget_super(fieldtype0);
2980 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
2981 unsigned int total_size1key=H5Tget_size(fieldtype1key);
2982 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
2983 unsigned int total_size1val=H5Tget_size(fieldtype1val);
2984 hsize_t fieldlen1val;
2985 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
2986 hid_t item_type1val=H5Tget_super(fieldtype1val);
2987 unsigned int total_size2valelem=H5Tget_size(item_type1val);
2988 std::map<std::string, std::vector<double>> x0;
2989 for(
unsigned int k0=0;k0<fieldlen0;++k0){
2991 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
2992 nullpos1key=x1key.find(
'\0');
2993 if(nullpos1key!=std::string::npos){
2994 x1key.resize(nullpos1key);
2997 std::vector<double> x1val;
2998 x1val=std::vector<double>(fieldlen1val);
2999 memcpy(&x1val[0], buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
3004 if(is_row_selected){
3008 H5Tclose(item_type1val);
3009 H5Tclose(fieldtype1val);
3010 H5Tclose(fieldtype1key);
3011 H5Tclose(item_type0);
3012 H5Tclose(fieldtype0);
3017 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3018 unsigned int total_size0=H5Tget_size(fieldtype0);
3020 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3021 hid_t item_type0=H5Tget_super(fieldtype0);
3023 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3024 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3026 std::map<std::string, std::vector<double>> x0;
3027 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3029 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3030 nullpos1key=x1key.find(
'\0');
3031 if(nullpos1key!=std::string::npos){
3032 x1key.resize(nullpos1key);
3035 std::vector<double> x1val;
3036 x1val=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3041 if(is_row_selected){
3045 H5Tclose(fieldtype1key);
3046 H5Tclose(item_type0);
3047 H5Tclose(fieldtype0);
3053 std::map<std::string, std::vector<double>> x0;
3056 if(is_row_selected){
3064 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3065 unsigned int total_size0=H5Tget_size(fieldtype0);
3067 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3068 hid_t item_type0=H5Tget_super(fieldtype0);
3069 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3070 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3071 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3072 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3073 hsize_t fieldlen1val;
3074 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3075 hid_t item_type1val=H5Tget_super(fieldtype1val);
3076 unsigned int total_size2valelem=H5Tget_size(item_type1val);
3077 std::map<std::string, std::vector<double>> x0;
3078 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3081 std::vector<double> x1val;
3082 x1val=std::vector<double>(fieldlen1val);
3083 memcpy(&x1val[0], buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size1val);
3088 if(is_row_selected){
3092 H5Tclose(item_type1val);
3093 H5Tclose(fieldtype1val);
3094 H5Tclose(fieldtype1key);
3095 H5Tclose(item_type0);
3096 H5Tclose(fieldtype0);
3101 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3102 unsigned int total_size0=H5Tget_size(fieldtype0);
3104 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3105 hid_t item_type0=H5Tget_super(fieldtype0);
3106 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3107 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3109 std::map<std::string, std::vector<double>> x0;
3110 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3113 std::vector<double> x1val;
3114 x1val=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3119 if(is_row_selected){
3123 H5Tclose(fieldtype1key);
3124 H5Tclose(item_type0);
3125 H5Tclose(fieldtype0);
3131 std::map<std::string, std::vector<double>> x0;
3134 if(is_row_selected){
3143 std::map<std::string, std::vector<double>> x0;
3146 if(is_row_selected){
3155 std::map<std::string, std::vector<double>> x0;
3158 if(is_row_selected){
3166 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3167 unsigned int total_size0=H5Tget_size(fieldtype0);
3169 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3170 hid_t item_type0=H5Tget_super(fieldtype0);
3172 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3173 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3174 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3175 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3176 hsize_t fieldlen1val;
3177 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3178 hid_t item_type1val=H5Tget_super(fieldtype1val);
3179 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
3180 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
3181 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
3182 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
3183 std::map<std::string, std::map<int, double>> x0;
3184 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3186 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3187 nullpos1key=x1key.find(
'\0');
3188 if(nullpos1key!=std::string::npos){
3189 x1key.resize(nullpos1key);
3192 std::map<int, double> x1val;
3193 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
3195 x2valkey=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
3197 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
3198 x1val[x2valkey]=x2valval;
3205 if(is_row_selected){
3209 H5Tclose(fieldtype2valval);
3210 H5Tclose(fieldtype2valkey);
3211 H5Tclose(item_type1val);
3212 H5Tclose(fieldtype1val);
3213 H5Tclose(fieldtype1key);
3214 H5Tclose(item_type0);
3215 H5Tclose(fieldtype0);
3220 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3221 unsigned int total_size0=H5Tget_size(fieldtype0);
3223 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3224 hid_t item_type0=H5Tget_super(fieldtype0);
3226 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3227 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3229 std::map<std::string, std::map<int, double>> x0;
3230 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3232 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3233 nullpos1key=x1key.find(
'\0');
3234 if(nullpos1key!=std::string::npos){
3235 x1key.resize(nullpos1key);
3238 std::map<int, double> x1val;
3239 x1val=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3244 if(is_row_selected){
3248 H5Tclose(fieldtype1key);
3249 H5Tclose(item_type0);
3250 H5Tclose(fieldtype0);
3256 std::map<std::string, std::map<int, double>> x0;
3259 if(is_row_selected){
3267 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3268 unsigned int total_size0=H5Tget_size(fieldtype0);
3270 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3271 hid_t item_type0=H5Tget_super(fieldtype0);
3272 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3273 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3274 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3275 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3276 hsize_t fieldlen1val;
3277 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3278 hid_t item_type1val=H5Tget_super(fieldtype1val);
3279 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
3280 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
3281 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
3282 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
3283 std::map<std::string, std::map<int, double>> x0;
3284 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3287 std::map<int, double> x1val;
3288 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
3290 x2valkey=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
3292 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
3293 x1val[x2valkey]=x2valval;
3300 if(is_row_selected){
3304 H5Tclose(fieldtype2valval);
3305 H5Tclose(fieldtype2valkey);
3306 H5Tclose(item_type1val);
3307 H5Tclose(fieldtype1val);
3308 H5Tclose(fieldtype1key);
3309 H5Tclose(item_type0);
3310 H5Tclose(fieldtype0);
3315 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3316 unsigned int total_size0=H5Tget_size(fieldtype0);
3318 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3319 hid_t item_type0=H5Tget_super(fieldtype0);
3320 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3321 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3323 std::map<std::string, std::map<int, double>> x0;
3324 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3327 std::map<int, double> x1val;
3328 x1val=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3333 if(is_row_selected){
3337 H5Tclose(fieldtype1key);
3338 H5Tclose(item_type0);
3339 H5Tclose(fieldtype0);
3345 std::map<std::string, std::map<int, double>> x0;
3348 if(is_row_selected){
3357 std::map<std::string, std::map<int, double>> x0;
3360 if(is_row_selected){
3369 std::map<std::string, std::map<int, double>> x0;
3372 if(is_row_selected){
3380 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3381 unsigned int total_size0=H5Tget_size(fieldtype0);
3383 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3384 hid_t item_type0=H5Tget_super(fieldtype0);
3386 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3387 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3388 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3389 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3390 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
3391 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
3392 hid_t fieldtype2valsecond=H5Tget_member_type(fieldtype1val, 1);
3393 unsigned int total_size2valsecond=H5Tget_size(fieldtype2valsecond);
3394 hsize_t fieldlen2valsecond;
3395 H5Tget_array_dims2(fieldtype2valsecond, &fieldlen2valsecond);
3396 hid_t item_type2valsecond=H5Tget_super(fieldtype2valsecond);
3397 hid_t fieldtype3valsecondkey=H5Tget_member_type(item_type2valsecond, 0);
3398 unsigned int total_size3valsecondkey=H5Tget_size(fieldtype3valsecondkey);
3399 hid_t fieldtype3valsecondval=H5Tget_member_type(item_type2valsecond, 1);
3400 unsigned int total_size3valsecondval=H5Tget_size(fieldtype3valsecondval);
3401 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3402 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3404 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3405 nullpos1key=x1key.find(
'\0');
3406 if(nullpos1key!=std::string::npos){
3407 x1key.resize(nullpos1key);
3410 std::pair<double, std::map<int, double>> x1val;
3412 x2valfirst=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3413 std::map<int, double> x2valsecond;
3414 for(
unsigned int k2valsecond=0;k2valsecond<fieldlen2valsecond;++k2valsecond){
3416 x3valsecondkey=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst+(total_size3valsecondkey+total_size3valsecondval)*k2valsecond);
3417 double x3valsecondval;
3418 x3valsecondval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst+(total_size3valsecondkey+total_size3valsecondval)*k2valsecond+total_size3valsecondkey);
3419 x2valsecond[x3valsecondkey]=x3valsecondval;
3422 x1val=std::make_pair(x2valfirst, x2valsecond);
3427 if(is_row_selected){
3431 H5Tclose(fieldtype3valsecondval);
3432 H5Tclose(fieldtype3valsecondkey);
3433 H5Tclose(item_type2valsecond);
3434 H5Tclose(fieldtype2valsecond);
3435 H5Tclose(fieldtype2valfirst);
3436 H5Tclose(fieldtype1val);
3437 H5Tclose(fieldtype1key);
3438 H5Tclose(item_type0);
3439 H5Tclose(fieldtype0);
3445 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3448 if(is_row_selected){
3456 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3457 unsigned int total_size0=H5Tget_size(fieldtype0);
3459 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3460 hid_t item_type0=H5Tget_super(fieldtype0);
3461 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3462 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3463 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3464 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3465 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
3466 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
3467 hid_t fieldtype2valsecond=H5Tget_member_type(fieldtype1val, 1);
3468 unsigned int total_size2valsecond=H5Tget_size(fieldtype2valsecond);
3469 hsize_t fieldlen2valsecond;
3470 H5Tget_array_dims2(fieldtype2valsecond, &fieldlen2valsecond);
3471 hid_t item_type2valsecond=H5Tget_super(fieldtype2valsecond);
3472 hid_t fieldtype3valsecondkey=H5Tget_member_type(item_type2valsecond, 0);
3473 unsigned int total_size3valsecondkey=H5Tget_size(fieldtype3valsecondkey);
3474 hid_t fieldtype3valsecondval=H5Tget_member_type(item_type2valsecond, 1);
3475 unsigned int total_size3valsecondval=H5Tget_size(fieldtype3valsecondval);
3476 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3477 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3480 std::pair<double, std::map<int, double>> x1val;
3482 x2valfirst=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3483 std::map<int, double> x2valsecond;
3484 for(
unsigned int k2valsecond=0;k2valsecond<fieldlen2valsecond;++k2valsecond){
3486 x3valsecondkey=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst+(total_size3valsecondkey+total_size3valsecondval)*k2valsecond);
3487 double x3valsecondval;
3488 x3valsecondval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst+(total_size3valsecondkey+total_size3valsecondval)*k2valsecond+total_size3valsecondkey);
3489 x2valsecond[x3valsecondkey]=x3valsecondval;
3492 x1val=std::make_pair(x2valfirst, x2valsecond);
3497 if(is_row_selected){
3501 H5Tclose(fieldtype3valsecondval);
3502 H5Tclose(fieldtype3valsecondkey);
3503 H5Tclose(item_type2valsecond);
3504 H5Tclose(fieldtype2valsecond);
3505 H5Tclose(fieldtype2valfirst);
3506 H5Tclose(fieldtype1val);
3507 H5Tclose(fieldtype1key);
3508 H5Tclose(item_type0);
3509 H5Tclose(fieldtype0);
3514 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3515 unsigned int total_size0=H5Tget_size(fieldtype0);
3517 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3518 hid_t item_type0=H5Tget_super(fieldtype0);
3520 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3521 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3522 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3523 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3524 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
3525 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
3527 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3528 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3530 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3531 nullpos1key=x1key.find(
'\0');
3532 if(nullpos1key!=std::string::npos){
3533 x1key.resize(nullpos1key);
3536 std::pair<double, std::map<int, double>> x1val;
3538 x2valfirst=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3539 std::map<int, double> x2valsecond;
3540 x2valsecond=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst);
3541 x1val=std::make_pair(x2valfirst, x2valsecond);
3546 if(is_row_selected){
3550 H5Tclose(fieldtype2valfirst);
3551 H5Tclose(fieldtype1val);
3552 H5Tclose(fieldtype1key);
3553 H5Tclose(item_type0);
3554 H5Tclose(fieldtype0);
3560 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3563 if(is_row_selected){
3572 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3575 if(is_row_selected){
3583 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3584 unsigned int total_size0=H5Tget_size(fieldtype0);
3586 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3587 hid_t item_type0=H5Tget_super(fieldtype0);
3588 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3589 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3590 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3591 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3592 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
3593 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
3595 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3596 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3599 std::pair<double, std::map<int, double>> x1val;
3601 x2valfirst=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3602 std::map<int, double> x2valsecond;
3603 x2valsecond=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst);
3604 x1val=std::make_pair(x2valfirst, x2valsecond);
3609 if(is_row_selected){
3613 H5Tclose(fieldtype2valfirst);
3614 H5Tclose(fieldtype1val);
3615 H5Tclose(fieldtype1key);
3616 H5Tclose(item_type0);
3617 H5Tclose(fieldtype0);
3623 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
3626 if(is_row_selected){
3634 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3635 unsigned int total_size0=H5Tget_size(fieldtype0);
3637 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3638 hid_t item_type0=H5Tget_super(fieldtype0);
3639 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3640 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3641 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3642 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3643 hsize_t fieldlen1val;
3644 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3645 hid_t item_type1val=H5Tget_super(fieldtype1val);
3646 size_t nullpos2valkey;
3647 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
3648 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
3649 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
3650 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
3651 std::map<int, std::map<std::string, double>> x0;
3652 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3654 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
3655 std::map<std::string, double> x1val;
3656 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
3657 std::string x2valkey;
3658 x2valkey=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val, total_size2valkey);
3659 nullpos2valkey=x2valkey.find(
'\0');
3660 if(nullpos2valkey!=std::string::npos){
3661 x2valkey.resize(nullpos2valkey);
3665 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
3666 x1val[x2valkey]=x2valval;
3673 if(is_row_selected){
3677 H5Tclose(fieldtype2valval);
3678 H5Tclose(fieldtype2valkey);
3679 H5Tclose(item_type1val);
3680 H5Tclose(fieldtype1val);
3681 H5Tclose(fieldtype1key);
3682 H5Tclose(item_type0);
3683 H5Tclose(fieldtype0);
3688 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3689 unsigned int total_size0=H5Tget_size(fieldtype0);
3691 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3692 hid_t item_type0=H5Tget_super(fieldtype0);
3693 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3694 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3695 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3696 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3697 hsize_t fieldlen1val;
3698 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3699 hid_t item_type1val=H5Tget_super(fieldtype1val);
3700 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
3701 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
3702 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
3703 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
3704 std::map<int, std::map<std::string, double>> x0;
3705 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3707 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
3708 std::map<std::string, double> x1val;
3709 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
3710 std::string x2valkey;
3711 x2valkey=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
3713 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
3714 x1val[x2valkey]=x2valval;
3721 if(is_row_selected){
3725 H5Tclose(fieldtype2valval);
3726 H5Tclose(fieldtype2valkey);
3727 H5Tclose(item_type1val);
3728 H5Tclose(fieldtype1val);
3729 H5Tclose(fieldtype1key);
3730 H5Tclose(item_type0);
3731 H5Tclose(fieldtype0);
3737 std::map<int, std::map<std::string, double>> x0;
3740 if(is_row_selected){
3749 std::map<int, std::map<std::string, double>> x0;
3752 if(is_row_selected){
3760 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3761 unsigned int total_size0=H5Tget_size(fieldtype0);
3763 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3764 hid_t item_type0=H5Tget_super(fieldtype0);
3765 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3766 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3768 std::map<int, std::map<std::string, double>> x0;
3769 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3771 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
3772 std::map<std::string, double> x1val;
3773 x1val=VLRead<std::map<std::string, double>,
VL_MAP_STRING_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3778 if(is_row_selected){
3782 H5Tclose(fieldtype1key);
3783 H5Tclose(item_type0);
3784 H5Tclose(fieldtype0);
3789 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3790 unsigned int total_size0=H5Tget_size(fieldtype0);
3792 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3793 hid_t item_type0=H5Tget_super(fieldtype0);
3794 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3795 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3797 std::map<int, std::map<std::string, double>> x0;
3798 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3800 x1key=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0);
3801 std::map<std::string, double> x1val;
3802 x1val=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
3807 if(is_row_selected){
3811 H5Tclose(fieldtype1key);
3812 H5Tclose(item_type0);
3813 H5Tclose(fieldtype0);
3819 std::map<int, std::map<std::string, double>> x0;
3822 if(is_row_selected){
3831 std::map<int, std::map<std::string, double>> x0;
3834 if(is_row_selected){
3842 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3843 unsigned int total_size0=H5Tget_size(fieldtype0);
3845 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3846 hid_t item_type0=H5Tget_super(fieldtype0);
3848 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3849 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3850 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3851 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3852 hsize_t fieldlen1val;
3853 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3854 hid_t item_type1val=H5Tget_super(fieldtype1val);
3855 unsigned int total_size2valelem=H5Tget_size(item_type1val);
3856 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
3857 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
3858 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
3859 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
3860 size_t nullpos4valelemsecondfirst;
3861 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
3862 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
3863 size_t nullpos4valelemsecondsecond;
3864 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
3865 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
3866 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
3867 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3869 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3870 nullpos1key=x1key.find(
'\0');
3871 if(nullpos1key!=std::string::npos){
3872 x1key.resize(nullpos1key);
3875 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
3876 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
3877 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
3878 std::pair<int, std::pair<std::string, std::string>> x2valelem;
3880 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
3881 std::pair<std::string, std::string> x3valelemsecond;
3882 std::string x4valelemsecondfirst;
3883 x4valelemsecondfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst, total_size4valelemsecondfirst);
3884 nullpos4valelemsecondfirst=x4valelemsecondfirst.find(
'\0');
3885 if(nullpos4valelemsecondfirst!=std::string::npos){
3886 x4valelemsecondfirst.resize(nullpos4valelemsecondfirst);
3889 std::string x4valelemsecondsecond;
3890 x4valelemsecondsecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst, total_size4valelemsecondsecond);
3891 nullpos4valelemsecondsecond=x4valelemsecondsecond.find(
'\0');
3892 if(nullpos4valelemsecondsecond!=std::string::npos){
3893 x4valelemsecondsecond.resize(nullpos4valelemsecondsecond);
3896 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
3897 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
3898 x1val[k1val]=x2valelem;
3905 if(is_row_selected){
3909 H5Tclose(fieldtype4valelemsecondsecond);
3910 H5Tclose(fieldtype4valelemsecondfirst);
3911 H5Tclose(fieldtype3valelemsecond);
3912 H5Tclose(fieldtype3valelemfirst);
3913 H5Tclose(item_type1val);
3914 H5Tclose(fieldtype1val);
3915 H5Tclose(fieldtype1key);
3916 H5Tclose(item_type0);
3917 H5Tclose(fieldtype0);
3922 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3923 unsigned int total_size0=H5Tget_size(fieldtype0);
3925 H5Tget_array_dims2(fieldtype0, &fieldlen0);
3926 hid_t item_type0=H5Tget_super(fieldtype0);
3928 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
3929 unsigned int total_size1key=H5Tget_size(fieldtype1key);
3930 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
3931 unsigned int total_size1val=H5Tget_size(fieldtype1val);
3932 hsize_t fieldlen1val;
3933 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
3934 hid_t item_type1val=H5Tget_super(fieldtype1val);
3935 unsigned int total_size2valelem=H5Tget_size(item_type1val);
3936 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
3937 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
3938 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
3939 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
3940 size_t nullpos4valelemsecondfirst;
3941 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
3942 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
3943 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
3944 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
3945 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
3946 for(
unsigned int k0=0;k0<fieldlen0;++k0){
3948 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
3949 nullpos1key=x1key.find(
'\0');
3950 if(nullpos1key!=std::string::npos){
3951 x1key.resize(nullpos1key);
3954 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
3955 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
3956 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
3957 std::pair<int, std::pair<std::string, std::string>> x2valelem;
3959 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
3960 std::pair<std::string, std::string> x3valelemsecond;
3961 std::string x4valelemsecondfirst;
3962 x4valelemsecondfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst, total_size4valelemsecondfirst);
3963 nullpos4valelemsecondfirst=x4valelemsecondfirst.find(
'\0');
3964 if(nullpos4valelemsecondfirst!=std::string::npos){
3965 x4valelemsecondfirst.resize(nullpos4valelemsecondfirst);
3968 std::string x4valelemsecondsecond;
3969 x4valelemsecondsecond=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst);
3970 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
3971 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
3972 x1val[k1val]=x2valelem;
3979 if(is_row_selected){
3983 H5Tclose(fieldtype4valelemsecondsecond);
3984 H5Tclose(fieldtype4valelemsecondfirst);
3985 H5Tclose(fieldtype3valelemsecond);
3986 H5Tclose(fieldtype3valelemfirst);
3987 H5Tclose(item_type1val);
3988 H5Tclose(fieldtype1val);
3989 H5Tclose(fieldtype1key);
3990 H5Tclose(item_type0);
3991 H5Tclose(fieldtype0);
3996 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
3997 unsigned int total_size0=H5Tget_size(fieldtype0);
3999 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4000 hid_t item_type0=H5Tget_super(fieldtype0);
4002 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4003 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4004 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4005 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4006 hsize_t fieldlen1val;
4007 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
4008 hid_t item_type1val=H5Tget_super(fieldtype1val);
4009 unsigned int total_size2valelem=H5Tget_size(item_type1val);
4010 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
4011 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
4012 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
4013 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
4014 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
4015 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
4016 size_t nullpos4valelemsecondsecond;
4017 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
4018 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
4019 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4020 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4022 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4023 nullpos1key=x1key.find(
'\0');
4024 if(nullpos1key!=std::string::npos){
4025 x1key.resize(nullpos1key);
4028 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4029 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
4030 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
4031 std::pair<int, std::pair<std::string, std::string>> x2valelem;
4033 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
4034 std::pair<std::string, std::string> x3valelemsecond;
4035 std::string x4valelemsecondfirst;
4036 x4valelemsecondfirst=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst);
4037 std::string x4valelemsecondsecond;
4038 x4valelemsecondsecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst, total_size4valelemsecondsecond);
4039 nullpos4valelemsecondsecond=x4valelemsecondsecond.find(
'\0');
4040 if(nullpos4valelemsecondsecond!=std::string::npos){
4041 x4valelemsecondsecond.resize(nullpos4valelemsecondsecond);
4044 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
4045 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
4046 x1val[k1val]=x2valelem;
4053 if(is_row_selected){
4057 H5Tclose(fieldtype4valelemsecondsecond);
4058 H5Tclose(fieldtype4valelemsecondfirst);
4059 H5Tclose(fieldtype3valelemsecond);
4060 H5Tclose(fieldtype3valelemfirst);
4061 H5Tclose(item_type1val);
4062 H5Tclose(fieldtype1val);
4063 H5Tclose(fieldtype1key);
4064 H5Tclose(item_type0);
4065 H5Tclose(fieldtype0);
4070 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4071 unsigned int total_size0=H5Tget_size(fieldtype0);
4073 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4074 hid_t item_type0=H5Tget_super(fieldtype0);
4076 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4077 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4078 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4079 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4080 hsize_t fieldlen1val;
4081 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
4082 hid_t item_type1val=H5Tget_super(fieldtype1val);
4083 unsigned int total_size2valelem=H5Tget_size(item_type1val);
4084 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
4085 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
4086 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
4087 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
4088 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
4089 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
4090 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
4091 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
4092 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4093 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4095 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4096 nullpos1key=x1key.find(
'\0');
4097 if(nullpos1key!=std::string::npos){
4098 x1key.resize(nullpos1key);
4101 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4102 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
4103 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
4104 std::pair<int, std::pair<std::string, std::string>> x2valelem;
4106 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
4107 std::pair<std::string, std::string> x3valelemsecond;
4108 std::string x4valelemsecondfirst;
4109 x4valelemsecondfirst=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst);
4110 std::string x4valelemsecondsecond;
4111 x4valelemsecondsecond=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst);
4112 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
4113 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
4114 x1val[k1val]=x2valelem;
4121 if(is_row_selected){
4125 H5Tclose(fieldtype4valelemsecondsecond);
4126 H5Tclose(fieldtype4valelemsecondfirst);
4127 H5Tclose(fieldtype3valelemsecond);
4128 H5Tclose(fieldtype3valelemfirst);
4129 H5Tclose(item_type1val);
4130 H5Tclose(fieldtype1val);
4131 H5Tclose(fieldtype1key);
4132 H5Tclose(item_type0);
4133 H5Tclose(fieldtype0);
4138 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4139 unsigned int total_size0=H5Tget_size(fieldtype0);
4141 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4142 hid_t item_type0=H5Tget_super(fieldtype0);
4144 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4145 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4147 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4148 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4150 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4151 nullpos1key=x1key.find(
'\0');
4152 if(nullpos1key!=std::string::npos){
4153 x1key.resize(nullpos1key);
4156 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4162 if(is_row_selected){
4166 H5Tclose(fieldtype1key);
4167 H5Tclose(item_type0);
4168 H5Tclose(fieldtype0);
4173 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4174 unsigned int total_size0=H5Tget_size(fieldtype0);
4176 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4177 hid_t item_type0=H5Tget_super(fieldtype0);
4179 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4180 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4182 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4183 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4185 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4186 nullpos1key=x1key.find(
'\0');
4187 if(nullpos1key!=std::string::npos){
4188 x1key.resize(nullpos1key);
4191 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4197 if(is_row_selected){
4201 H5Tclose(fieldtype1key);
4202 H5Tclose(item_type0);
4203 H5Tclose(fieldtype0);
4208 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4209 unsigned int total_size0=H5Tget_size(fieldtype0);
4211 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4212 hid_t item_type0=H5Tget_super(fieldtype0);
4214 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4215 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4217 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4218 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4220 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4221 nullpos1key=x1key.find(
'\0');
4222 if(nullpos1key!=std::string::npos){
4223 x1key.resize(nullpos1key);
4226 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4232 if(is_row_selected){
4236 H5Tclose(fieldtype1key);
4237 H5Tclose(item_type0);
4238 H5Tclose(fieldtype0);
4243 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4244 unsigned int total_size0=H5Tget_size(fieldtype0);
4246 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4247 hid_t item_type0=H5Tget_super(fieldtype0);
4249 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4250 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4252 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4253 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4255 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4256 nullpos1key=x1key.find(
'\0');
4257 if(nullpos1key!=std::string::npos){
4258 x1key.resize(nullpos1key);
4261 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4267 if(is_row_selected){
4271 H5Tclose(fieldtype1key);
4272 H5Tclose(item_type0);
4273 H5Tclose(fieldtype0);
4278 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4279 unsigned int total_size0=H5Tget_size(fieldtype0);
4281 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4282 hid_t item_type0=H5Tget_super(fieldtype0);
4283 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4284 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4285 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4286 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4287 hsize_t fieldlen1val;
4288 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
4289 hid_t item_type1val=H5Tget_super(fieldtype1val);
4290 unsigned int total_size2valelem=H5Tget_size(item_type1val);
4291 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
4292 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
4293 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
4294 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
4295 size_t nullpos4valelemsecondfirst;
4296 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
4297 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
4298 size_t nullpos4valelemsecondsecond;
4299 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
4300 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
4301 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4302 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4305 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4306 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
4307 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
4308 std::pair<int, std::pair<std::string, std::string>> x2valelem;
4310 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
4311 std::pair<std::string, std::string> x3valelemsecond;
4312 std::string x4valelemsecondfirst;
4313 x4valelemsecondfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst, total_size4valelemsecondfirst);
4314 nullpos4valelemsecondfirst=x4valelemsecondfirst.find(
'\0');
4315 if(nullpos4valelemsecondfirst!=std::string::npos){
4316 x4valelemsecondfirst.resize(nullpos4valelemsecondfirst);
4319 std::string x4valelemsecondsecond;
4320 x4valelemsecondsecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst, total_size4valelemsecondsecond);
4321 nullpos4valelemsecondsecond=x4valelemsecondsecond.find(
'\0');
4322 if(nullpos4valelemsecondsecond!=std::string::npos){
4323 x4valelemsecondsecond.resize(nullpos4valelemsecondsecond);
4326 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
4327 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
4328 x1val[k1val]=x2valelem;
4335 if(is_row_selected){
4339 H5Tclose(fieldtype4valelemsecondsecond);
4340 H5Tclose(fieldtype4valelemsecondfirst);
4341 H5Tclose(fieldtype3valelemsecond);
4342 H5Tclose(fieldtype3valelemfirst);
4343 H5Tclose(item_type1val);
4344 H5Tclose(fieldtype1val);
4345 H5Tclose(fieldtype1key);
4346 H5Tclose(item_type0);
4347 H5Tclose(fieldtype0);
4352 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4353 unsigned int total_size0=H5Tget_size(fieldtype0);
4355 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4356 hid_t item_type0=H5Tget_super(fieldtype0);
4357 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4358 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4359 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4360 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4361 hsize_t fieldlen1val;
4362 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
4363 hid_t item_type1val=H5Tget_super(fieldtype1val);
4364 unsigned int total_size2valelem=H5Tget_size(item_type1val);
4365 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
4366 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
4367 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
4368 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
4369 size_t nullpos4valelemsecondfirst;
4370 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
4371 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
4372 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
4373 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
4374 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4375 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4378 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4379 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
4380 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
4381 std::pair<int, std::pair<std::string, std::string>> x2valelem;
4383 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
4384 std::pair<std::string, std::string> x3valelemsecond;
4385 std::string x4valelemsecondfirst;
4386 x4valelemsecondfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst, total_size4valelemsecondfirst);
4387 nullpos4valelemsecondfirst=x4valelemsecondfirst.find(
'\0');
4388 if(nullpos4valelemsecondfirst!=std::string::npos){
4389 x4valelemsecondfirst.resize(nullpos4valelemsecondfirst);
4392 std::string x4valelemsecondsecond;
4393 x4valelemsecondsecond=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst);
4394 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
4395 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
4396 x1val[k1val]=x2valelem;
4403 if(is_row_selected){
4407 H5Tclose(fieldtype4valelemsecondsecond);
4408 H5Tclose(fieldtype4valelemsecondfirst);
4409 H5Tclose(fieldtype3valelemsecond);
4410 H5Tclose(fieldtype3valelemfirst);
4411 H5Tclose(item_type1val);
4412 H5Tclose(fieldtype1val);
4413 H5Tclose(fieldtype1key);
4414 H5Tclose(item_type0);
4415 H5Tclose(fieldtype0);
4420 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4421 unsigned int total_size0=H5Tget_size(fieldtype0);
4423 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4424 hid_t item_type0=H5Tget_super(fieldtype0);
4425 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4426 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4427 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4428 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4429 hsize_t fieldlen1val;
4430 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
4431 hid_t item_type1val=H5Tget_super(fieldtype1val);
4432 unsigned int total_size2valelem=H5Tget_size(item_type1val);
4433 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
4434 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
4435 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
4436 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
4437 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
4438 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
4439 size_t nullpos4valelemsecondsecond;
4440 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
4441 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
4442 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4443 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4446 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4447 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
4448 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
4449 std::pair<int, std::pair<std::string, std::string>> x2valelem;
4451 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
4452 std::pair<std::string, std::string> x3valelemsecond;
4453 std::string x4valelemsecondfirst;
4454 x4valelemsecondfirst=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst);
4455 std::string x4valelemsecondsecond;
4456 x4valelemsecondsecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst, total_size4valelemsecondsecond);
4457 nullpos4valelemsecondsecond=x4valelemsecondsecond.find(
'\0');
4458 if(nullpos4valelemsecondsecond!=std::string::npos){
4459 x4valelemsecondsecond.resize(nullpos4valelemsecondsecond);
4462 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
4463 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
4464 x1val[k1val]=x2valelem;
4471 if(is_row_selected){
4475 H5Tclose(fieldtype4valelemsecondsecond);
4476 H5Tclose(fieldtype4valelemsecondfirst);
4477 H5Tclose(fieldtype3valelemsecond);
4478 H5Tclose(fieldtype3valelemfirst);
4479 H5Tclose(item_type1val);
4480 H5Tclose(fieldtype1val);
4481 H5Tclose(fieldtype1key);
4482 H5Tclose(item_type0);
4483 H5Tclose(fieldtype0);
4488 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4489 unsigned int total_size0=H5Tget_size(fieldtype0);
4491 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4492 hid_t item_type0=H5Tget_super(fieldtype0);
4493 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4494 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4495 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4496 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4497 hsize_t fieldlen1val;
4498 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
4499 hid_t item_type1val=H5Tget_super(fieldtype1val);
4500 unsigned int total_size2valelem=H5Tget_size(item_type1val);
4501 hid_t fieldtype3valelemfirst=H5Tget_member_type(item_type1val, 0);
4502 unsigned int total_size3valelemfirst=H5Tget_size(fieldtype3valelemfirst);
4503 hid_t fieldtype3valelemsecond=H5Tget_member_type(item_type1val, 1);
4504 unsigned int total_size3valelemsecond=H5Tget_size(fieldtype3valelemsecond);
4505 hid_t fieldtype4valelemsecondfirst=H5Tget_member_type(fieldtype3valelemsecond, 0);
4506 unsigned int total_size4valelemsecondfirst=H5Tget_size(fieldtype4valelemsecondfirst);
4507 hid_t fieldtype4valelemsecondsecond=H5Tget_member_type(fieldtype3valelemsecond, 1);
4508 unsigned int total_size4valelemsecondsecond=H5Tget_size(fieldtype4valelemsecondsecond);
4509 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4510 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4513 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4514 x1val=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen1val);
4515 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
4516 std::pair<int, std::pair<std::string, std::string>> x2valelem;
4518 x3valelemfirst=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val);
4519 std::pair<std::string, std::string> x3valelemsecond;
4520 std::string x4valelemsecondfirst;
4521 x4valelemsecondfirst=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst);
4522 std::string x4valelemsecondsecond;
4523 x4valelemsecondsecond=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valelem*k1val+total_size3valelemfirst+total_size4valelemsecondfirst);
4524 x3valelemsecond=std::make_pair(x4valelemsecondfirst, x4valelemsecondsecond);
4525 x2valelem=std::make_pair(x3valelemfirst, x3valelemsecond);
4526 x1val[k1val]=x2valelem;
4533 if(is_row_selected){
4537 H5Tclose(fieldtype4valelemsecondsecond);
4538 H5Tclose(fieldtype4valelemsecondfirst);
4539 H5Tclose(fieldtype3valelemsecond);
4540 H5Tclose(fieldtype3valelemfirst);
4541 H5Tclose(item_type1val);
4542 H5Tclose(fieldtype1val);
4543 H5Tclose(fieldtype1key);
4544 H5Tclose(item_type0);
4545 H5Tclose(fieldtype0);
4550 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4551 unsigned int total_size0=H5Tget_size(fieldtype0);
4553 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4554 hid_t item_type0=H5Tget_super(fieldtype0);
4555 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4556 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4558 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4559 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4562 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4568 if(is_row_selected){
4572 H5Tclose(fieldtype1key);
4573 H5Tclose(item_type0);
4574 H5Tclose(fieldtype0);
4579 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4580 unsigned int total_size0=H5Tget_size(fieldtype0);
4582 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4583 hid_t item_type0=H5Tget_super(fieldtype0);
4584 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4585 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4587 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4588 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4591 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4597 if(is_row_selected){
4601 H5Tclose(fieldtype1key);
4602 H5Tclose(item_type0);
4603 H5Tclose(fieldtype0);
4608 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4609 unsigned int total_size0=H5Tget_size(fieldtype0);
4611 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4612 hid_t item_type0=H5Tget_super(fieldtype0);
4613 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4614 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4616 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4617 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4620 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4626 if(is_row_selected){
4630 H5Tclose(fieldtype1key);
4631 H5Tclose(item_type0);
4632 H5Tclose(fieldtype0);
4637 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4638 unsigned int total_size0=H5Tget_size(fieldtype0);
4640 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4641 hid_t item_type0=H5Tget_super(fieldtype0);
4642 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4643 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4645 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4646 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4649 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val;
4655 if(is_row_selected){
4659 H5Tclose(fieldtype1key);
4660 H5Tclose(item_type0);
4661 H5Tclose(fieldtype0);
4667 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4670 if(is_row_selected){
4679 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4682 if(is_row_selected){
4691 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4694 if(is_row_selected){
4703 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4706 if(is_row_selected){
4715 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4718 if(is_row_selected){
4727 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4730 if(is_row_selected){
4739 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4742 if(is_row_selected){
4751 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4754 if(is_row_selected){
4763 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4766 if(is_row_selected){
4775 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4778 if(is_row_selected){
4787 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4790 if(is_row_selected){
4799 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4802 if(is_row_selected){
4811 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4814 if(is_row_selected){
4823 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4826 if(is_row_selected){
4835 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4838 if(is_row_selected){
4847 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
4850 if(is_row_selected){
4858 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4859 unsigned int total_size0=H5Tget_size(fieldtype0);
4861 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4862 hid_t item_type0=H5Tget_super(fieldtype0);
4863 unsigned int total_size1elem=H5Tget_size(item_type0);
4864 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
4865 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
4866 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
4867 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
4868 std::list<std::pair<int, int>> x0;
4869 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4870 std::pair<int, int> x1elem;
4872 x2elemfirst=*
reinterpret_cast<int*
>(buf+offset+total_size1elem*k0);
4874 x2elemsecond=*
reinterpret_cast<int*
>(buf+offset+total_size1elem*k0+total_size2elemfirst);
4875 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
4876 x0.push_back(x1elem);
4880 if(is_row_selected){
4884 H5Tclose(fieldtype2elemsecond);
4885 H5Tclose(fieldtype2elemfirst);
4886 H5Tclose(item_type0);
4887 H5Tclose(fieldtype0);
4893 std::list<std::pair<int, int>> x0;
4896 if(is_row_selected){
4904 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4905 unsigned int total_size0=H5Tget_size(fieldtype0);
4907 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4908 hid_t item_type0=H5Tget_super(fieldtype0);
4910 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4911 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4912 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4913 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4914 size_t nullpos2valfirst;
4915 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
4916 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
4917 hid_t fieldtype2valsecond=H5Tget_member_type(fieldtype1val, 1);
4918 unsigned int total_size2valsecond=H5Tget_size(fieldtype2valsecond);
4919 hsize_t fieldlen2valsecond;
4920 H5Tget_array_dims2(fieldtype2valsecond, &fieldlen2valsecond);
4921 hid_t item_type2valsecond=H5Tget_super(fieldtype2valsecond);
4922 unsigned int total_size3valsecondelem=H5Tget_size(item_type2valsecond);
4923 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
4924 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4926 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4927 nullpos1key=x1key.find(
'\0');
4928 if(nullpos1key!=std::string::npos){
4929 x1key.resize(nullpos1key);
4932 std::pair<std::string, std::vector<double>> x1val;
4933 std::string x2valfirst;
4934 x2valfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size2valfirst);
4935 nullpos2valfirst=x2valfirst.find(
'\0');
4936 if(nullpos2valfirst!=std::string::npos){
4937 x2valfirst.resize(nullpos2valfirst);
4940 std::vector<double> x2valsecond;
4941 x2valsecond=std::vector<double>(fieldlen2valsecond);
4942 memcpy(&x2valsecond[0], buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst, total_size2valsecond);
4943 x1val=std::make_pair(x2valfirst, x2valsecond);
4948 if(is_row_selected){
4952 H5Tclose(item_type2valsecond);
4953 H5Tclose(fieldtype2valsecond);
4954 H5Tclose(fieldtype2valfirst);
4955 H5Tclose(fieldtype1val);
4956 H5Tclose(fieldtype1key);
4957 H5Tclose(item_type0);
4958 H5Tclose(fieldtype0);
4963 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
4964 unsigned int total_size0=H5Tget_size(fieldtype0);
4966 H5Tget_array_dims2(fieldtype0, &fieldlen0);
4967 hid_t item_type0=H5Tget_super(fieldtype0);
4969 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
4970 unsigned int total_size1key=H5Tget_size(fieldtype1key);
4971 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
4972 unsigned int total_size1val=H5Tget_size(fieldtype1val);
4973 size_t nullpos2valfirst;
4974 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
4975 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
4977 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
4978 for(
unsigned int k0=0;k0<fieldlen0;++k0){
4980 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
4981 nullpos1key=x1key.find(
'\0');
4982 if(nullpos1key!=std::string::npos){
4983 x1key.resize(nullpos1key);
4986 std::pair<std::string, std::vector<double>> x1val;
4987 std::string x2valfirst;
4988 x2valfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size2valfirst);
4989 nullpos2valfirst=x2valfirst.find(
'\0');
4990 if(nullpos2valfirst!=std::string::npos){
4991 x2valfirst.resize(nullpos2valfirst);
4994 std::vector<double> x2valsecond;
4995 x2valsecond=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst);
4996 x1val=std::make_pair(x2valfirst, x2valsecond);
5001 if(is_row_selected){
5005 H5Tclose(fieldtype2valfirst);
5006 H5Tclose(fieldtype1val);
5007 H5Tclose(fieldtype1key);
5008 H5Tclose(item_type0);
5009 H5Tclose(fieldtype0);
5014 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5015 unsigned int total_size0=H5Tget_size(fieldtype0);
5017 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5018 hid_t item_type0=H5Tget_super(fieldtype0);
5020 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5021 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5022 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5023 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5024 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
5025 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
5026 hid_t fieldtype2valsecond=H5Tget_member_type(fieldtype1val, 1);
5027 unsigned int total_size2valsecond=H5Tget_size(fieldtype2valsecond);
5028 hsize_t fieldlen2valsecond;
5029 H5Tget_array_dims2(fieldtype2valsecond, &fieldlen2valsecond);
5030 hid_t item_type2valsecond=H5Tget_super(fieldtype2valsecond);
5031 unsigned int total_size3valsecondelem=H5Tget_size(item_type2valsecond);
5032 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5033 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5035 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
5036 nullpos1key=x1key.find(
'\0');
5037 if(nullpos1key!=std::string::npos){
5038 x1key.resize(nullpos1key);
5041 std::pair<std::string, std::vector<double>> x1val;
5042 std::string x2valfirst;
5044 std::vector<double> x2valsecond;
5045 x2valsecond=std::vector<double>(fieldlen2valsecond);
5046 memcpy(&x2valsecond[0], buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst, total_size2valsecond);
5047 x1val=std::make_pair(x2valfirst, x2valsecond);
5052 if(is_row_selected){
5056 H5Tclose(item_type2valsecond);
5057 H5Tclose(fieldtype2valsecond);
5058 H5Tclose(fieldtype2valfirst);
5059 H5Tclose(fieldtype1val);
5060 H5Tclose(fieldtype1key);
5061 H5Tclose(item_type0);
5062 H5Tclose(fieldtype0);
5067 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5068 unsigned int total_size0=H5Tget_size(fieldtype0);
5070 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5071 hid_t item_type0=H5Tget_super(fieldtype0);
5073 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5074 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5075 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5076 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5077 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
5078 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
5080 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5081 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5083 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
5084 nullpos1key=x1key.find(
'\0');
5085 if(nullpos1key!=std::string::npos){
5086 x1key.resize(nullpos1key);
5089 std::pair<std::string, std::vector<double>> x1val;
5090 std::string x2valfirst;
5092 std::vector<double> x2valsecond;
5093 x2valsecond=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst);
5094 x1val=std::make_pair(x2valfirst, x2valsecond);
5099 if(is_row_selected){
5103 H5Tclose(fieldtype2valfirst);
5104 H5Tclose(fieldtype1val);
5105 H5Tclose(fieldtype1key);
5106 H5Tclose(item_type0);
5107 H5Tclose(fieldtype0);
5112 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5113 unsigned int total_size0=H5Tget_size(fieldtype0);
5115 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5116 hid_t item_type0=H5Tget_super(fieldtype0);
5117 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5118 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5119 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5120 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5121 size_t nullpos2valfirst;
5122 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
5123 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
5124 hid_t fieldtype2valsecond=H5Tget_member_type(fieldtype1val, 1);
5125 unsigned int total_size2valsecond=H5Tget_size(fieldtype2valsecond);
5126 hsize_t fieldlen2valsecond;
5127 H5Tget_array_dims2(fieldtype2valsecond, &fieldlen2valsecond);
5128 hid_t item_type2valsecond=H5Tget_super(fieldtype2valsecond);
5129 unsigned int total_size3valsecondelem=H5Tget_size(item_type2valsecond);
5130 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5131 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5134 std::pair<std::string, std::vector<double>> x1val;
5135 std::string x2valfirst;
5136 x2valfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size2valfirst);
5137 nullpos2valfirst=x2valfirst.find(
'\0');
5138 if(nullpos2valfirst!=std::string::npos){
5139 x2valfirst.resize(nullpos2valfirst);
5142 std::vector<double> x2valsecond;
5143 x2valsecond=std::vector<double>(fieldlen2valsecond);
5144 memcpy(&x2valsecond[0], buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst, total_size2valsecond);
5145 x1val=std::make_pair(x2valfirst, x2valsecond);
5150 if(is_row_selected){
5154 H5Tclose(item_type2valsecond);
5155 H5Tclose(fieldtype2valsecond);
5156 H5Tclose(fieldtype2valfirst);
5157 H5Tclose(fieldtype1val);
5158 H5Tclose(fieldtype1key);
5159 H5Tclose(item_type0);
5160 H5Tclose(fieldtype0);
5165 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5166 unsigned int total_size0=H5Tget_size(fieldtype0);
5168 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5169 hid_t item_type0=H5Tget_super(fieldtype0);
5170 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5171 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5172 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5173 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5174 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
5175 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
5176 hid_t fieldtype2valsecond=H5Tget_member_type(fieldtype1val, 1);
5177 unsigned int total_size2valsecond=H5Tget_size(fieldtype2valsecond);
5178 hsize_t fieldlen2valsecond;
5179 H5Tget_array_dims2(fieldtype2valsecond, &fieldlen2valsecond);
5180 hid_t item_type2valsecond=H5Tget_super(fieldtype2valsecond);
5181 unsigned int total_size3valsecondelem=H5Tget_size(item_type2valsecond);
5182 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5183 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5186 std::pair<std::string, std::vector<double>> x1val;
5187 std::string x2valfirst;
5189 std::vector<double> x2valsecond;
5190 x2valsecond=std::vector<double>(fieldlen2valsecond);
5191 memcpy(&x2valsecond[0], buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst, total_size2valsecond);
5192 x1val=std::make_pair(x2valfirst, x2valsecond);
5197 if(is_row_selected){
5201 H5Tclose(item_type2valsecond);
5202 H5Tclose(fieldtype2valsecond);
5203 H5Tclose(fieldtype2valfirst);
5204 H5Tclose(fieldtype1val);
5205 H5Tclose(fieldtype1key);
5206 H5Tclose(item_type0);
5207 H5Tclose(fieldtype0);
5212 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5213 unsigned int total_size0=H5Tget_size(fieldtype0);
5215 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5216 hid_t item_type0=H5Tget_super(fieldtype0);
5217 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5218 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5219 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5220 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5221 size_t nullpos2valfirst;
5222 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
5223 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
5225 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5226 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5229 std::pair<std::string, std::vector<double>> x1val;
5230 std::string x2valfirst;
5231 x2valfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key, total_size2valfirst);
5232 nullpos2valfirst=x2valfirst.find(
'\0');
5233 if(nullpos2valfirst!=std::string::npos){
5234 x2valfirst.resize(nullpos2valfirst);
5237 std::vector<double> x2valsecond;
5238 x2valsecond=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst);
5239 x1val=std::make_pair(x2valfirst, x2valsecond);
5244 if(is_row_selected){
5248 H5Tclose(fieldtype2valfirst);
5249 H5Tclose(fieldtype1val);
5250 H5Tclose(fieldtype1key);
5251 H5Tclose(item_type0);
5252 H5Tclose(fieldtype0);
5257 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5258 unsigned int total_size0=H5Tget_size(fieldtype0);
5260 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5261 hid_t item_type0=H5Tget_super(fieldtype0);
5262 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5263 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5264 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5265 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5266 hid_t fieldtype2valfirst=H5Tget_member_type(fieldtype1val, 0);
5267 unsigned int total_size2valfirst=H5Tget_size(fieldtype2valfirst);
5269 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5270 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5273 std::pair<std::string, std::vector<double>> x1val;
5274 std::string x2valfirst;
5276 std::vector<double> x2valsecond;
5277 x2valsecond=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+total_size2valfirst);
5278 x1val=std::make_pair(x2valfirst, x2valsecond);
5283 if(is_row_selected){
5287 H5Tclose(fieldtype2valfirst);
5288 H5Tclose(fieldtype1val);
5289 H5Tclose(fieldtype1key);
5290 H5Tclose(item_type0);
5291 H5Tclose(fieldtype0);
5297 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5300 if(is_row_selected){
5309 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5312 if(is_row_selected){
5321 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5324 if(is_row_selected){
5333 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5336 if(is_row_selected){
5345 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5348 if(is_row_selected){
5357 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5360 if(is_row_selected){
5369 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5372 if(is_row_selected){
5381 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
5384 if(is_row_selected){
5392 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5393 unsigned int total_size0=H5Tget_size(fieldtype0);
5395 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5396 hid_t item_type0=H5Tget_super(fieldtype0);
5398 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5399 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5400 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5401 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5402 hsize_t fieldlen1val;
5403 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
5404 hid_t item_type1val=H5Tget_super(fieldtype1val);
5405 size_t nullpos2valkey;
5406 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
5407 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
5408 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
5409 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
5410 std::map<std::string, std::map<std::string, int>> x0;
5411 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5413 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
5414 nullpos1key=x1key.find(
'\0');
5415 if(nullpos1key!=std::string::npos){
5416 x1key.resize(nullpos1key);
5419 std::map<std::string, int> x1val;
5420 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
5421 std::string x2valkey;
5422 x2valkey=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val, total_size2valkey);
5423 nullpos2valkey=x2valkey.find(
'\0');
5424 if(nullpos2valkey!=std::string::npos){
5425 x2valkey.resize(nullpos2valkey);
5429 x2valval=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
5430 x1val[x2valkey]=x2valval;
5437 if(is_row_selected){
5441 H5Tclose(fieldtype2valval);
5442 H5Tclose(fieldtype2valkey);
5443 H5Tclose(item_type1val);
5444 H5Tclose(fieldtype1val);
5445 H5Tclose(fieldtype1key);
5446 H5Tclose(item_type0);
5447 H5Tclose(fieldtype0);
5452 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5453 unsigned int total_size0=H5Tget_size(fieldtype0);
5455 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5456 hid_t item_type0=H5Tget_super(fieldtype0);
5458 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5459 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5460 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5461 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5462 hsize_t fieldlen1val;
5463 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
5464 hid_t item_type1val=H5Tget_super(fieldtype1val);
5465 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
5466 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
5467 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
5468 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
5469 std::map<std::string, std::map<std::string, int>> x0;
5470 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5472 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
5473 nullpos1key=x1key.find(
'\0');
5474 if(nullpos1key!=std::string::npos){
5475 x1key.resize(nullpos1key);
5478 std::map<std::string, int> x1val;
5479 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
5480 std::string x2valkey;
5481 x2valkey=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
5483 x2valval=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
5484 x1val[x2valkey]=x2valval;
5491 if(is_row_selected){
5495 H5Tclose(fieldtype2valval);
5496 H5Tclose(fieldtype2valkey);
5497 H5Tclose(item_type1val);
5498 H5Tclose(fieldtype1val);
5499 H5Tclose(fieldtype1key);
5500 H5Tclose(item_type0);
5501 H5Tclose(fieldtype0);
5506 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5507 unsigned int total_size0=H5Tget_size(fieldtype0);
5509 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5510 hid_t item_type0=H5Tget_super(fieldtype0);
5512 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5513 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5515 std::map<std::string, std::map<std::string, int>> x0;
5516 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5518 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
5519 nullpos1key=x1key.find(
'\0');
5520 if(nullpos1key!=std::string::npos){
5521 x1key.resize(nullpos1key);
5524 std::map<std::string, int> x1val;
5525 x1val=VLRead<std::map<std::string, int>,
VL_MAP_STRING_INT>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
5530 if(is_row_selected){
5534 H5Tclose(fieldtype1key);
5535 H5Tclose(item_type0);
5536 H5Tclose(fieldtype0);
5541 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5542 unsigned int total_size0=H5Tget_size(fieldtype0);
5544 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5545 hid_t item_type0=H5Tget_super(fieldtype0);
5547 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5548 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5550 std::map<std::string, std::map<std::string, int>> x0;
5551 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5553 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
5554 nullpos1key=x1key.find(
'\0');
5555 if(nullpos1key!=std::string::npos){
5556 x1key.resize(nullpos1key);
5559 std::map<std::string, int> x1val;
5560 x1val=VLRead<std::map<std::string, int>,
VL_MAP_VL_STRING_INT>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
5565 if(is_row_selected){
5569 H5Tclose(fieldtype1key);
5570 H5Tclose(item_type0);
5571 H5Tclose(fieldtype0);
5576 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5577 unsigned int total_size0=H5Tget_size(fieldtype0);
5579 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5580 hid_t item_type0=H5Tget_super(fieldtype0);
5581 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5582 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5583 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5584 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5585 hsize_t fieldlen1val;
5586 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
5587 hid_t item_type1val=H5Tget_super(fieldtype1val);
5588 size_t nullpos2valkey;
5589 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
5590 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
5591 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
5592 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
5593 std::map<std::string, std::map<std::string, int>> x0;
5594 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5597 std::map<std::string, int> x1val;
5598 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
5599 std::string x2valkey;
5600 x2valkey=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val, total_size2valkey);
5601 nullpos2valkey=x2valkey.find(
'\0');
5602 if(nullpos2valkey!=std::string::npos){
5603 x2valkey.resize(nullpos2valkey);
5607 x2valval=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
5608 x1val[x2valkey]=x2valval;
5615 if(is_row_selected){
5619 H5Tclose(fieldtype2valval);
5620 H5Tclose(fieldtype2valkey);
5621 H5Tclose(item_type1val);
5622 H5Tclose(fieldtype1val);
5623 H5Tclose(fieldtype1key);
5624 H5Tclose(item_type0);
5625 H5Tclose(fieldtype0);
5630 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5631 unsigned int total_size0=H5Tget_size(fieldtype0);
5633 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5634 hid_t item_type0=H5Tget_super(fieldtype0);
5635 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5636 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5638 std::map<std::string, std::map<std::string, int>> x0;
5639 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5642 std::map<std::string, int> x1val;
5643 x1val=VLRead<std::map<std::string, int>,
VL_MAP_STRING_INT>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
5648 if(is_row_selected){
5652 H5Tclose(fieldtype1key);
5653 H5Tclose(item_type0);
5654 H5Tclose(fieldtype0);
5659 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5660 unsigned int total_size0=H5Tget_size(fieldtype0);
5662 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5663 hid_t item_type0=H5Tget_super(fieldtype0);
5664 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5665 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5666 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
5667 unsigned int total_size1val=H5Tget_size(fieldtype1val);
5668 hsize_t fieldlen1val;
5669 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
5670 hid_t item_type1val=H5Tget_super(fieldtype1val);
5671 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
5672 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
5673 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
5674 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
5675 std::map<std::string, std::map<std::string, int>> x0;
5676 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5679 std::map<std::string, int> x1val;
5680 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
5681 std::string x2valkey;
5682 x2valkey=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
5684 x2valval=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
5685 x1val[x2valkey]=x2valval;
5692 if(is_row_selected){
5696 H5Tclose(fieldtype2valval);
5697 H5Tclose(fieldtype2valkey);
5698 H5Tclose(item_type1val);
5699 H5Tclose(fieldtype1val);
5700 H5Tclose(fieldtype1key);
5701 H5Tclose(item_type0);
5702 H5Tclose(fieldtype0);
5707 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5708 unsigned int total_size0=H5Tget_size(fieldtype0);
5710 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5711 hid_t item_type0=H5Tget_super(fieldtype0);
5712 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
5713 unsigned int total_size1key=H5Tget_size(fieldtype1key);
5715 std::map<std::string, std::map<std::string, int>> x0;
5716 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5719 std::map<std::string, int> x1val;
5720 x1val=VLRead<std::map<std::string, int>,
VL_MAP_VL_STRING_INT>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
5725 if(is_row_selected){
5729 H5Tclose(fieldtype1key);
5730 H5Tclose(item_type0);
5731 H5Tclose(fieldtype0);
5737 std::map<std::string, std::map<std::string, int>> x0;
5740 if(is_row_selected){
5749 std::map<std::string, std::map<std::string, int>> x0;
5752 if(is_row_selected){
5761 std::map<std::string, std::map<std::string, int>> x0;
5764 if(is_row_selected){
5773 std::map<std::string, std::map<std::string, int>> x0;
5776 if(is_row_selected){
5785 std::map<std::string, std::map<std::string, int>> x0;
5788 if(is_row_selected){
5797 std::map<std::string, std::map<std::string, int>> x0;
5800 if(is_row_selected){
5809 std::map<std::string, std::map<std::string, int>> x0;
5812 if(is_row_selected){
5821 std::map<std::string, std::map<std::string, int>> x0;
5824 if(is_row_selected){
5832 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5833 unsigned int total_size0=H5Tget_size(fieldtype0);
5835 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5836 hid_t item_type0=H5Tget_super(fieldtype0);
5837 unsigned int total_size1elem=H5Tget_size(item_type0);
5838 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
5839 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
5840 hid_t fieldtype3elemfirstfirst=H5Tget_member_type(fieldtype2elemfirst, 0);
5841 unsigned int total_size3elemfirstfirst=H5Tget_size(fieldtype3elemfirstfirst);
5842 hid_t fieldtype3elemfirstsecond=H5Tget_member_type(fieldtype2elemfirst, 1);
5843 unsigned int total_size3elemfirstsecond=H5Tget_size(fieldtype3elemfirstsecond);
5844 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
5845 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
5846 hsize_t fieldlen2elemsecond;
5847 H5Tget_array_dims2(fieldtype2elemsecond, &fieldlen2elemsecond);
5848 hid_t item_type2elemsecond=H5Tget_super(fieldtype2elemsecond);
5849 size_t nullpos3elemsecondkey;
5850 hid_t fieldtype3elemsecondkey=H5Tget_member_type(item_type2elemsecond, 0);
5851 unsigned int total_size3elemsecondkey=H5Tget_size(fieldtype3elemsecondkey);
5852 hid_t fieldtype3elemsecondval=H5Tget_member_type(item_type2elemsecond, 1);
5853 unsigned int total_size3elemsecondval=H5Tget_size(fieldtype3elemsecondval);
5854 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
5855 x0=std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>(fieldlen0);
5856 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5857 std::pair<std::pair<double, double>, std::map<std::string, double>> x1elem;
5858 std::pair<double, double> x2elemfirst;
5859 double x3elemfirstfirst;
5860 x3elemfirstfirst=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0);
5861 double x3elemfirstsecond;
5862 x3elemfirstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0+total_size3elemfirstfirst);
5863 x2elemfirst=std::make_pair(x3elemfirstfirst, x3elemfirstsecond);
5864 std::map<std::string, double> x2elemsecond;
5865 for(
unsigned int k2elemsecond=0;k2elemsecond<fieldlen2elemsecond;++k2elemsecond){
5866 std::string x3elemsecondkey;
5867 x3elemsecondkey=std::string(buf+offset+total_size1elem*k0+total_size2elemfirst+(total_size3elemsecondkey+total_size3elemsecondval)*k2elemsecond, total_size3elemsecondkey);
5868 nullpos3elemsecondkey=x3elemsecondkey.find(
'\0');
5869 if(nullpos3elemsecondkey!=std::string::npos){
5870 x3elemsecondkey.resize(nullpos3elemsecondkey);
5873 double x3elemsecondval;
5874 x3elemsecondval=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0+total_size2elemfirst+(total_size3elemsecondkey+total_size3elemsecondval)*k2elemsecond+total_size3elemsecondkey);
5875 x2elemsecond[x3elemsecondkey]=x3elemsecondval;
5878 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
5883 if(is_row_selected){
5887 H5Tclose(fieldtype3elemsecondval);
5888 H5Tclose(fieldtype3elemsecondkey);
5889 H5Tclose(item_type2elemsecond);
5890 H5Tclose(fieldtype2elemsecond);
5891 H5Tclose(fieldtype3elemfirstsecond);
5892 H5Tclose(fieldtype3elemfirstfirst);
5893 H5Tclose(fieldtype2elemfirst);
5894 H5Tclose(item_type0);
5895 H5Tclose(fieldtype0);
5900 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5901 unsigned int total_size0=H5Tget_size(fieldtype0);
5903 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5904 hid_t item_type0=H5Tget_super(fieldtype0);
5905 unsigned int total_size1elem=H5Tget_size(item_type0);
5906 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
5907 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
5908 hid_t fieldtype3elemfirstfirst=H5Tget_member_type(fieldtype2elemfirst, 0);
5909 unsigned int total_size3elemfirstfirst=H5Tget_size(fieldtype3elemfirstfirst);
5910 hid_t fieldtype3elemfirstsecond=H5Tget_member_type(fieldtype2elemfirst, 1);
5911 unsigned int total_size3elemfirstsecond=H5Tget_size(fieldtype3elemfirstsecond);
5912 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
5913 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
5914 hsize_t fieldlen2elemsecond;
5915 H5Tget_array_dims2(fieldtype2elemsecond, &fieldlen2elemsecond);
5916 hid_t item_type2elemsecond=H5Tget_super(fieldtype2elemsecond);
5917 hid_t fieldtype3elemsecondkey=H5Tget_member_type(item_type2elemsecond, 0);
5918 unsigned int total_size3elemsecondkey=H5Tget_size(fieldtype3elemsecondkey);
5919 hid_t fieldtype3elemsecondval=H5Tget_member_type(item_type2elemsecond, 1);
5920 unsigned int total_size3elemsecondval=H5Tget_size(fieldtype3elemsecondval);
5921 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
5922 x0=std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>(fieldlen0);
5923 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5924 std::pair<std::pair<double, double>, std::map<std::string, double>> x1elem;
5925 std::pair<double, double> x2elemfirst;
5926 double x3elemfirstfirst;
5927 x3elemfirstfirst=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0);
5928 double x3elemfirstsecond;
5929 x3elemfirstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0+total_size3elemfirstfirst);
5930 x2elemfirst=std::make_pair(x3elemfirstfirst, x3elemfirstsecond);
5931 std::map<std::string, double> x2elemsecond;
5932 for(
unsigned int k2elemsecond=0;k2elemsecond<fieldlen2elemsecond;++k2elemsecond){
5933 std::string x3elemsecondkey;
5934 x3elemsecondkey=
VLRead<std::string,VL_STRING>(buf+offset+total_size1elem*k0+total_size2elemfirst+(total_size3elemsecondkey+total_size3elemsecondval)*k2elemsecond);
5935 double x3elemsecondval;
5936 x3elemsecondval=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0+total_size2elemfirst+(total_size3elemsecondkey+total_size3elemsecondval)*k2elemsecond+total_size3elemsecondkey);
5937 x2elemsecond[x3elemsecondkey]=x3elemsecondval;
5940 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
5945 if(is_row_selected){
5949 H5Tclose(fieldtype3elemsecondval);
5950 H5Tclose(fieldtype3elemsecondkey);
5951 H5Tclose(item_type2elemsecond);
5952 H5Tclose(fieldtype2elemsecond);
5953 H5Tclose(fieldtype3elemfirstsecond);
5954 H5Tclose(fieldtype3elemfirstfirst);
5955 H5Tclose(fieldtype2elemfirst);
5956 H5Tclose(item_type0);
5957 H5Tclose(fieldtype0);
5962 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
5963 unsigned int total_size0=H5Tget_size(fieldtype0);
5965 H5Tget_array_dims2(fieldtype0, &fieldlen0);
5966 hid_t item_type0=H5Tget_super(fieldtype0);
5967 unsigned int total_size1elem=H5Tget_size(item_type0);
5968 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
5969 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
5970 hid_t fieldtype3elemfirstfirst=H5Tget_member_type(fieldtype2elemfirst, 0);
5971 unsigned int total_size3elemfirstfirst=H5Tget_size(fieldtype3elemfirstfirst);
5972 hid_t fieldtype3elemfirstsecond=H5Tget_member_type(fieldtype2elemfirst, 1);
5973 unsigned int total_size3elemfirstsecond=H5Tget_size(fieldtype3elemfirstsecond);
5975 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
5976 x0=std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>(fieldlen0);
5977 for(
unsigned int k0=0;k0<fieldlen0;++k0){
5978 std::pair<std::pair<double, double>, std::map<std::string, double>> x1elem;
5979 std::pair<double, double> x2elemfirst;
5980 double x3elemfirstfirst;
5981 x3elemfirstfirst=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0);
5982 double x3elemfirstsecond;
5983 x3elemfirstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0+total_size3elemfirstfirst);
5984 x2elemfirst=std::make_pair(x3elemfirstfirst, x3elemfirstsecond);
5985 std::map<std::string, double> x2elemsecond;
5986 x2elemsecond=VLRead<std::map<std::string, double>,
VL_MAP_STRING_DOUBLE>(buf+offset+total_size1elem*k0+total_size2elemfirst);
5987 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
5992 if(is_row_selected){
5996 H5Tclose(fieldtype3elemfirstsecond);
5997 H5Tclose(fieldtype3elemfirstfirst);
5998 H5Tclose(fieldtype2elemfirst);
5999 H5Tclose(item_type0);
6000 H5Tclose(fieldtype0);
6005 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6006 unsigned int total_size0=H5Tget_size(fieldtype0);
6008 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6009 hid_t item_type0=H5Tget_super(fieldtype0);
6010 unsigned int total_size1elem=H5Tget_size(item_type0);
6011 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
6012 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
6013 hid_t fieldtype3elemfirstfirst=H5Tget_member_type(fieldtype2elemfirst, 0);
6014 unsigned int total_size3elemfirstfirst=H5Tget_size(fieldtype3elemfirstfirst);
6015 hid_t fieldtype3elemfirstsecond=H5Tget_member_type(fieldtype2elemfirst, 1);
6016 unsigned int total_size3elemfirstsecond=H5Tget_size(fieldtype3elemfirstsecond);
6018 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
6019 x0=std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>(fieldlen0);
6020 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6021 std::pair<std::pair<double, double>, std::map<std::string, double>> x1elem;
6022 std::pair<double, double> x2elemfirst;
6023 double x3elemfirstfirst;
6024 x3elemfirstfirst=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0);
6025 double x3elemfirstsecond;
6026 x3elemfirstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size1elem*k0+total_size3elemfirstfirst);
6027 x2elemfirst=std::make_pair(x3elemfirstfirst, x3elemfirstsecond);
6028 std::map<std::string, double> x2elemsecond;
6029 x2elemsecond=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(buf+offset+total_size1elem*k0+total_size2elemfirst);
6030 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
6035 if(is_row_selected){
6039 H5Tclose(fieldtype3elemfirstsecond);
6040 H5Tclose(fieldtype3elemfirstfirst);
6041 H5Tclose(fieldtype2elemfirst);
6042 H5Tclose(item_type0);
6043 H5Tclose(fieldtype0);
6049 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
6052 if(is_row_selected){
6061 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
6064 if(is_row_selected){
6073 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
6076 if(is_row_selected){
6085 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
6088 if(is_row_selected){
6096 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6097 unsigned int total_size0=H5Tget_size(fieldtype0);
6098 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6099 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6100 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6101 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6102 size_t nullpos2secondfirst;
6103 hid_t fieldtype2secondfirst=H5Tget_member_type(fieldtype1second, 0);
6104 unsigned int total_size2secondfirst=H5Tget_size(fieldtype2secondfirst);
6105 size_t nullpos2secondsecond;
6106 hid_t fieldtype2secondsecond=H5Tget_member_type(fieldtype1second, 1);
6107 unsigned int total_size2secondsecond=H5Tget_size(fieldtype2secondsecond);
6108 std::pair<int, std::pair<std::string, std::string>> x0;
6110 x1first=*
reinterpret_cast<int*
>(buf+offset);
6111 std::pair<std::string, std::string> x1second;
6112 std::string x2secondfirst;
6113 x2secondfirst=std::string(buf+offset+total_size1first, total_size2secondfirst);
6114 nullpos2secondfirst=x2secondfirst.find(
'\0');
6115 if(nullpos2secondfirst!=std::string::npos){
6116 x2secondfirst.resize(nullpos2secondfirst);
6119 std::string x2secondsecond;
6120 x2secondsecond=std::string(buf+offset+total_size1first+total_size2secondfirst, total_size2secondsecond);
6121 nullpos2secondsecond=x2secondsecond.find(
'\0');
6122 if(nullpos2secondsecond!=std::string::npos){
6123 x2secondsecond.resize(nullpos2secondsecond);
6126 x1second=std::make_pair(x2secondfirst, x2secondsecond);
6127 x0=std::make_pair(x1first, x1second);
6129 if(is_row_selected){
6133 H5Tclose(fieldtype2secondsecond);
6134 H5Tclose(fieldtype2secondfirst);
6135 H5Tclose(fieldtype1second);
6136 H5Tclose(fieldtype1first);
6137 H5Tclose(fieldtype0);
6142 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6143 unsigned int total_size0=H5Tget_size(fieldtype0);
6144 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6145 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6146 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6147 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6148 hid_t fieldtype2secondfirst=H5Tget_member_type(fieldtype1second, 0);
6149 unsigned int total_size2secondfirst=H5Tget_size(fieldtype2secondfirst);
6150 size_t nullpos2secondsecond;
6151 hid_t fieldtype2secondsecond=H5Tget_member_type(fieldtype1second, 1);
6152 unsigned int total_size2secondsecond=H5Tget_size(fieldtype2secondsecond);
6153 std::pair<int, std::pair<std::string, std::string>> x0;
6155 x1first=*
reinterpret_cast<int*
>(buf+offset);
6156 std::pair<std::string, std::string> x1second;
6157 std::string x2secondfirst;
6159 std::string x2secondsecond;
6160 x2secondsecond=std::string(buf+offset+total_size1first+total_size2secondfirst, total_size2secondsecond);
6161 nullpos2secondsecond=x2secondsecond.find(
'\0');
6162 if(nullpos2secondsecond!=std::string::npos){
6163 x2secondsecond.resize(nullpos2secondsecond);
6166 x1second=std::make_pair(x2secondfirst, x2secondsecond);
6167 x0=std::make_pair(x1first, x1second);
6169 if(is_row_selected){
6173 H5Tclose(fieldtype2secondsecond);
6174 H5Tclose(fieldtype2secondfirst);
6175 H5Tclose(fieldtype1second);
6176 H5Tclose(fieldtype1first);
6177 H5Tclose(fieldtype0);
6182 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6183 unsigned int total_size0=H5Tget_size(fieldtype0);
6184 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6185 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6186 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6187 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6188 size_t nullpos2secondfirst;
6189 hid_t fieldtype2secondfirst=H5Tget_member_type(fieldtype1second, 0);
6190 unsigned int total_size2secondfirst=H5Tget_size(fieldtype2secondfirst);
6191 hid_t fieldtype2secondsecond=H5Tget_member_type(fieldtype1second, 1);
6192 unsigned int total_size2secondsecond=H5Tget_size(fieldtype2secondsecond);
6193 std::pair<int, std::pair<std::string, std::string>> x0;
6195 x1first=*
reinterpret_cast<int*
>(buf+offset);
6196 std::pair<std::string, std::string> x1second;
6197 std::string x2secondfirst;
6198 x2secondfirst=std::string(buf+offset+total_size1first, total_size2secondfirst);
6199 nullpos2secondfirst=x2secondfirst.find(
'\0');
6200 if(nullpos2secondfirst!=std::string::npos){
6201 x2secondfirst.resize(nullpos2secondfirst);
6204 std::string x2secondsecond;
6206 x1second=std::make_pair(x2secondfirst, x2secondsecond);
6207 x0=std::make_pair(x1first, x1second);
6209 if(is_row_selected){
6213 H5Tclose(fieldtype2secondsecond);
6214 H5Tclose(fieldtype2secondfirst);
6215 H5Tclose(fieldtype1second);
6216 H5Tclose(fieldtype1first);
6217 H5Tclose(fieldtype0);
6222 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6223 unsigned int total_size0=H5Tget_size(fieldtype0);
6224 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6225 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6226 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6227 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6228 hid_t fieldtype2secondfirst=H5Tget_member_type(fieldtype1second, 0);
6229 unsigned int total_size2secondfirst=H5Tget_size(fieldtype2secondfirst);
6230 hid_t fieldtype2secondsecond=H5Tget_member_type(fieldtype1second, 1);
6231 unsigned int total_size2secondsecond=H5Tget_size(fieldtype2secondsecond);
6232 std::pair<int, std::pair<std::string, std::string>> x0;
6234 x1first=*
reinterpret_cast<int*
>(buf+offset);
6235 std::pair<std::string, std::string> x1second;
6236 std::string x2secondfirst;
6238 std::string x2secondsecond;
6240 x1second=std::make_pair(x2secondfirst, x2secondsecond);
6241 x0=std::make_pair(x1first, x1second);
6243 if(is_row_selected){
6247 H5Tclose(fieldtype2secondsecond);
6248 H5Tclose(fieldtype2secondfirst);
6249 H5Tclose(fieldtype1second);
6250 H5Tclose(fieldtype1first);
6251 H5Tclose(fieldtype0);
6256 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6257 unsigned int total_size0=H5Tget_size(fieldtype0);
6258 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6259 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6260 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6261 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6262 std::pair<double, double> x0;
6264 x1first=*
reinterpret_cast<double*
>(buf+offset);
6266 x1second=*
reinterpret_cast<double*
>(buf+offset+total_size1first);
6267 x0=std::make_pair(x1first, x1second);
6269 if(is_row_selected){
6273 H5Tclose(fieldtype1second);
6274 H5Tclose(fieldtype1first);
6275 H5Tclose(fieldtype0);
6280 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6281 unsigned int total_size0=H5Tget_size(fieldtype0);
6282 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6283 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6284 hid_t fieldtype2firstfirst=H5Tget_member_type(fieldtype1first, 0);
6285 unsigned int total_size2firstfirst=H5Tget_size(fieldtype2firstfirst);
6286 hid_t fieldtype2firstsecond=H5Tget_member_type(fieldtype1first, 1);
6287 unsigned int total_size2firstsecond=H5Tget_size(fieldtype2firstsecond);
6288 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6289 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6290 hsize_t fieldlen1second;
6291 H5Tget_array_dims2(fieldtype1second, &fieldlen1second);
6292 hid_t item_type1second=H5Tget_super(fieldtype1second);
6293 size_t nullpos2secondkey;
6294 hid_t fieldtype2secondkey=H5Tget_member_type(item_type1second, 0);
6295 unsigned int total_size2secondkey=H5Tget_size(fieldtype2secondkey);
6296 hid_t fieldtype2secondval=H5Tget_member_type(item_type1second, 1);
6297 unsigned int total_size2secondval=H5Tget_size(fieldtype2secondval);
6298 std::pair<std::pair<double, double>, std::map<std::string, double>> x0;
6299 std::pair<double, double> x1first;
6300 double x2firstfirst;
6301 x2firstfirst=*
reinterpret_cast<double*
>(buf+offset);
6302 double x2firstsecond;
6303 x2firstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size2firstfirst);
6304 x1first=std::make_pair(x2firstfirst, x2firstsecond);
6305 std::map<std::string, double> x1second;
6306 for(
unsigned int k1second=0;k1second<fieldlen1second;++k1second){
6307 std::string x2secondkey;
6308 x2secondkey=std::string(buf+offset+total_size1first+(total_size2secondkey+total_size2secondval)*k1second, total_size2secondkey);
6309 nullpos2secondkey=x2secondkey.find(
'\0');
6310 if(nullpos2secondkey!=std::string::npos){
6311 x2secondkey.resize(nullpos2secondkey);
6315 x2secondval=*
reinterpret_cast<double*
>(buf+offset+total_size1first+(total_size2secondkey+total_size2secondval)*k1second+total_size2secondkey);
6316 x1second[x2secondkey]=x2secondval;
6319 x0=std::make_pair(x1first, x1second);
6321 if(is_row_selected){
6325 H5Tclose(fieldtype2secondval);
6326 H5Tclose(fieldtype2secondkey);
6327 H5Tclose(item_type1second);
6328 H5Tclose(fieldtype1second);
6329 H5Tclose(fieldtype2firstsecond);
6330 H5Tclose(fieldtype2firstfirst);
6331 H5Tclose(fieldtype1first);
6332 H5Tclose(fieldtype0);
6337 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6338 unsigned int total_size0=H5Tget_size(fieldtype0);
6339 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6340 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6341 hid_t fieldtype2firstfirst=H5Tget_member_type(fieldtype1first, 0);
6342 unsigned int total_size2firstfirst=H5Tget_size(fieldtype2firstfirst);
6343 hid_t fieldtype2firstsecond=H5Tget_member_type(fieldtype1first, 1);
6344 unsigned int total_size2firstsecond=H5Tget_size(fieldtype2firstsecond);
6345 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6346 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6347 hsize_t fieldlen1second;
6348 H5Tget_array_dims2(fieldtype1second, &fieldlen1second);
6349 hid_t item_type1second=H5Tget_super(fieldtype1second);
6350 hid_t fieldtype2secondkey=H5Tget_member_type(item_type1second, 0);
6351 unsigned int total_size2secondkey=H5Tget_size(fieldtype2secondkey);
6352 hid_t fieldtype2secondval=H5Tget_member_type(item_type1second, 1);
6353 unsigned int total_size2secondval=H5Tget_size(fieldtype2secondval);
6354 std::pair<std::pair<double, double>, std::map<std::string, double>> x0;
6355 std::pair<double, double> x1first;
6356 double x2firstfirst;
6357 x2firstfirst=*
reinterpret_cast<double*
>(buf+offset);
6358 double x2firstsecond;
6359 x2firstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size2firstfirst);
6360 x1first=std::make_pair(x2firstfirst, x2firstsecond);
6361 std::map<std::string, double> x1second;
6362 for(
unsigned int k1second=0;k1second<fieldlen1second;++k1second){
6363 std::string x2secondkey;
6366 x2secondval=*
reinterpret_cast<double*
>(buf+offset+total_size1first+(total_size2secondkey+total_size2secondval)*k1second+total_size2secondkey);
6367 x1second[x2secondkey]=x2secondval;
6370 x0=std::make_pair(x1first, x1second);
6372 if(is_row_selected){
6376 H5Tclose(fieldtype2secondval);
6377 H5Tclose(fieldtype2secondkey);
6378 H5Tclose(item_type1second);
6379 H5Tclose(fieldtype1second);
6380 H5Tclose(fieldtype2firstsecond);
6381 H5Tclose(fieldtype2firstfirst);
6382 H5Tclose(fieldtype1first);
6383 H5Tclose(fieldtype0);
6388 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6389 unsigned int total_size0=H5Tget_size(fieldtype0);
6390 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6391 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6392 hid_t fieldtype2firstfirst=H5Tget_member_type(fieldtype1first, 0);
6393 unsigned int total_size2firstfirst=H5Tget_size(fieldtype2firstfirst);
6394 hid_t fieldtype2firstsecond=H5Tget_member_type(fieldtype1first, 1);
6395 unsigned int total_size2firstsecond=H5Tget_size(fieldtype2firstsecond);
6397 std::pair<std::pair<double, double>, std::map<std::string, double>> x0;
6398 std::pair<double, double> x1first;
6399 double x2firstfirst;
6400 x2firstfirst=*
reinterpret_cast<double*
>(buf+offset);
6401 double x2firstsecond;
6402 x2firstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size2firstfirst);
6403 x1first=std::make_pair(x2firstfirst, x2firstsecond);
6404 std::map<std::string, double> x1second;
6405 x1second=VLRead<std::map<std::string, double>,
VL_MAP_STRING_DOUBLE>(buf+offset+total_size1first);
6406 x0=std::make_pair(x1first, x1second);
6408 if(is_row_selected){
6412 H5Tclose(fieldtype2firstsecond);
6413 H5Tclose(fieldtype2firstfirst);
6414 H5Tclose(fieldtype1first);
6415 H5Tclose(fieldtype0);
6420 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6421 unsigned int total_size0=H5Tget_size(fieldtype0);
6422 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6423 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6424 hid_t fieldtype2firstfirst=H5Tget_member_type(fieldtype1first, 0);
6425 unsigned int total_size2firstfirst=H5Tget_size(fieldtype2firstfirst);
6426 hid_t fieldtype2firstsecond=H5Tget_member_type(fieldtype1first, 1);
6427 unsigned int total_size2firstsecond=H5Tget_size(fieldtype2firstsecond);
6429 std::pair<std::pair<double, double>, std::map<std::string, double>> x0;
6430 std::pair<double, double> x1first;
6431 double x2firstfirst;
6432 x2firstfirst=*
reinterpret_cast<double*
>(buf+offset);
6433 double x2firstsecond;
6434 x2firstsecond=*
reinterpret_cast<double*
>(buf+offset+total_size2firstfirst);
6435 x1first=std::make_pair(x2firstfirst, x2firstsecond);
6436 std::map<std::string, double> x1second;
6438 x0=std::make_pair(x1first, x1second);
6440 if(is_row_selected){
6444 H5Tclose(fieldtype2firstsecond);
6445 H5Tclose(fieldtype2firstfirst);
6446 H5Tclose(fieldtype1first);
6447 H5Tclose(fieldtype0);
6452 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6453 unsigned int total_size0=H5Tget_size(fieldtype0);
6454 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6455 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6456 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6457 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6458 hsize_t fieldlen1second;
6459 H5Tget_array_dims2(fieldtype1second, &fieldlen1second);
6460 hid_t item_type1second=H5Tget_super(fieldtype1second);
6461 hid_t fieldtype2secondkey=H5Tget_member_type(item_type1second, 0);
6462 unsigned int total_size2secondkey=H5Tget_size(fieldtype2secondkey);
6463 hid_t fieldtype2secondval=H5Tget_member_type(item_type1second, 1);
6464 unsigned int total_size2secondval=H5Tget_size(fieldtype2secondval);
6465 std::pair<double, std::map<int, double>> x0;
6467 x1first=*
reinterpret_cast<double*
>(buf+offset);
6468 std::map<int, double> x1second;
6469 for(
unsigned int k1second=0;k1second<fieldlen1second;++k1second){
6471 x2secondkey=*
reinterpret_cast<int*
>(buf+offset+total_size1first+(total_size2secondkey+total_size2secondval)*k1second);
6473 x2secondval=*
reinterpret_cast<double*
>(buf+offset+total_size1first+(total_size2secondkey+total_size2secondval)*k1second+total_size2secondkey);
6474 x1second[x2secondkey]=x2secondval;
6477 x0=std::make_pair(x1first, x1second);
6479 if(is_row_selected){
6483 H5Tclose(fieldtype2secondval);
6484 H5Tclose(fieldtype2secondkey);
6485 H5Tclose(item_type1second);
6486 H5Tclose(fieldtype1second);
6487 H5Tclose(fieldtype1first);
6488 H5Tclose(fieldtype0);
6493 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6494 unsigned int total_size0=H5Tget_size(fieldtype0);
6495 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6496 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6498 std::pair<double, std::map<int, double>> x0;
6500 x1first=*
reinterpret_cast<double*
>(buf+offset);
6501 std::map<int, double> x1second;
6502 x1second=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(buf+offset+total_size1first);
6503 x0=std::make_pair(x1first, x1second);
6505 if(is_row_selected){
6509 H5Tclose(fieldtype1first);
6510 H5Tclose(fieldtype0);
6515 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6516 unsigned int total_size0=H5Tget_size(fieldtype0);
6518 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6519 hid_t item_type0=H5Tget_super(fieldtype0);
6520 unsigned int total_size1elem=H5Tget_size(item_type0);
6521 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
6522 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
6523 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
6524 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
6525 size_t nullpos3elemsecondfirst;
6526 hid_t fieldtype3elemsecondfirst=H5Tget_member_type(fieldtype2elemsecond, 0);
6527 unsigned int total_size3elemsecondfirst=H5Tget_size(fieldtype3elemsecondfirst);
6528 size_t nullpos3elemsecondsecond;
6529 hid_t fieldtype3elemsecondsecond=H5Tget_member_type(fieldtype2elemsecond, 1);
6530 unsigned int total_size3elemsecondsecond=H5Tget_size(fieldtype3elemsecondsecond);
6531 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6532 x0=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen0);
6533 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6534 std::pair<int, std::pair<std::string, std::string>> x1elem;
6536 x2elemfirst=*
reinterpret_cast<int*
>(buf+offset+total_size1elem*k0);
6537 std::pair<std::string, std::string> x2elemsecond;
6538 std::string x3elemsecondfirst;
6539 x3elemsecondfirst=std::string(buf+offset+total_size1elem*k0+total_size2elemfirst, total_size3elemsecondfirst);
6540 nullpos3elemsecondfirst=x3elemsecondfirst.find(
'\0');
6541 if(nullpos3elemsecondfirst!=std::string::npos){
6542 x3elemsecondfirst.resize(nullpos3elemsecondfirst);
6545 std::string x3elemsecondsecond;
6546 x3elemsecondsecond=std::string(buf+offset+total_size1elem*k0+total_size2elemfirst+total_size3elemsecondfirst, total_size3elemsecondsecond);
6547 nullpos3elemsecondsecond=x3elemsecondsecond.find(
'\0');
6548 if(nullpos3elemsecondsecond!=std::string::npos){
6549 x3elemsecondsecond.resize(nullpos3elemsecondsecond);
6552 x2elemsecond=std::make_pair(x3elemsecondfirst, x3elemsecondsecond);
6553 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
6558 if(is_row_selected){
6562 H5Tclose(fieldtype3elemsecondsecond);
6563 H5Tclose(fieldtype3elemsecondfirst);
6564 H5Tclose(fieldtype2elemsecond);
6565 H5Tclose(fieldtype2elemfirst);
6566 H5Tclose(item_type0);
6567 H5Tclose(fieldtype0);
6572 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6573 unsigned int total_size0=H5Tget_size(fieldtype0);
6575 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6576 hid_t item_type0=H5Tget_super(fieldtype0);
6577 unsigned int total_size1elem=H5Tget_size(item_type0);
6578 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
6579 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
6580 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
6581 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
6582 hid_t fieldtype3elemsecondfirst=H5Tget_member_type(fieldtype2elemsecond, 0);
6583 unsigned int total_size3elemsecondfirst=H5Tget_size(fieldtype3elemsecondfirst);
6584 size_t nullpos3elemsecondsecond;
6585 hid_t fieldtype3elemsecondsecond=H5Tget_member_type(fieldtype2elemsecond, 1);
6586 unsigned int total_size3elemsecondsecond=H5Tget_size(fieldtype3elemsecondsecond);
6587 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6588 x0=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen0);
6589 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6590 std::pair<int, std::pair<std::string, std::string>> x1elem;
6592 x2elemfirst=*
reinterpret_cast<int*
>(buf+offset+total_size1elem*k0);
6593 std::pair<std::string, std::string> x2elemsecond;
6594 std::string x3elemsecondfirst;
6596 std::string x3elemsecondsecond;
6597 x3elemsecondsecond=std::string(buf+offset+total_size1elem*k0+total_size2elemfirst+total_size3elemsecondfirst, total_size3elemsecondsecond);
6598 nullpos3elemsecondsecond=x3elemsecondsecond.find(
'\0');
6599 if(nullpos3elemsecondsecond!=std::string::npos){
6600 x3elemsecondsecond.resize(nullpos3elemsecondsecond);
6603 x2elemsecond=std::make_pair(x3elemsecondfirst, x3elemsecondsecond);
6604 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
6609 if(is_row_selected){
6613 H5Tclose(fieldtype3elemsecondsecond);
6614 H5Tclose(fieldtype3elemsecondfirst);
6615 H5Tclose(fieldtype2elemsecond);
6616 H5Tclose(fieldtype2elemfirst);
6617 H5Tclose(item_type0);
6618 H5Tclose(fieldtype0);
6623 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6624 unsigned int total_size0=H5Tget_size(fieldtype0);
6626 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6627 hid_t item_type0=H5Tget_super(fieldtype0);
6628 unsigned int total_size1elem=H5Tget_size(item_type0);
6629 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
6630 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
6631 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
6632 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
6633 size_t nullpos3elemsecondfirst;
6634 hid_t fieldtype3elemsecondfirst=H5Tget_member_type(fieldtype2elemsecond, 0);
6635 unsigned int total_size3elemsecondfirst=H5Tget_size(fieldtype3elemsecondfirst);
6636 hid_t fieldtype3elemsecondsecond=H5Tget_member_type(fieldtype2elemsecond, 1);
6637 unsigned int total_size3elemsecondsecond=H5Tget_size(fieldtype3elemsecondsecond);
6638 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6639 x0=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen0);
6640 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6641 std::pair<int, std::pair<std::string, std::string>> x1elem;
6643 x2elemfirst=*
reinterpret_cast<int*
>(buf+offset+total_size1elem*k0);
6644 std::pair<std::string, std::string> x2elemsecond;
6645 std::string x3elemsecondfirst;
6646 x3elemsecondfirst=std::string(buf+offset+total_size1elem*k0+total_size2elemfirst, total_size3elemsecondfirst);
6647 nullpos3elemsecondfirst=x3elemsecondfirst.find(
'\0');
6648 if(nullpos3elemsecondfirst!=std::string::npos){
6649 x3elemsecondfirst.resize(nullpos3elemsecondfirst);
6652 std::string x3elemsecondsecond;
6654 x2elemsecond=std::make_pair(x3elemsecondfirst, x3elemsecondsecond);
6655 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
6660 if(is_row_selected){
6664 H5Tclose(fieldtype3elemsecondsecond);
6665 H5Tclose(fieldtype3elemsecondfirst);
6666 H5Tclose(fieldtype2elemsecond);
6667 H5Tclose(fieldtype2elemfirst);
6668 H5Tclose(item_type0);
6669 H5Tclose(fieldtype0);
6674 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6675 unsigned int total_size0=H5Tget_size(fieldtype0);
6677 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6678 hid_t item_type0=H5Tget_super(fieldtype0);
6679 unsigned int total_size1elem=H5Tget_size(item_type0);
6680 hid_t fieldtype2elemfirst=H5Tget_member_type(item_type0, 0);
6681 unsigned int total_size2elemfirst=H5Tget_size(fieldtype2elemfirst);
6682 hid_t fieldtype2elemsecond=H5Tget_member_type(item_type0, 1);
6683 unsigned int total_size2elemsecond=H5Tget_size(fieldtype2elemsecond);
6684 hid_t fieldtype3elemsecondfirst=H5Tget_member_type(fieldtype2elemsecond, 0);
6685 unsigned int total_size3elemsecondfirst=H5Tget_size(fieldtype3elemsecondfirst);
6686 hid_t fieldtype3elemsecondsecond=H5Tget_member_type(fieldtype2elemsecond, 1);
6687 unsigned int total_size3elemsecondsecond=H5Tget_size(fieldtype3elemsecondsecond);
6688 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6689 x0=std::vector<std::pair<int, std::pair<std::string, std::string>>>(fieldlen0);
6690 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6691 std::pair<int, std::pair<std::string, std::string>> x1elem;
6693 x2elemfirst=*
reinterpret_cast<int*
>(buf+offset+total_size1elem*k0);
6694 std::pair<std::string, std::string> x2elemsecond;
6695 std::string x3elemsecondfirst;
6697 std::string x3elemsecondsecond;
6699 x2elemsecond=std::make_pair(x3elemsecondfirst, x3elemsecondsecond);
6700 x1elem=std::make_pair(x2elemfirst, x2elemsecond);
6705 if(is_row_selected){
6709 H5Tclose(fieldtype3elemsecondsecond);
6710 H5Tclose(fieldtype3elemsecondfirst);
6711 H5Tclose(fieldtype2elemsecond);
6712 H5Tclose(fieldtype2elemfirst);
6713 H5Tclose(item_type0);
6714 H5Tclose(fieldtype0);
6720 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6723 if(is_row_selected){
6732 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6735 if(is_row_selected){
6744 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6747 if(is_row_selected){
6756 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
6759 if(is_row_selected){
6767 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6768 unsigned int total_size0=H5Tget_size(fieldtype0);
6769 size_t nullpos1first;
6770 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6771 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6772 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6773 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6774 hsize_t fieldlen1second;
6775 H5Tget_array_dims2(fieldtype1second, &fieldlen1second);
6776 hid_t item_type1second=H5Tget_super(fieldtype1second);
6777 unsigned int total_size2secondelem=H5Tget_size(item_type1second);
6778 std::pair<std::string, std::vector<double>> x0;
6779 std::string x1first;
6780 x1first=std::string(buf+offset, total_size1first);
6781 nullpos1first=x1first.find(
'\0');
6782 if(nullpos1first!=std::string::npos){
6783 x1first.resize(nullpos1first);
6786 std::vector<double> x1second;
6787 x1second=std::vector<double>(fieldlen1second);
6788 memcpy(&x1second[0], buf+offset+total_size1first, total_size1second);
6789 x0=std::make_pair(x1first, x1second);
6791 if(is_row_selected){
6795 H5Tclose(item_type1second);
6796 H5Tclose(fieldtype1second);
6797 H5Tclose(fieldtype1first);
6798 H5Tclose(fieldtype0);
6803 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6804 unsigned int total_size0=H5Tget_size(fieldtype0);
6805 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6806 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6807 hid_t fieldtype1second=H5Tget_member_type(fieldtype0, 1);
6808 unsigned int total_size1second=H5Tget_size(fieldtype1second);
6809 hsize_t fieldlen1second;
6810 H5Tget_array_dims2(fieldtype1second, &fieldlen1second);
6811 hid_t item_type1second=H5Tget_super(fieldtype1second);
6812 unsigned int total_size2secondelem=H5Tget_size(item_type1second);
6813 std::pair<std::string, std::vector<double>> x0;
6814 std::string x1first;
6816 std::vector<double> x1second;
6817 x1second=std::vector<double>(fieldlen1second);
6818 memcpy(&x1second[0], buf+offset+total_size1first, total_size1second);
6819 x0=std::make_pair(x1first, x1second);
6821 if(is_row_selected){
6825 H5Tclose(item_type1second);
6826 H5Tclose(fieldtype1second);
6827 H5Tclose(fieldtype1first);
6828 H5Tclose(fieldtype0);
6833 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6834 unsigned int total_size0=H5Tget_size(fieldtype0);
6835 size_t nullpos1first;
6836 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6837 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6839 std::pair<std::string, std::vector<double>> x0;
6840 std::string x1first;
6841 x1first=std::string(buf+offset, total_size1first);
6842 nullpos1first=x1first.find(
'\0');
6843 if(nullpos1first!=std::string::npos){
6844 x1first.resize(nullpos1first);
6847 std::vector<double> x1second;
6848 x1second=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+total_size1first);
6849 x0=std::make_pair(x1first, x1second);
6851 if(is_row_selected){
6855 H5Tclose(fieldtype1first);
6856 H5Tclose(fieldtype0);
6861 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6862 unsigned int total_size0=H5Tget_size(fieldtype0);
6863 hid_t fieldtype1first=H5Tget_member_type(fieldtype0, 0);
6864 unsigned int total_size1first=H5Tget_size(fieldtype1first);
6866 std::pair<std::string, std::vector<double>> x0;
6867 std::string x1first;
6869 std::vector<double> x1second;
6870 x1second=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(buf+offset+total_size1first);
6871 x0=std::make_pair(x1first, x1second);
6873 if(is_row_selected){
6877 H5Tclose(fieldtype1first);
6878 H5Tclose(fieldtype0);
6883 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6884 unsigned int total_size0=H5Tget_size(fieldtype0);
6886 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6887 hid_t item_type0=H5Tget_super(fieldtype0);
6888 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
6889 unsigned int total_size1key=H5Tget_size(fieldtype1key);
6890 size_t nullpos2keyfirst;
6891 hid_t fieldtype2keyfirst=H5Tget_member_type(fieldtype1key, 0);
6892 unsigned int total_size2keyfirst=H5Tget_size(fieldtype2keyfirst);
6893 size_t nullpos2keysecond;
6894 hid_t fieldtype2keysecond=H5Tget_member_type(fieldtype1key, 1);
6895 unsigned int total_size2keysecond=H5Tget_size(fieldtype2keysecond);
6896 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
6897 unsigned int total_size1val=H5Tget_size(fieldtype1val);
6898 std::map<std::pair<std::string, std::string>,
int> x0;
6899 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6900 std::pair<std::string, std::string> x1key;
6901 std::string x2keyfirst;
6902 x2keyfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size2keyfirst);
6903 nullpos2keyfirst=x2keyfirst.find(
'\0');
6904 if(nullpos2keyfirst!=std::string::npos){
6905 x2keyfirst.resize(nullpos2keyfirst);
6908 std::string x2keysecond;
6909 x2keysecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size2keyfirst, total_size2keysecond);
6910 nullpos2keysecond=x2keysecond.find(
'\0');
6911 if(nullpos2keysecond!=std::string::npos){
6912 x2keysecond.resize(nullpos2keysecond);
6915 x1key=std::make_pair(x2keyfirst, x2keysecond);
6917 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
6922 if(is_row_selected){
6926 H5Tclose(fieldtype1val);
6927 H5Tclose(fieldtype2keysecond);
6928 H5Tclose(fieldtype2keyfirst);
6929 H5Tclose(fieldtype1key);
6930 H5Tclose(item_type0);
6931 H5Tclose(fieldtype0);
6936 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6937 unsigned int total_size0=H5Tget_size(fieldtype0);
6939 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6940 hid_t item_type0=H5Tget_super(fieldtype0);
6941 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
6942 unsigned int total_size1key=H5Tget_size(fieldtype1key);
6943 size_t nullpos2keyfirst;
6944 hid_t fieldtype2keyfirst=H5Tget_member_type(fieldtype1key, 0);
6945 unsigned int total_size2keyfirst=H5Tget_size(fieldtype2keyfirst);
6946 hid_t fieldtype2keysecond=H5Tget_member_type(fieldtype1key, 1);
6947 unsigned int total_size2keysecond=H5Tget_size(fieldtype2keysecond);
6948 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
6949 unsigned int total_size1val=H5Tget_size(fieldtype1val);
6950 std::map<std::pair<std::string, std::string>,
int> x0;
6951 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6952 std::pair<std::string, std::string> x1key;
6953 std::string x2keyfirst;
6954 x2keyfirst=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size2keyfirst);
6955 nullpos2keyfirst=x2keyfirst.find(
'\0');
6956 if(nullpos2keyfirst!=std::string::npos){
6957 x2keyfirst.resize(nullpos2keyfirst);
6960 std::string x2keysecond;
6962 x1key=std::make_pair(x2keyfirst, x2keysecond);
6964 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
6969 if(is_row_selected){
6973 H5Tclose(fieldtype1val);
6974 H5Tclose(fieldtype2keysecond);
6975 H5Tclose(fieldtype2keyfirst);
6976 H5Tclose(fieldtype1key);
6977 H5Tclose(item_type0);
6978 H5Tclose(fieldtype0);
6983 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
6984 unsigned int total_size0=H5Tget_size(fieldtype0);
6986 H5Tget_array_dims2(fieldtype0, &fieldlen0);
6987 hid_t item_type0=H5Tget_super(fieldtype0);
6988 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
6989 unsigned int total_size1key=H5Tget_size(fieldtype1key);
6990 hid_t fieldtype2keyfirst=H5Tget_member_type(fieldtype1key, 0);
6991 unsigned int total_size2keyfirst=H5Tget_size(fieldtype2keyfirst);
6992 size_t nullpos2keysecond;
6993 hid_t fieldtype2keysecond=H5Tget_member_type(fieldtype1key, 1);
6994 unsigned int total_size2keysecond=H5Tget_size(fieldtype2keysecond);
6995 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
6996 unsigned int total_size1val=H5Tget_size(fieldtype1val);
6997 std::map<std::pair<std::string, std::string>,
int> x0;
6998 for(
unsigned int k0=0;k0<fieldlen0;++k0){
6999 std::pair<std::string, std::string> x1key;
7000 std::string x2keyfirst;
7002 std::string x2keysecond;
7003 x2keysecond=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size2keyfirst, total_size2keysecond);
7004 nullpos2keysecond=x2keysecond.find(
'\0');
7005 if(nullpos2keysecond!=std::string::npos){
7006 x2keysecond.resize(nullpos2keysecond);
7009 x1key=std::make_pair(x2keyfirst, x2keysecond);
7011 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
7016 if(is_row_selected){
7020 H5Tclose(fieldtype1val);
7021 H5Tclose(fieldtype2keysecond);
7022 H5Tclose(fieldtype2keyfirst);
7023 H5Tclose(fieldtype1key);
7024 H5Tclose(item_type0);
7025 H5Tclose(fieldtype0);
7030 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7031 unsigned int total_size0=H5Tget_size(fieldtype0);
7033 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7034 hid_t item_type0=H5Tget_super(fieldtype0);
7035 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7036 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7037 hid_t fieldtype2keyfirst=H5Tget_member_type(fieldtype1key, 0);
7038 unsigned int total_size2keyfirst=H5Tget_size(fieldtype2keyfirst);
7039 hid_t fieldtype2keysecond=H5Tget_member_type(fieldtype1key, 1);
7040 unsigned int total_size2keysecond=H5Tget_size(fieldtype2keysecond);
7041 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
7042 unsigned int total_size1val=H5Tget_size(fieldtype1val);
7043 std::map<std::pair<std::string, std::string>,
int> x0;
7044 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7045 std::pair<std::string, std::string> x1key;
7046 std::string x2keyfirst;
7048 std::string x2keysecond;
7050 x1key=std::make_pair(x2keyfirst, x2keysecond);
7052 x1val=*
reinterpret_cast<int*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
7057 if(is_row_selected){
7061 H5Tclose(fieldtype1val);
7062 H5Tclose(fieldtype2keysecond);
7063 H5Tclose(fieldtype2keyfirst);
7064 H5Tclose(fieldtype1key);
7065 H5Tclose(item_type0);
7066 H5Tclose(fieldtype0);
7072 std::map<std::pair<std::string, std::string>,
int> x0;
7075 if(is_row_selected){
7084 std::map<std::pair<std::string, std::string>,
int> x0;
7087 if(is_row_selected){
7096 std::map<std::pair<std::string, std::string>,
int> x0;
7099 if(is_row_selected){
7108 std::map<std::pair<std::string, std::string>,
int> x0;
7111 if(is_row_selected){
7119 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7120 unsigned int total_size0=H5Tget_size(fieldtype0);
7122 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7123 hid_t item_type0=H5Tget_super(fieldtype0);
7125 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7126 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7127 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
7128 unsigned int total_size1val=H5Tget_size(fieldtype1val);
7129 hsize_t fieldlen1val;
7130 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
7131 hid_t item_type1val=H5Tget_super(fieldtype1val);
7132 size_t nullpos2valkey;
7133 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
7134 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
7135 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
7136 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
7137 std::map<std::string, std::map<std::string, double>> x0;
7138 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7140 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
7141 nullpos1key=x1key.find(
'\0');
7142 if(nullpos1key!=std::string::npos){
7143 x1key.resize(nullpos1key);
7146 std::map<std::string, double> x1val;
7147 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
7148 std::string x2valkey;
7149 x2valkey=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val, total_size2valkey);
7150 nullpos2valkey=x2valkey.find(
'\0');
7151 if(nullpos2valkey!=std::string::npos){
7152 x2valkey.resize(nullpos2valkey);
7156 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
7157 x1val[x2valkey]=x2valval;
7164 if(is_row_selected){
7168 H5Tclose(fieldtype2valval);
7169 H5Tclose(fieldtype2valkey);
7170 H5Tclose(item_type1val);
7171 H5Tclose(fieldtype1val);
7172 H5Tclose(fieldtype1key);
7173 H5Tclose(item_type0);
7174 H5Tclose(fieldtype0);
7179 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7180 unsigned int total_size0=H5Tget_size(fieldtype0);
7182 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7183 hid_t item_type0=H5Tget_super(fieldtype0);
7185 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7186 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7187 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
7188 unsigned int total_size1val=H5Tget_size(fieldtype1val);
7189 hsize_t fieldlen1val;
7190 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
7191 hid_t item_type1val=H5Tget_super(fieldtype1val);
7192 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
7193 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
7194 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
7195 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
7196 std::map<std::string, std::map<std::string, double>> x0;
7197 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7199 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
7200 nullpos1key=x1key.find(
'\0');
7201 if(nullpos1key!=std::string::npos){
7202 x1key.resize(nullpos1key);
7205 std::map<std::string, double> x1val;
7206 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
7207 std::string x2valkey;
7208 x2valkey=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
7210 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
7211 x1val[x2valkey]=x2valval;
7218 if(is_row_selected){
7222 H5Tclose(fieldtype2valval);
7223 H5Tclose(fieldtype2valkey);
7224 H5Tclose(item_type1val);
7225 H5Tclose(fieldtype1val);
7226 H5Tclose(fieldtype1key);
7227 H5Tclose(item_type0);
7228 H5Tclose(fieldtype0);
7233 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7234 unsigned int total_size0=H5Tget_size(fieldtype0);
7236 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7237 hid_t item_type0=H5Tget_super(fieldtype0);
7239 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7240 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7242 std::map<std::string, std::map<std::string, double>> x0;
7243 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7245 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
7246 nullpos1key=x1key.find(
'\0');
7247 if(nullpos1key!=std::string::npos){
7248 x1key.resize(nullpos1key);
7251 std::map<std::string, double> x1val;
7252 x1val=VLRead<std::map<std::string, double>,
VL_MAP_STRING_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
7257 if(is_row_selected){
7261 H5Tclose(fieldtype1key);
7262 H5Tclose(item_type0);
7263 H5Tclose(fieldtype0);
7268 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7269 unsigned int total_size0=H5Tget_size(fieldtype0);
7271 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7272 hid_t item_type0=H5Tget_super(fieldtype0);
7274 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7275 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7277 std::map<std::string, std::map<std::string, double>> x0;
7278 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7280 x1key=std::string(buf+offset+(total_size1key+total_size1val)*k0, total_size1key);
7281 nullpos1key=x1key.find(
'\0');
7282 if(nullpos1key!=std::string::npos){
7283 x1key.resize(nullpos1key);
7286 std::map<std::string, double> x1val;
7287 x1val=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
7292 if(is_row_selected){
7296 H5Tclose(fieldtype1key);
7297 H5Tclose(item_type0);
7298 H5Tclose(fieldtype0);
7303 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7304 unsigned int total_size0=H5Tget_size(fieldtype0);
7306 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7307 hid_t item_type0=H5Tget_super(fieldtype0);
7308 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7309 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7310 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
7311 unsigned int total_size1val=H5Tget_size(fieldtype1val);
7312 hsize_t fieldlen1val;
7313 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
7314 hid_t item_type1val=H5Tget_super(fieldtype1val);
7315 size_t nullpos2valkey;
7316 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
7317 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
7318 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
7319 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
7320 std::map<std::string, std::map<std::string, double>> x0;
7321 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7324 std::map<std::string, double> x1val;
7325 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
7326 std::string x2valkey;
7327 x2valkey=std::string(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val, total_size2valkey);
7328 nullpos2valkey=x2valkey.find(
'\0');
7329 if(nullpos2valkey!=std::string::npos){
7330 x2valkey.resize(nullpos2valkey);
7334 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
7335 x1val[x2valkey]=x2valval;
7342 if(is_row_selected){
7346 H5Tclose(fieldtype2valval);
7347 H5Tclose(fieldtype2valkey);
7348 H5Tclose(item_type1val);
7349 H5Tclose(fieldtype1val);
7350 H5Tclose(fieldtype1key);
7351 H5Tclose(item_type0);
7352 H5Tclose(fieldtype0);
7357 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7358 unsigned int total_size0=H5Tget_size(fieldtype0);
7360 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7361 hid_t item_type0=H5Tget_super(fieldtype0);
7362 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7363 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7365 std::map<std::string, std::map<std::string, double>> x0;
7366 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7369 std::map<std::string, double> x1val;
7370 x1val=VLRead<std::map<std::string, double>,
VL_MAP_STRING_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
7375 if(is_row_selected){
7379 H5Tclose(fieldtype1key);
7380 H5Tclose(item_type0);
7381 H5Tclose(fieldtype0);
7386 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7387 unsigned int total_size0=H5Tget_size(fieldtype0);
7389 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7390 hid_t item_type0=H5Tget_super(fieldtype0);
7391 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7392 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7393 hid_t fieldtype1val=H5Tget_member_type(item_type0, 1);
7394 unsigned int total_size1val=H5Tget_size(fieldtype1val);
7395 hsize_t fieldlen1val;
7396 H5Tget_array_dims2(fieldtype1val, &fieldlen1val);
7397 hid_t item_type1val=H5Tget_super(fieldtype1val);
7398 hid_t fieldtype2valkey=H5Tget_member_type(item_type1val, 0);
7399 unsigned int total_size2valkey=H5Tget_size(fieldtype2valkey);
7400 hid_t fieldtype2valval=H5Tget_member_type(item_type1val, 1);
7401 unsigned int total_size2valval=H5Tget_size(fieldtype2valval);
7402 std::map<std::string, std::map<std::string, double>> x0;
7403 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7406 std::map<std::string, double> x1val;
7407 for(
unsigned int k1val=0;k1val<fieldlen1val;++k1val){
7408 std::string x2valkey;
7409 x2valkey=
VLRead<std::string,VL_STRING>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val);
7411 x2valval=*
reinterpret_cast<double*
>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key+(total_size2valkey+total_size2valval)*k1val+total_size2valkey);
7412 x1val[x2valkey]=x2valval;
7419 if(is_row_selected){
7423 H5Tclose(fieldtype2valval);
7424 H5Tclose(fieldtype2valkey);
7425 H5Tclose(item_type1val);
7426 H5Tclose(fieldtype1val);
7427 H5Tclose(fieldtype1key);
7428 H5Tclose(item_type0);
7429 H5Tclose(fieldtype0);
7434 hid_t fieldtype0=H5Tget_member_type(tb_type, j);
7435 unsigned int total_size0=H5Tget_size(fieldtype0);
7437 H5Tget_array_dims2(fieldtype0, &fieldlen0);
7438 hid_t item_type0=H5Tget_super(fieldtype0);
7439 hid_t fieldtype1key=H5Tget_member_type(item_type0, 0);
7440 unsigned int total_size1key=H5Tget_size(fieldtype1key);
7442 std::map<std::string, std::map<std::string, double>> x0;
7443 for(
unsigned int k0=0;k0<fieldlen0;++k0){
7446 std::map<std::string, double> x1val;
7447 x1val=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(buf+offset+(total_size1key+total_size1val)*k0+total_size1key);
7452 if(is_row_selected){
7456 H5Tclose(fieldtype1key);
7457 H5Tclose(item_type0);
7458 H5Tclose(fieldtype0);
7464 std::map<std::string, std::map<std::string, double>> x0;
7467 if(is_row_selected){
7476 std::map<std::string, std::map<std::string, double>> x0;
7479 if(is_row_selected){
7488 std::map<std::string, std::map<std::string, double>> x0;
7491 if(is_row_selected){
7500 std::map<std::string, std::map<std::string, double>> x0;
7503 if(is_row_selected){
7512 std::map<std::string, std::map<std::string, double>> x0;
7515 if(is_row_selected){
7524 std::map<std::string, std::map<std::string, double>> x0;
7527 if(is_row_selected){
7536 std::map<std::string, std::map<std::string, double>> x0;
7539 if(is_row_selected){
7548 std::map<std::string, std::map<std::string, double>> x0;
7551 if(is_row_selected){
7561 throw IOError(
"querying column '" + qr.
fields[j] +
"' in table '" + \
7562 table +
"' failed due to unsupported data type.");
7566 if (!is_row_selected)
7568 offset += col_sizes_[table][j];
7570 if (is_row_selected) {
7571 qr.
rows.push_back(row);
7586QueryResult Hdf5Back::GetTableInfo(std::string title, hid_t dset, hid_t dt) {
7589 hsize_t ncols = H5Tget_nmembers(dt);
7590 std::string fieldname;
7591 std::string fieldtype;
7592 LoadTableTypes(title, dset, ncols);
7593 DbTypes* dbtypes = schemas_[title];
7596 for (i = 0; i < ncols; ++i) {
7597 colname = H5Tget_member_name(dt, i);
7598 fieldname = std::string(colname);
7600 qr.
fields.push_back(fieldname);
7601 qr.
types.push_back(dbtypes[i]);
7606void Hdf5Back::LoadTableTypes(std::string title, hsize_t ncols, Datum *d) {
7607 if (schemas_.count(title) > 0)
7610 hid_t dset = H5Dopen2(file_, title.c_str(), H5P_DEFAULT);
7615 LoadTableTypes(title, dset, ncols);
7619void Hdf5Back::LoadTableTypes(std::string title, hid_t dset, hsize_t ncols) {
7620 if (schemas_.count(title) > 0)
7625 hid_t t = H5Dget_type(dset);
7626 schema_sizes_[title] = H5Tget_size(t);
7627 size_t* offsets =
new size_t[ncols];
7628 size_t* sizes =
new size_t[ncols];
7629 for (i = 0; i < ncols; ++i) {
7630 offsets[i] = H5Tget_member_offset(t, i);
7631 subt = H5Tget_member_type(t, i);
7632 sizes[i] = H5Tget_size(subt);
7636 col_offsets_[title] = offsets;
7637 col_sizes_[title] = sizes;
7641 hid_t dbtypes_attr = H5Aopen(dset,
"cyclus_dbtypes", H5P_DEFAULT);
7642 hid_t dbtypes_type = H5Aget_type(dbtypes_attr);
7643 H5Aread(dbtypes_attr, dbtypes_type, dbt);
7644 H5Tclose(dbtypes_type);
7645 H5Aclose(dbtypes_attr);
7649 for (i = 0; i < ncols; ++i)
7650 dbtypes[i] =
static_cast<DbTypes>(dbt[i]);
7651 schemas_[title] = dbtypes;
7654hid_t Hdf5Back::CreateFLStrType(
int n) {
7655 hid_t str_type = H5Tcopy(H5T_C_S1);
7656 H5Tset_size(str_type, n);
7657 H5Tset_strpad(str_type, H5T_STR_NULLPAD);
7658 opened_types_.insert(str_type);
7666void Hdf5Back::CreateTable(
Datum* d) {
7674 hsize_t nvals = vals.size();
7679 size_t dst_size = 0;
7680 size_t* dst_offset =
new size_t[nvals];
7681 size_t* dst_sizes =
new size_t[nvals];
7682 hid_t field_types[nvals];
7684 const char* field_names[nvals];
7685 for (
int i = 0; i < nvals; ++i) {
7686 dst_offset[i] = dst_size;
7687 field_names[i] = vals[i].first;
7688 const std::type_info& valtype = vals[i].second.type();
7689 if(valtype==
typeid(std::map<std::string, std::map<std::string, double>>)){
7691 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[3]<1){
7694 hid_t item_type1key;
7695 item_type1key=sha1_type_;
7696 hid_t item_type1val;
7697 hid_t item_type2key;
7698 item_type2key=sha1_type_;
7699 hid_t item_type2val;
7700 item_type2val=H5T_NATIVE_DOUBLE;
7701 hid_t item_type2valcompound;
7702 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7703 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7704 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7705 item_type1val=sha1_type_;
7711 hid_t item_type1compound;
7713 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7715 item_type0=sha1_type_;
7722 field_types[i]=sha1_type_;
7724 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]>=1&&shape[3]<1){
7727 hsize_t shape01=shape[0];
7728 hid_t item_type1key;
7729 item_type1key=CreateFLStrType(shape[1]);
7730 hid_t item_type1val;
7731 hsize_t shape02=shape[2];
7732 hid_t item_type2key;
7733 item_type2key=sha1_type_;
7734 hid_t item_type2val;
7735 item_type2val=H5T_NATIVE_DOUBLE;
7736 hid_t item_type2valcompound;
7737 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7738 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7739 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7740 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
7741 hid_t item_type1compound;
7742 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
CYCLUS_SHA1_SIZE+
sizeof(
double))*shape[2]));
7743 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7744 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
7745 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7746 dst_sizes[i]=((shape[1]+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[2]))*shape[0]);
7747 field_types[i]=item_type0;
7748 opened_types_.insert(item_type2valcompound);
7749 opened_types_.insert(item_type1val);
7750 opened_types_.insert(item_type1compound);
7751 opened_types_.insert(field_types[i]);
7753 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[3]>=1){
7756 hsize_t shape01=shape[0];
7757 hid_t item_type1key;
7758 item_type1key=CreateFLStrType(shape[1]);
7759 hid_t item_type1val;
7760 hid_t item_type2key;
7761 item_type2key=sha1_type_;
7762 hid_t item_type2val;
7763 item_type2val=H5T_NATIVE_DOUBLE;
7764 hid_t item_type2valcompound;
7765 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7766 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7767 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7768 item_type1val=sha1_type_;
7774 hid_t item_type1compound;
7776 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7777 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
7778 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7780 field_types[i]=item_type0;
7781 opened_types_.insert(item_type2valcompound);
7782 opened_types_.insert(item_type1val);
7783 opened_types_.insert(item_type1compound);
7784 opened_types_.insert(field_types[i]);
7786 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[3]<1){
7789 hsize_t shape01=shape[0];
7790 hid_t item_type1key;
7791 item_type1key=CreateFLStrType(shape[1]);
7792 hid_t item_type1val;
7793 hid_t item_type2key;
7794 item_type2key=sha1_type_;
7795 hid_t item_type2val;
7796 item_type2val=H5T_NATIVE_DOUBLE;
7797 hid_t item_type2valcompound;
7798 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7799 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7800 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7801 item_type1val=sha1_type_;
7807 hid_t item_type1compound;
7809 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7810 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
7811 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7813 field_types[i]=item_type0;
7814 opened_types_.insert(item_type2valcompound);
7815 opened_types_.insert(item_type1val);
7816 opened_types_.insert(item_type1compound);
7817 opened_types_.insert(field_types[i]);
7819 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[3]>=1){
7822 hsize_t shape01=shape[0];
7823 hid_t item_type1key;
7824 item_type1key=sha1_type_;
7825 hid_t item_type1val;
7826 hsize_t shape02=shape[2];
7827 hid_t item_type2key;
7828 item_type2key=CreateFLStrType(shape[3]);
7829 hid_t item_type2val;
7830 item_type2val=H5T_NATIVE_DOUBLE;
7831 hid_t item_type2valcompound;
7832 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+
sizeof(
double));
7833 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7834 H5Tinsert(item_type2valcompound,
"val", 0+shape[3], item_type2val);
7835 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
7836 hid_t item_type1compound;
7837 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((shape[3]+
sizeof(
double))*shape[2]));
7838 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7840 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7841 dst_sizes[i]=((
CYCLUS_SHA1_SIZE+((shape[3]+
sizeof(double))*shape[2]))*shape[0]);
7842 field_types[i]=item_type0;
7843 opened_types_.insert(item_type2valcompound);
7844 opened_types_.insert(item_type1val);
7845 opened_types_.insert(item_type1compound);
7846 opened_types_.insert(field_types[i]);
7848 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[3]>=1){
7851 hsize_t shape01=shape[0];
7852 hid_t item_type1key;
7853 item_type1key=sha1_type_;
7854 hid_t item_type1val;
7855 hid_t item_type2key;
7856 item_type2key=sha1_type_;
7857 hid_t item_type2val;
7858 item_type2val=H5T_NATIVE_DOUBLE;
7859 hid_t item_type2valcompound;
7860 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7861 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7862 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7863 item_type1val=sha1_type_;
7869 hid_t item_type1compound;
7871 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7873 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7875 field_types[i]=item_type0;
7876 opened_types_.insert(item_type2valcompound);
7877 opened_types_.insert(item_type1val);
7878 opened_types_.insert(item_type1compound);
7879 opened_types_.insert(field_types[i]);
7881 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[3]<1){
7884 hsize_t shape01=shape[0];
7885 hid_t item_type1key;
7886 item_type1key=sha1_type_;
7887 hid_t item_type1val;
7888 hsize_t shape02=shape[2];
7889 hid_t item_type2key;
7890 item_type2key=sha1_type_;
7891 hid_t item_type2val;
7892 item_type2val=H5T_NATIVE_DOUBLE;
7893 hid_t item_type2valcompound;
7894 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7895 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7896 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7897 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
7898 hid_t item_type1compound;
7900 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7902 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7904 field_types[i]=item_type0;
7905 opened_types_.insert(item_type2valcompound);
7906 opened_types_.insert(item_type1val);
7907 opened_types_.insert(item_type1compound);
7908 opened_types_.insert(field_types[i]);
7910 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[3]<1){
7913 hsize_t shape01=shape[0];
7914 hid_t item_type1key;
7915 item_type1key=sha1_type_;
7916 hid_t item_type1val;
7917 hid_t item_type2key;
7918 item_type2key=sha1_type_;
7919 hid_t item_type2val;
7920 item_type2val=H5T_NATIVE_DOUBLE;
7921 hid_t item_type2valcompound;
7922 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7923 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7924 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7925 item_type1val=sha1_type_;
7931 hid_t item_type1compound;
7933 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7935 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
7937 field_types[i]=item_type0;
7938 opened_types_.insert(item_type2valcompound);
7939 opened_types_.insert(item_type1val);
7940 opened_types_.insert(item_type1compound);
7941 opened_types_.insert(field_types[i]);
7943 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[3]>=1){
7946 hid_t item_type1key;
7947 item_type1key=sha1_type_;
7948 hid_t item_type1val;
7949 hsize_t shape02=shape[2];
7950 hid_t item_type2key;
7951 item_type2key=sha1_type_;
7952 hid_t item_type2val;
7953 item_type2val=H5T_NATIVE_DOUBLE;
7954 hid_t item_type2valcompound;
7955 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7956 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7957 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7958 item_type1val=sha1_type_;
7964 hid_t item_type1compound;
7966 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
7968 item_type0=sha1_type_;
7975 field_types[i]=sha1_type_;
7977 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[3]>=1){
7980 hid_t item_type1key;
7981 item_type1key=sha1_type_;
7982 hid_t item_type1val;
7983 hsize_t shape02=shape[2];
7984 hid_t item_type2key;
7985 item_type2key=sha1_type_;
7986 hid_t item_type2val;
7987 item_type2val=H5T_NATIVE_DOUBLE;
7988 hid_t item_type2valcompound;
7989 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
7990 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
7991 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
7992 item_type1val=sha1_type_;
7998 hid_t item_type1compound;
8000 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8002 item_type0=sha1_type_;
8009 field_types[i]=sha1_type_;
8011 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[3]>=1){
8014 hid_t item_type1key;
8015 item_type1key=sha1_type_;
8016 hid_t item_type1val;
8017 hid_t item_type2key;
8018 item_type2key=sha1_type_;
8019 hid_t item_type2val;
8020 item_type2val=H5T_NATIVE_DOUBLE;
8021 hid_t item_type2valcompound;
8022 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
8023 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
8024 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
8025 item_type1val=sha1_type_;
8031 hid_t item_type1compound;
8033 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8035 item_type0=sha1_type_;
8042 field_types[i]=sha1_type_;
8044 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[3]<1){
8047 hid_t item_type1key;
8048 item_type1key=sha1_type_;
8049 hid_t item_type1val;
8050 hsize_t shape02=shape[2];
8051 hid_t item_type2key;
8052 item_type2key=sha1_type_;
8053 hid_t item_type2val;
8054 item_type2val=H5T_NATIVE_DOUBLE;
8055 hid_t item_type2valcompound;
8056 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
8057 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
8058 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
8059 item_type1val=sha1_type_;
8065 hid_t item_type1compound;
8067 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8069 item_type0=sha1_type_;
8076 field_types[i]=sha1_type_;
8078 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[3]<1){
8081 hid_t item_type1key;
8082 item_type1key=sha1_type_;
8083 hid_t item_type1val;
8084 hid_t item_type2key;
8085 item_type2key=sha1_type_;
8086 hid_t item_type2val;
8087 item_type2val=H5T_NATIVE_DOUBLE;
8088 hid_t item_type2valcompound;
8089 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
8090 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
8091 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
8092 item_type1val=sha1_type_;
8098 hid_t item_type1compound;
8100 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8102 item_type0=sha1_type_;
8109 field_types[i]=sha1_type_;
8111 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[3]<1){
8114 hid_t item_type1key;
8115 item_type1key=sha1_type_;
8116 hid_t item_type1val;
8117 hsize_t shape02=shape[2];
8118 hid_t item_type2key;
8119 item_type2key=sha1_type_;
8120 hid_t item_type2val;
8121 item_type2val=H5T_NATIVE_DOUBLE;
8122 hid_t item_type2valcompound;
8123 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
8124 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
8125 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
8126 item_type1val=sha1_type_;
8132 hid_t item_type1compound;
8134 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8136 item_type0=sha1_type_;
8143 field_types[i]=sha1_type_;
8145 }
else if(shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[3]>=1){
8148 hid_t item_type1key;
8149 item_type1key=sha1_type_;
8150 hid_t item_type1val;
8151 hid_t item_type2key;
8152 item_type2key=sha1_type_;
8153 hid_t item_type2val;
8154 item_type2val=H5T_NATIVE_DOUBLE;
8155 hid_t item_type2valcompound;
8156 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
8157 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
8158 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
8159 item_type1val=sha1_type_;
8165 hid_t item_type1compound;
8167 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8169 item_type0=sha1_type_;
8176 field_types[i]=sha1_type_;
8181 hsize_t shape01=shape[0];
8182 hid_t item_type1key;
8183 item_type1key=CreateFLStrType(shape[1]);
8184 hid_t item_type1val;
8185 hsize_t shape02=shape[2];
8186 hid_t item_type2key;
8187 item_type2key=CreateFLStrType(shape[3]);
8188 hid_t item_type2val;
8189 item_type2val=H5T_NATIVE_DOUBLE;
8190 hid_t item_type2valcompound;
8191 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+
sizeof(
double));
8192 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
8193 H5Tinsert(item_type2valcompound,
"val", 0+shape[3], item_type2val);
8194 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
8195 hid_t item_type1compound;
8196 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((shape[3]+
sizeof(
double))*shape[2]));
8197 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
8198 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
8199 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
8200 dst_sizes[i]=((shape[1]+((shape[3]+
sizeof(double))*shape[2]))*shape[0]);
8201 field_types[i]=item_type0;
8202 opened_types_.insert(item_type2valcompound);
8203 opened_types_.insert(item_type1val);
8204 opened_types_.insert(item_type1compound);
8205 opened_types_.insert(field_types[i]);
8209 }
else if(valtype==
typeid(
bool)){
8213 item_type0=H5T_NATIVE_CHAR;
8214 dst_sizes[i]=
sizeof(char);
8215 field_types[i]=item_type0;
8217 }
else if(valtype==
typeid(
int)){
8221 item_type0=H5T_NATIVE_INT;
8222 dst_sizes[i]=
sizeof(int);
8223 field_types[i]=item_type0;
8225 }
else if(valtype==
typeid(
float)){
8229 item_type0=H5T_NATIVE_FLOAT;
8230 dst_sizes[i]=
sizeof(float);
8231 field_types[i]=item_type0;
8233 }
else if(valtype==
typeid(
double)){
8237 item_type0=H5T_NATIVE_DOUBLE;
8238 dst_sizes[i]=
sizeof(double);
8239 field_types[i]=item_type0;
8241 }
else if(valtype==
typeid(std::string)){
8243 if(shape.empty()||shape[0]<1){
8246 item_type0=sha1_type_;
8248 field_types[i]=sha1_type_;
8252 field_types[i]=H5Tcopy(H5T_C_S1);
8253 H5Tset_size(field_types[i], shape[0]);
8254 H5Tset_strpad(field_types[i], H5T_STR_NULLPAD);
8255 opened_types_.insert(field_types[i]);
8256 dst_sizes[i]=
sizeof(char)*shape[0];
8263 field_types[i]=sha1_type_;
8266 }
else if(valtype==
typeid(boost::uuids::uuid)){
8270 item_type0=uuid_type_;
8272 field_types[i]=item_type0;
8274 }
else if(valtype==
typeid(std::vector<int>)){
8276 if(shape.empty()||shape[0]<1){
8279 hid_t item_type1elem;
8280 item_type1elem=H5T_NATIVE_INT;
8281 item_type0=sha1_type_;
8288 field_types[i]=sha1_type_;
8293 hsize_t shape01=shape[0];
8294 hid_t item_type1elem;
8295 item_type1elem=H5T_NATIVE_INT;
8296 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8297 dst_sizes[i]=((
sizeof(int))*shape[0]);
8298 field_types[i]=item_type0;
8299 opened_types_.insert(field_types[i]);
8303 }
else if(valtype==
typeid(std::vector<float>)){
8305 if(shape.empty()||shape[0]<1){
8308 hid_t item_type1elem;
8309 item_type1elem=H5T_NATIVE_FLOAT;
8310 item_type0=sha1_type_;
8317 field_types[i]=sha1_type_;
8322 hsize_t shape01=shape[0];
8323 hid_t item_type1elem;
8324 item_type1elem=H5T_NATIVE_FLOAT;
8325 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8326 dst_sizes[i]=((
sizeof(float))*shape[0]);
8327 field_types[i]=item_type0;
8328 opened_types_.insert(field_types[i]);
8332 }
else if(valtype==
typeid(std::vector<double>)){
8334 if(shape.empty()||shape[0]<1){
8337 hid_t item_type1elem;
8338 item_type1elem=H5T_NATIVE_DOUBLE;
8339 item_type0=sha1_type_;
8346 field_types[i]=sha1_type_;
8351 hsize_t shape01=shape[0];
8352 hid_t item_type1elem;
8353 item_type1elem=H5T_NATIVE_DOUBLE;
8354 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8355 dst_sizes[i]=((
sizeof(double))*shape[0]);
8356 field_types[i]=item_type0;
8357 opened_types_.insert(field_types[i]);
8361 }
else if(valtype==
typeid(std::vector<std::string>)){
8363 if(shape.empty()||shape[0]<1&&shape[1]<1){
8366 hid_t item_type1elem;
8367 item_type1elem=sha1_type_;
8368 item_type0=sha1_type_;
8375 field_types[i]=sha1_type_;
8377 }
else if(shape[0]<1&&shape[1]>=1){
8380 hid_t item_type1elem;
8381 item_type1elem=sha1_type_;
8382 item_type0=sha1_type_;
8389 field_types[i]=sha1_type_;
8391 }
else if(shape[0]>=1&&shape[1]<1){
8394 hsize_t shape01=shape[0];
8395 hid_t item_type1elem;
8396 item_type1elem=sha1_type_;
8397 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8399 field_types[i]=item_type0;
8400 opened_types_.insert(field_types[i]);
8405 hsize_t shape01=shape[0];
8406 hid_t item_type1elem;
8407 item_type1elem=CreateFLStrType(shape[1]);
8408 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8409 dst_sizes[i]=((shape[1])*shape[0]);
8410 field_types[i]=item_type0;
8411 opened_types_.insert(field_types[i]);
8415 }
else if(valtype==
typeid(std::vector<cyclus::Blob>)){
8417 if(shape.empty()||shape[0]<1&&shape[1]<1){
8420 hid_t item_type1elem;
8421 item_type1elem=sha1_type_;
8422 item_type0=sha1_type_;
8429 field_types[i]=sha1_type_;
8434 hsize_t shape01=shape[0];
8435 hid_t item_type1elem;
8436 item_type1elem=sha1_type_;
8437 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8439 field_types[i]=item_type0;
8440 opened_types_.insert(field_types[i]);
8444 }
else if(valtype==
typeid(std::vector<boost::uuids::uuid>)){
8446 if(shape.empty()||shape[0]<1){
8449 hid_t item_type1elem;
8450 item_type1elem=uuid_type_;
8451 item_type0=sha1_type_;
8458 field_types[i]=sha1_type_;
8463 hsize_t shape01=shape[0];
8464 hid_t item_type1elem;
8465 item_type1elem=uuid_type_;
8466 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8468 field_types[i]=item_type0;
8469 opened_types_.insert(field_types[i]);
8473 }
else if(valtype==
typeid(std::set<int>)){
8475 if(shape.empty()||shape[0]<1){
8478 hid_t item_type1elem;
8479 item_type1elem=H5T_NATIVE_INT;
8480 item_type0=sha1_type_;
8482 vldts_[
VL_SET_INT]=H5Tvlen_create(item_type1elem);
8487 field_types[i]=sha1_type_;
8492 hsize_t shape01=shape[0];
8493 hid_t item_type1elem;
8494 item_type1elem=H5T_NATIVE_INT;
8495 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8496 dst_sizes[i]=((
sizeof(int))*shape[0]);
8497 field_types[i]=item_type0;
8498 opened_types_.insert(field_types[i]);
8502 }
else if(valtype==
typeid(std::set<float>)){
8504 if(shape.empty()||shape[0]<1){
8507 hid_t item_type1elem;
8508 item_type1elem=H5T_NATIVE_FLOAT;
8509 item_type0=sha1_type_;
8516 field_types[i]=sha1_type_;
8521 hsize_t shape01=shape[0];
8522 hid_t item_type1elem;
8523 item_type1elem=H5T_NATIVE_FLOAT;
8524 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8525 dst_sizes[i]=((
sizeof(float))*shape[0]);
8526 field_types[i]=item_type0;
8527 opened_types_.insert(field_types[i]);
8531 }
else if(valtype==
typeid(std::set<double>)){
8533 if(shape.empty()||shape[0]<1){
8536 hid_t item_type1elem;
8537 item_type1elem=H5T_NATIVE_DOUBLE;
8538 item_type0=sha1_type_;
8545 field_types[i]=sha1_type_;
8550 hsize_t shape01=shape[0];
8551 hid_t item_type1elem;
8552 item_type1elem=H5T_NATIVE_DOUBLE;
8553 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8554 dst_sizes[i]=((
sizeof(double))*shape[0]);
8555 field_types[i]=item_type0;
8556 opened_types_.insert(field_types[i]);
8560 }
else if(valtype==
typeid(std::set<std::string>)){
8562 if(shape.empty()||shape[0]<1&&shape[1]<1){
8565 hid_t item_type1elem;
8566 item_type1elem=sha1_type_;
8567 item_type0=sha1_type_;
8574 field_types[i]=sha1_type_;
8576 }
else if(shape[0]<1&&shape[1]>=1){
8579 hid_t item_type1elem;
8580 item_type1elem=sha1_type_;
8581 item_type0=sha1_type_;
8588 field_types[i]=sha1_type_;
8590 }
else if(shape[0]>=1&&shape[1]<1){
8593 hsize_t shape01=shape[0];
8594 hid_t item_type1elem;
8595 item_type1elem=sha1_type_;
8596 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8598 field_types[i]=item_type0;
8599 opened_types_.insert(field_types[i]);
8604 hsize_t shape01=shape[0];
8605 hid_t item_type1elem;
8606 item_type1elem=CreateFLStrType(shape[1]);
8607 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8608 dst_sizes[i]=((shape[1])*shape[0]);
8609 field_types[i]=item_type0;
8610 opened_types_.insert(field_types[i]);
8614 }
else if(valtype==
typeid(std::set<cyclus::Blob>)){
8616 if(shape.empty()||shape[0]<1&&shape[1]<1){
8619 hid_t item_type1elem;
8620 item_type1elem=sha1_type_;
8621 item_type0=sha1_type_;
8623 vldts_[
VL_SET_BLOB]=H5Tvlen_create(item_type1elem);
8628 field_types[i]=sha1_type_;
8633 hsize_t shape01=shape[0];
8634 hid_t item_type1elem;
8635 item_type1elem=sha1_type_;
8636 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8638 field_types[i]=item_type0;
8639 opened_types_.insert(field_types[i]);
8643 }
else if(valtype==
typeid(std::set<boost::uuids::uuid>)){
8645 if(shape.empty()||shape[0]<1){
8648 hid_t item_type1elem;
8649 item_type1elem=uuid_type_;
8650 item_type0=sha1_type_;
8652 vldts_[
VL_SET_UUID]=H5Tvlen_create(item_type1elem);
8657 field_types[i]=sha1_type_;
8662 hsize_t shape01=shape[0];
8663 hid_t item_type1elem;
8664 item_type1elem=uuid_type_;
8665 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8667 field_types[i]=item_type0;
8668 opened_types_.insert(field_types[i]);
8672 }
else if(valtype==
typeid(std::list<bool>)){
8674 if(shape.empty()||shape[0]<1){
8677 hid_t item_type1elem;
8678 item_type1elem=H5T_NATIVE_CHAR;
8679 item_type0=sha1_type_;
8686 field_types[i]=sha1_type_;
8691 hsize_t shape01=shape[0];
8692 hid_t item_type1elem;
8693 item_type1elem=H5T_NATIVE_CHAR;
8694 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8695 dst_sizes[i]=((
sizeof(char))*shape[0]);
8696 field_types[i]=item_type0;
8697 opened_types_.insert(field_types[i]);
8701 }
else if(valtype==
typeid(std::list<int>)){
8703 if(shape.empty()||shape[0]<1){
8706 hid_t item_type1elem;
8707 item_type1elem=H5T_NATIVE_INT;
8708 item_type0=sha1_type_;
8710 vldts_[
VL_LIST_INT]=H5Tvlen_create(item_type1elem);
8715 field_types[i]=sha1_type_;
8720 hsize_t shape01=shape[0];
8721 hid_t item_type1elem;
8722 item_type1elem=H5T_NATIVE_INT;
8723 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8724 dst_sizes[i]=((
sizeof(int))*shape[0]);
8725 field_types[i]=item_type0;
8726 opened_types_.insert(field_types[i]);
8730 }
else if(valtype==
typeid(std::list<float>)){
8732 if(shape.empty()||shape[0]<1){
8735 hid_t item_type1elem;
8736 item_type1elem=H5T_NATIVE_FLOAT;
8737 item_type0=sha1_type_;
8744 field_types[i]=sha1_type_;
8749 hsize_t shape01=shape[0];
8750 hid_t item_type1elem;
8751 item_type1elem=H5T_NATIVE_FLOAT;
8752 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8753 dst_sizes[i]=((
sizeof(float))*shape[0]);
8754 field_types[i]=item_type0;
8755 opened_types_.insert(field_types[i]);
8759 }
else if(valtype==
typeid(std::list<double>)){
8761 if(shape.empty()||shape[0]<1){
8764 hid_t item_type1elem;
8765 item_type1elem=H5T_NATIVE_DOUBLE;
8766 item_type0=sha1_type_;
8773 field_types[i]=sha1_type_;
8778 hsize_t shape01=shape[0];
8779 hid_t item_type1elem;
8780 item_type1elem=H5T_NATIVE_DOUBLE;
8781 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8782 dst_sizes[i]=((
sizeof(double))*shape[0]);
8783 field_types[i]=item_type0;
8784 opened_types_.insert(field_types[i]);
8788 }
else if(valtype==
typeid(std::list<std::string>)){
8790 if(shape.empty()||shape[0]<1&&shape[1]<1){
8793 hid_t item_type1elem;
8794 item_type1elem=sha1_type_;
8795 item_type0=sha1_type_;
8802 field_types[i]=sha1_type_;
8804 }
else if(shape[0]<1&&shape[1]>=1){
8807 hid_t item_type1elem;
8808 item_type1elem=sha1_type_;
8809 item_type0=sha1_type_;
8816 field_types[i]=sha1_type_;
8818 }
else if(shape[0]>=1&&shape[1]<1){
8821 hsize_t shape01=shape[0];
8822 hid_t item_type1elem;
8823 item_type1elem=sha1_type_;
8824 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8826 field_types[i]=item_type0;
8827 opened_types_.insert(field_types[i]);
8832 hsize_t shape01=shape[0];
8833 hid_t item_type1elem;
8834 item_type1elem=CreateFLStrType(shape[1]);
8835 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8836 dst_sizes[i]=((shape[1])*shape[0]);
8837 field_types[i]=item_type0;
8838 opened_types_.insert(field_types[i]);
8842 }
else if(valtype==
typeid(std::list<cyclus::Blob>)){
8844 if(shape.empty()||shape[0]<1&&shape[1]<1){
8847 hid_t item_type1elem;
8848 item_type1elem=sha1_type_;
8849 item_type0=sha1_type_;
8856 field_types[i]=sha1_type_;
8861 hsize_t shape01=shape[0];
8862 hid_t item_type1elem;
8863 item_type1elem=sha1_type_;
8864 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8866 field_types[i]=item_type0;
8867 opened_types_.insert(field_types[i]);
8871 }
else if(valtype==
typeid(std::list<boost::uuids::uuid>)){
8873 if(shape.empty()||shape[0]<1){
8876 hid_t item_type1elem;
8877 item_type1elem=uuid_type_;
8878 item_type0=sha1_type_;
8885 field_types[i]=sha1_type_;
8890 hsize_t shape01=shape[0];
8891 hid_t item_type1elem;
8892 item_type1elem=uuid_type_;
8893 item_type0=H5Tarray_create2(item_type1elem, 1, &shape01);
8895 field_types[i]=item_type0;
8896 opened_types_.insert(field_types[i]);
8900 }
else if(valtype==
typeid(std::pair<int, bool>)){
8904 hid_t item_type1first;
8905 item_type1first=H5T_NATIVE_INT;
8906 hid_t item_type1second;
8907 item_type1second=H5T_NATIVE_CHAR;
8908 hid_t item_type1compound;
8909 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
char));
8910 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
8911 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
8912 dst_sizes[i]=((
sizeof(int)+
sizeof(
char)));
8913 field_types[i]=item_type1compound;
8914 opened_types_.insert(field_types[i]);
8916 }
else if(valtype==
typeid(std::pair<int, int>)){
8920 hid_t item_type1first;
8921 item_type1first=H5T_NATIVE_INT;
8922 hid_t item_type1second;
8923 item_type1second=H5T_NATIVE_INT;
8924 hid_t item_type1compound;
8925 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
int));
8926 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
8927 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
8928 dst_sizes[i]=((
sizeof(int)+
sizeof(
int)));
8929 field_types[i]=item_type1compound;
8930 opened_types_.insert(field_types[i]);
8932 }
else if(valtype==
typeid(std::pair<int, float>)){
8936 hid_t item_type1first;
8937 item_type1first=H5T_NATIVE_INT;
8938 hid_t item_type1second;
8939 item_type1second=H5T_NATIVE_FLOAT;
8940 hid_t item_type1compound;
8941 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
float));
8942 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
8943 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
8944 dst_sizes[i]=((
sizeof(int)+
sizeof(
float)));
8945 field_types[i]=item_type1compound;
8946 opened_types_.insert(field_types[i]);
8948 }
else if(valtype==
typeid(std::pair<int, double>)){
8952 hid_t item_type1first;
8953 item_type1first=H5T_NATIVE_INT;
8954 hid_t item_type1second;
8955 item_type1second=H5T_NATIVE_DOUBLE;
8956 hid_t item_type1compound;
8957 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
8958 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
8959 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
8960 dst_sizes[i]=((
sizeof(int)+
sizeof(
double)));
8961 field_types[i]=item_type1compound;
8962 opened_types_.insert(field_types[i]);
8964 }
else if(valtype==
typeid(std::pair<int, std::string>)){
8966 if(shape.empty()||shape[2]<1){
8969 hid_t item_type1first;
8970 item_type1first=H5T_NATIVE_INT;
8971 hid_t item_type1second;
8972 item_type1second=sha1_type_;
8973 hid_t item_type1compound;
8975 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
8976 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
8978 field_types[i]=item_type1compound;
8979 opened_types_.insert(field_types[i]);
8984 hid_t item_type1first;
8985 item_type1first=H5T_NATIVE_INT;
8986 hid_t item_type1second;
8987 item_type1second=CreateFLStrType(shape[2]);
8988 hid_t item_type1compound;
8989 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+shape[2]);
8990 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
8991 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
8992 dst_sizes[i]=((
sizeof(int)+shape[2]));
8993 field_types[i]=item_type1compound;
8994 opened_types_.insert(field_types[i]);
8998 }
else if(valtype==
typeid(std::pair<int, cyclus::Blob>)){
9002 hid_t item_type1first;
9003 item_type1first=H5T_NATIVE_INT;
9004 hid_t item_type1second;
9005 item_type1second=sha1_type_;
9006 hid_t item_type1compound;
9008 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9009 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
9011 field_types[i]=item_type1compound;
9012 opened_types_.insert(field_types[i]);
9014 }
else if(valtype==
typeid(std::pair<int, boost::uuids::uuid>)){
9018 hid_t item_type1first;
9019 item_type1first=H5T_NATIVE_INT;
9020 hid_t item_type1second;
9021 item_type1second=uuid_type_;
9022 hid_t item_type1compound;
9024 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9025 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type1second);
9027 field_types[i]=item_type1compound;
9028 opened_types_.insert(field_types[i]);
9030 }
else if(valtype==
typeid(std::pair<std::string, bool>)){
9032 if(shape.empty()||shape[1]<1){
9035 hid_t item_type1first;
9036 item_type1first=sha1_type_;
9037 hid_t item_type1second;
9038 item_type1second=H5T_NATIVE_CHAR;
9039 hid_t item_type1compound;
9041 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9042 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9044 field_types[i]=item_type1compound;
9045 opened_types_.insert(field_types[i]);
9050 hid_t item_type1first;
9051 item_type1first=CreateFLStrType(shape[1]);
9052 hid_t item_type1second;
9053 item_type1second=H5T_NATIVE_CHAR;
9054 hid_t item_type1compound;
9055 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
char));
9056 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9057 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9058 dst_sizes[i]=((shape[1]+
sizeof(char)));
9059 field_types[i]=item_type1compound;
9060 opened_types_.insert(field_types[i]);
9064 }
else if(valtype==
typeid(std::pair<std::string, int>)){
9066 if(shape.empty()||shape[1]<1){
9069 hid_t item_type1first;
9070 item_type1first=sha1_type_;
9071 hid_t item_type1second;
9072 item_type1second=H5T_NATIVE_INT;
9073 hid_t item_type1compound;
9075 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9076 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9078 field_types[i]=item_type1compound;
9079 opened_types_.insert(field_types[i]);
9084 hid_t item_type1first;
9085 item_type1first=CreateFLStrType(shape[1]);
9086 hid_t item_type1second;
9087 item_type1second=H5T_NATIVE_INT;
9088 hid_t item_type1compound;
9089 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
int));
9090 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9091 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9092 dst_sizes[i]=((shape[1]+
sizeof(int)));
9093 field_types[i]=item_type1compound;
9094 opened_types_.insert(field_types[i]);
9098 }
else if(valtype==
typeid(std::pair<std::string, float>)){
9100 if(shape.empty()||shape[1]<1){
9103 hid_t item_type1first;
9104 item_type1first=sha1_type_;
9105 hid_t item_type1second;
9106 item_type1second=H5T_NATIVE_FLOAT;
9107 hid_t item_type1compound;
9108 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
float));
9109 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9110 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9112 field_types[i]=item_type1compound;
9113 opened_types_.insert(field_types[i]);
9118 hid_t item_type1first;
9119 item_type1first=CreateFLStrType(shape[1]);
9120 hid_t item_type1second;
9121 item_type1second=H5T_NATIVE_FLOAT;
9122 hid_t item_type1compound;
9123 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
float));
9124 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9125 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9126 dst_sizes[i]=((shape[1]+
sizeof(float)));
9127 field_types[i]=item_type1compound;
9128 opened_types_.insert(field_types[i]);
9132 }
else if(valtype==
typeid(std::pair<std::string, double>)){
9134 if(shape.empty()||shape[1]<1){
9137 hid_t item_type1first;
9138 item_type1first=sha1_type_;
9139 hid_t item_type1second;
9140 item_type1second=H5T_NATIVE_DOUBLE;
9141 hid_t item_type1compound;
9142 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
9143 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9144 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9146 field_types[i]=item_type1compound;
9147 opened_types_.insert(field_types[i]);
9152 hid_t item_type1first;
9153 item_type1first=CreateFLStrType(shape[1]);
9154 hid_t item_type1second;
9155 item_type1second=H5T_NATIVE_DOUBLE;
9156 hid_t item_type1compound;
9157 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
double));
9158 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9159 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9160 dst_sizes[i]=((shape[1]+
sizeof(double)));
9161 field_types[i]=item_type1compound;
9162 opened_types_.insert(field_types[i]);
9166 }
else if(valtype==
typeid(std::pair<std::string, std::string>)){
9168 if(shape.empty()||shape[1]<1&&shape[2]<1){
9171 hid_t item_type1first;
9172 item_type1first=sha1_type_;
9173 hid_t item_type1second;
9174 item_type1second=sha1_type_;
9175 hid_t item_type1compound;
9177 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9178 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9180 field_types[i]=item_type1compound;
9181 opened_types_.insert(field_types[i]);
9183 }
else if(shape[1]>=1&&shape[2]<1){
9186 hid_t item_type1first;
9187 item_type1first=CreateFLStrType(shape[1]);
9188 hid_t item_type1second;
9189 item_type1second=sha1_type_;
9190 hid_t item_type1compound;
9192 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9193 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9195 field_types[i]=item_type1compound;
9196 opened_types_.insert(field_types[i]);
9198 }
else if(shape[1]<1&&shape[2]>=1){
9201 hid_t item_type1first;
9202 item_type1first=sha1_type_;
9203 hid_t item_type1second;
9204 item_type1second=CreateFLStrType(shape[2]);
9205 hid_t item_type1compound;
9207 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9208 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9210 field_types[i]=item_type1compound;
9211 opened_types_.insert(field_types[i]);
9216 hid_t item_type1first;
9217 item_type1first=CreateFLStrType(shape[1]);
9218 hid_t item_type1second;
9219 item_type1second=CreateFLStrType(shape[2]);
9220 hid_t item_type1compound;
9221 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+shape[2]);
9222 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9223 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9224 dst_sizes[i]=((shape[1]+shape[2]));
9225 field_types[i]=item_type1compound;
9226 opened_types_.insert(field_types[i]);
9230 }
else if(valtype==
typeid(std::pair<std::string, cyclus::Blob>)){
9232 if(shape.empty()||shape[1]<1&&shape[2]<1){
9235 hid_t item_type1first;
9236 item_type1first=sha1_type_;
9237 hid_t item_type1second;
9238 item_type1second=sha1_type_;
9239 hid_t item_type1compound;
9241 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9242 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9244 field_types[i]=item_type1compound;
9245 opened_types_.insert(field_types[i]);
9250 hid_t item_type1first;
9251 item_type1first=CreateFLStrType(shape[1]);
9252 hid_t item_type1second;
9253 item_type1second=sha1_type_;
9254 hid_t item_type1compound;
9256 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9257 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9259 field_types[i]=item_type1compound;
9260 opened_types_.insert(field_types[i]);
9264 }
else if(valtype==
typeid(std::pair<std::string, boost::uuids::uuid>)){
9266 if(shape.empty()||shape[1]<1){
9269 hid_t item_type1first;
9270 item_type1first=sha1_type_;
9271 hid_t item_type1second;
9272 item_type1second=uuid_type_;
9273 hid_t item_type1compound;
9275 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9276 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
9278 field_types[i]=item_type1compound;
9279 opened_types_.insert(field_types[i]);
9284 hid_t item_type1first;
9285 item_type1first=CreateFLStrType(shape[1]);
9286 hid_t item_type1second;
9287 item_type1second=uuid_type_;
9288 hid_t item_type1compound;
9290 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
9291 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
9293 field_types[i]=item_type1compound;
9294 opened_types_.insert(field_types[i]);
9298 }
else if(valtype==
typeid(std::map<int, bool>)){
9300 if(shape.empty()||shape[0]<1){
9303 hid_t item_type1key;
9304 item_type1key=H5T_NATIVE_INT;
9305 hid_t item_type1val;
9306 item_type1val=H5T_NATIVE_CHAR;
9307 hid_t item_type1compound;
9308 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
char));
9309 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9310 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9311 item_type0=sha1_type_;
9318 field_types[i]=sha1_type_;
9323 hsize_t shape01=shape[0];
9324 hid_t item_type1key;
9325 item_type1key=H5T_NATIVE_INT;
9326 hid_t item_type1val;
9327 item_type1val=H5T_NATIVE_CHAR;
9328 hid_t item_type1compound;
9329 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
char));
9330 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9331 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9332 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9333 dst_sizes[i]=((
sizeof(int)+
sizeof(
char))*shape[0]);
9334 field_types[i]=item_type0;
9335 opened_types_.insert(item_type1compound);
9336 opened_types_.insert(field_types[i]);
9340 }
else if(valtype==
typeid(std::map<int, int>)){
9342 if(shape.empty()||shape[0]<1){
9345 hid_t item_type1key;
9346 item_type1key=H5T_NATIVE_INT;
9347 hid_t item_type1val;
9348 item_type1val=H5T_NATIVE_INT;
9349 hid_t item_type1compound;
9350 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
int));
9351 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9352 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9353 item_type0=sha1_type_;
9360 field_types[i]=sha1_type_;
9365 hsize_t shape01=shape[0];
9366 hid_t item_type1key;
9367 item_type1key=H5T_NATIVE_INT;
9368 hid_t item_type1val;
9369 item_type1val=H5T_NATIVE_INT;
9370 hid_t item_type1compound;
9371 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
int));
9372 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9373 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9374 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9375 dst_sizes[i]=((
sizeof(int)+
sizeof(
int))*shape[0]);
9376 field_types[i]=item_type0;
9377 opened_types_.insert(item_type1compound);
9378 opened_types_.insert(field_types[i]);
9382 }
else if(valtype==
typeid(std::map<int, float>)){
9384 if(shape.empty()||shape[0]<1){
9387 hid_t item_type1key;
9388 item_type1key=H5T_NATIVE_INT;
9389 hid_t item_type1val;
9390 item_type1val=H5T_NATIVE_FLOAT;
9391 hid_t item_type1compound;
9392 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
float));
9393 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9394 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9395 item_type0=sha1_type_;
9402 field_types[i]=sha1_type_;
9407 hsize_t shape01=shape[0];
9408 hid_t item_type1key;
9409 item_type1key=H5T_NATIVE_INT;
9410 hid_t item_type1val;
9411 item_type1val=H5T_NATIVE_FLOAT;
9412 hid_t item_type1compound;
9413 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
float));
9414 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9415 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9416 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9417 dst_sizes[i]=((
sizeof(int)+
sizeof(
float))*shape[0]);
9418 field_types[i]=item_type0;
9419 opened_types_.insert(item_type1compound);
9420 opened_types_.insert(field_types[i]);
9424 }
else if(valtype==
typeid(std::map<int, double>)){
9426 if(shape.empty()||shape[0]<1){
9429 hid_t item_type1key;
9430 item_type1key=H5T_NATIVE_INT;
9431 hid_t item_type1val;
9432 item_type1val=H5T_NATIVE_DOUBLE;
9433 hid_t item_type1compound;
9434 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
9435 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9436 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9437 item_type0=sha1_type_;
9444 field_types[i]=sha1_type_;
9449 hsize_t shape01=shape[0];
9450 hid_t item_type1key;
9451 item_type1key=H5T_NATIVE_INT;
9452 hid_t item_type1val;
9453 item_type1val=H5T_NATIVE_DOUBLE;
9454 hid_t item_type1compound;
9455 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
9456 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9457 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9458 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9459 dst_sizes[i]=((
sizeof(int)+
sizeof(
double))*shape[0]);
9460 field_types[i]=item_type0;
9461 opened_types_.insert(item_type1compound);
9462 opened_types_.insert(field_types[i]);
9466 }
else if(valtype==
typeid(std::map<int, std::string>)){
9468 if(shape.empty()||shape[0]<1&&shape[2]<1){
9471 hid_t item_type1key;
9472 item_type1key=H5T_NATIVE_INT;
9473 hid_t item_type1val;
9474 item_type1val=sha1_type_;
9475 hid_t item_type1compound;
9477 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9478 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9479 item_type0=sha1_type_;
9486 field_types[i]=sha1_type_;
9488 }
else if(shape[0]<1&&shape[2]>=1){
9491 hid_t item_type1key;
9492 item_type1key=H5T_NATIVE_INT;
9493 hid_t item_type1val;
9494 item_type1val=sha1_type_;
9495 hid_t item_type1compound;
9497 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9498 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9499 item_type0=sha1_type_;
9506 field_types[i]=sha1_type_;
9508 }
else if(shape[0]>=1&&shape[2]<1){
9511 hsize_t shape01=shape[0];
9512 hid_t item_type1key;
9513 item_type1key=H5T_NATIVE_INT;
9514 hid_t item_type1val;
9515 item_type1val=sha1_type_;
9516 hid_t item_type1compound;
9518 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9519 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9520 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9522 field_types[i]=item_type0;
9523 opened_types_.insert(item_type1compound);
9524 opened_types_.insert(field_types[i]);
9529 hsize_t shape01=shape[0];
9530 hid_t item_type1key;
9531 item_type1key=H5T_NATIVE_INT;
9532 hid_t item_type1val;
9533 item_type1val=CreateFLStrType(shape[2]);
9534 hid_t item_type1compound;
9535 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+shape[2]);
9536 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9537 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9538 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9539 dst_sizes[i]=((
sizeof(int)+shape[2])*shape[0]);
9540 field_types[i]=item_type0;
9541 opened_types_.insert(item_type1compound);
9542 opened_types_.insert(field_types[i]);
9546 }
else if(valtype==
typeid(std::map<int, cyclus::Blob>)){
9548 if(shape.empty()||shape[0]<1&&shape[2]<1){
9551 hid_t item_type1key;
9552 item_type1key=H5T_NATIVE_INT;
9553 hid_t item_type1val;
9554 item_type1val=sha1_type_;
9555 hid_t item_type1compound;
9557 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9558 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9559 item_type0=sha1_type_;
9566 field_types[i]=sha1_type_;
9571 hsize_t shape01=shape[0];
9572 hid_t item_type1key;
9573 item_type1key=H5T_NATIVE_INT;
9574 hid_t item_type1val;
9575 item_type1val=sha1_type_;
9576 hid_t item_type1compound;
9578 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9579 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9580 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9582 field_types[i]=item_type0;
9583 opened_types_.insert(item_type1compound);
9584 opened_types_.insert(field_types[i]);
9588 }
else if(valtype==
typeid(std::map<int, boost::uuids::uuid>)){
9590 if(shape.empty()||shape[0]<1){
9593 hid_t item_type1key;
9594 item_type1key=H5T_NATIVE_INT;
9595 hid_t item_type1val;
9596 item_type1val=uuid_type_;
9597 hid_t item_type1compound;
9599 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9600 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9601 item_type0=sha1_type_;
9608 field_types[i]=sha1_type_;
9613 hsize_t shape01=shape[0];
9614 hid_t item_type1key;
9615 item_type1key=H5T_NATIVE_INT;
9616 hid_t item_type1val;
9617 item_type1val=uuid_type_;
9618 hid_t item_type1compound;
9620 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9621 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
9622 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9624 field_types[i]=item_type0;
9625 opened_types_.insert(item_type1compound);
9626 opened_types_.insert(field_types[i]);
9630 }
else if(valtype==
typeid(std::map<std::string, bool>)){
9632 if(shape.empty()||shape[0]<1&&shape[1]<1){
9635 hid_t item_type1key;
9636 item_type1key=sha1_type_;
9637 hid_t item_type1val;
9638 item_type1val=H5T_NATIVE_CHAR;
9639 hid_t item_type1compound;
9641 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9643 item_type0=sha1_type_;
9650 field_types[i]=sha1_type_;
9652 }
else if(shape[0]<1&&shape[1]>=1){
9655 hid_t item_type1key;
9656 item_type1key=sha1_type_;
9657 hid_t item_type1val;
9658 item_type1val=H5T_NATIVE_CHAR;
9659 hid_t item_type1compound;
9661 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9663 item_type0=sha1_type_;
9670 field_types[i]=sha1_type_;
9672 }
else if(shape[0]>=1&&shape[1]<1){
9675 hsize_t shape01=shape[0];
9676 hid_t item_type1key;
9677 item_type1key=sha1_type_;
9678 hid_t item_type1val;
9679 item_type1val=H5T_NATIVE_CHAR;
9680 hid_t item_type1compound;
9682 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9684 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9686 field_types[i]=item_type0;
9687 opened_types_.insert(item_type1compound);
9688 opened_types_.insert(field_types[i]);
9693 hsize_t shape01=shape[0];
9694 hid_t item_type1key;
9695 item_type1key=CreateFLStrType(shape[1]);
9696 hid_t item_type1val;
9697 item_type1val=H5T_NATIVE_CHAR;
9698 hid_t item_type1compound;
9699 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
char));
9700 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9701 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
9702 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9703 dst_sizes[i]=((shape[1]+
sizeof(char))*shape[0]);
9704 field_types[i]=item_type0;
9705 opened_types_.insert(item_type1compound);
9706 opened_types_.insert(field_types[i]);
9710 }
else if(valtype==
typeid(std::map<std::string, int>)){
9712 if(shape.empty()||shape[0]<1&&shape[1]<1){
9715 hid_t item_type1key;
9716 item_type1key=sha1_type_;
9717 hid_t item_type1val;
9718 item_type1val=H5T_NATIVE_INT;
9719 hid_t item_type1compound;
9721 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9723 item_type0=sha1_type_;
9730 field_types[i]=sha1_type_;
9732 }
else if(shape[0]<1&&shape[1]>=1){
9735 hid_t item_type1key;
9736 item_type1key=sha1_type_;
9737 hid_t item_type1val;
9738 item_type1val=H5T_NATIVE_INT;
9739 hid_t item_type1compound;
9741 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9743 item_type0=sha1_type_;
9750 field_types[i]=sha1_type_;
9752 }
else if(shape[0]>=1&&shape[1]<1){
9755 hsize_t shape01=shape[0];
9756 hid_t item_type1key;
9757 item_type1key=sha1_type_;
9758 hid_t item_type1val;
9759 item_type1val=H5T_NATIVE_INT;
9760 hid_t item_type1compound;
9762 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9764 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9766 field_types[i]=item_type0;
9767 opened_types_.insert(item_type1compound);
9768 opened_types_.insert(field_types[i]);
9773 hsize_t shape01=shape[0];
9774 hid_t item_type1key;
9775 item_type1key=CreateFLStrType(shape[1]);
9776 hid_t item_type1val;
9777 item_type1val=H5T_NATIVE_INT;
9778 hid_t item_type1compound;
9779 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
int));
9780 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9781 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
9782 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9783 dst_sizes[i]=((shape[1]+
sizeof(int))*shape[0]);
9784 field_types[i]=item_type0;
9785 opened_types_.insert(item_type1compound);
9786 opened_types_.insert(field_types[i]);
9790 }
else if(valtype==
typeid(std::map<std::string, float>)){
9792 if(shape.empty()||shape[0]<1&&shape[1]<1){
9795 hid_t item_type1key;
9796 item_type1key=sha1_type_;
9797 hid_t item_type1val;
9798 item_type1val=H5T_NATIVE_FLOAT;
9799 hid_t item_type1compound;
9800 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
float));
9801 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9803 item_type0=sha1_type_;
9810 field_types[i]=sha1_type_;
9812 }
else if(shape[0]<1&&shape[1]>=1){
9815 hid_t item_type1key;
9816 item_type1key=sha1_type_;
9817 hid_t item_type1val;
9818 item_type1val=H5T_NATIVE_FLOAT;
9819 hid_t item_type1compound;
9820 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
float));
9821 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9823 item_type0=sha1_type_;
9830 field_types[i]=sha1_type_;
9832 }
else if(shape[0]>=1&&shape[1]<1){
9835 hsize_t shape01=shape[0];
9836 hid_t item_type1key;
9837 item_type1key=sha1_type_;
9838 hid_t item_type1val;
9839 item_type1val=H5T_NATIVE_FLOAT;
9840 hid_t item_type1compound;
9841 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
float));
9842 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9844 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9846 field_types[i]=item_type0;
9847 opened_types_.insert(item_type1compound);
9848 opened_types_.insert(field_types[i]);
9853 hsize_t shape01=shape[0];
9854 hid_t item_type1key;
9855 item_type1key=CreateFLStrType(shape[1]);
9856 hid_t item_type1val;
9857 item_type1val=H5T_NATIVE_FLOAT;
9858 hid_t item_type1compound;
9859 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
float));
9860 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9861 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
9862 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9863 dst_sizes[i]=((shape[1]+
sizeof(float))*shape[0]);
9864 field_types[i]=item_type0;
9865 opened_types_.insert(item_type1compound);
9866 opened_types_.insert(field_types[i]);
9870 }
else if(valtype==
typeid(std::map<std::string, double>)){
9872 if(shape.empty()||shape[0]<1&&shape[1]<1){
9875 hid_t item_type1key;
9876 item_type1key=sha1_type_;
9877 hid_t item_type1val;
9878 item_type1val=H5T_NATIVE_DOUBLE;
9879 hid_t item_type1compound;
9880 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
9881 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9883 item_type0=sha1_type_;
9890 field_types[i]=sha1_type_;
9892 }
else if(shape[0]<1&&shape[1]>=1){
9895 hid_t item_type1key;
9896 item_type1key=sha1_type_;
9897 hid_t item_type1val;
9898 item_type1val=H5T_NATIVE_DOUBLE;
9899 hid_t item_type1compound;
9900 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
9901 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9903 item_type0=sha1_type_;
9910 field_types[i]=sha1_type_;
9912 }
else if(shape[0]>=1&&shape[1]<1){
9915 hsize_t shape01=shape[0];
9916 hid_t item_type1key;
9917 item_type1key=sha1_type_;
9918 hid_t item_type1val;
9919 item_type1val=H5T_NATIVE_DOUBLE;
9920 hid_t item_type1compound;
9921 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
9922 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9924 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9926 field_types[i]=item_type0;
9927 opened_types_.insert(item_type1compound);
9928 opened_types_.insert(field_types[i]);
9933 hsize_t shape01=shape[0];
9934 hid_t item_type1key;
9935 item_type1key=CreateFLStrType(shape[1]);
9936 hid_t item_type1val;
9937 item_type1val=H5T_NATIVE_DOUBLE;
9938 hid_t item_type1compound;
9939 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+
sizeof(
double));
9940 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9941 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
9942 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
9943 dst_sizes[i]=((shape[1]+
sizeof(double))*shape[0]);
9944 field_types[i]=item_type0;
9945 opened_types_.insert(item_type1compound);
9946 opened_types_.insert(field_types[i]);
9950 }
else if(valtype==
typeid(std::map<std::string, std::string>)){
9952 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1){
9955 hid_t item_type1key;
9956 item_type1key=sha1_type_;
9957 hid_t item_type1val;
9958 item_type1val=sha1_type_;
9959 hid_t item_type1compound;
9961 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9963 item_type0=sha1_type_;
9970 field_types[i]=sha1_type_;
9972 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1){
9975 hid_t item_type1key;
9976 item_type1key=sha1_type_;
9977 hid_t item_type1val;
9978 item_type1val=sha1_type_;
9979 hid_t item_type1compound;
9981 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
9983 item_type0=sha1_type_;
9990 field_types[i]=sha1_type_;
9992 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1){
9995 hsize_t shape01=shape[0];
9996 hid_t item_type1key;
9997 item_type1key=CreateFLStrType(shape[1]);
9998 hid_t item_type1val;
9999 item_type1val=sha1_type_;
10000 hid_t item_type1compound;
10002 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10003 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10004 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10006 field_types[i]=item_type0;
10007 opened_types_.insert(item_type1compound);
10008 opened_types_.insert(field_types[i]);
10010 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1){
10013 hid_t item_type1key;
10014 item_type1key=sha1_type_;
10015 hid_t item_type1val;
10016 item_type1val=sha1_type_;
10017 hid_t item_type1compound;
10019 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10021 item_type0=sha1_type_;
10028 field_types[i]=sha1_type_;
10030 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1){
10033 hsize_t shape01=shape[0];
10034 hid_t item_type1key;
10035 item_type1key=sha1_type_;
10036 hid_t item_type1val;
10037 item_type1val=CreateFLStrType(shape[2]);
10038 hid_t item_type1compound;
10040 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10042 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10044 field_types[i]=item_type0;
10045 opened_types_.insert(item_type1compound);
10046 opened_types_.insert(field_types[i]);
10048 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1){
10051 hid_t item_type1key;
10052 item_type1key=sha1_type_;
10053 hid_t item_type1val;
10054 item_type1val=sha1_type_;
10055 hid_t item_type1compound;
10057 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10059 item_type0=sha1_type_;
10066 field_types[i]=sha1_type_;
10068 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1){
10071 hsize_t shape01=shape[0];
10072 hid_t item_type1key;
10073 item_type1key=sha1_type_;
10074 hid_t item_type1val;
10075 item_type1val=sha1_type_;
10076 hid_t item_type1compound;
10078 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10080 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10082 field_types[i]=item_type0;
10083 opened_types_.insert(item_type1compound);
10084 opened_types_.insert(field_types[i]);
10089 hsize_t shape01=shape[0];
10090 hid_t item_type1key;
10091 item_type1key=CreateFLStrType(shape[1]);
10092 hid_t item_type1val;
10093 item_type1val=CreateFLStrType(shape[2]);
10094 hid_t item_type1compound;
10095 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+shape[2]);
10096 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10097 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10098 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10099 dst_sizes[i]=((shape[1]+shape[2])*shape[0]);
10100 field_types[i]=item_type0;
10101 opened_types_.insert(item_type1compound);
10102 opened_types_.insert(field_types[i]);
10106 }
else if(valtype==
typeid(std::map<std::string, cyclus::Blob>)){
10108 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1){
10111 hid_t item_type1key;
10112 item_type1key=sha1_type_;
10113 hid_t item_type1val;
10114 item_type1val=sha1_type_;
10115 hid_t item_type1compound;
10117 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10119 item_type0=sha1_type_;
10126 field_types[i]=sha1_type_;
10128 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1){
10131 hid_t item_type1key;
10132 item_type1key=sha1_type_;
10133 hid_t item_type1val;
10134 item_type1val=sha1_type_;
10135 hid_t item_type1compound;
10137 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10139 item_type0=sha1_type_;
10146 field_types[i]=sha1_type_;
10148 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1){
10151 hsize_t shape01=shape[0];
10152 hid_t item_type1key;
10153 item_type1key=sha1_type_;
10154 hid_t item_type1val;
10155 item_type1val=sha1_type_;
10156 hid_t item_type1compound;
10158 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10160 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10162 field_types[i]=item_type0;
10163 opened_types_.insert(item_type1compound);
10164 opened_types_.insert(field_types[i]);
10169 hsize_t shape01=shape[0];
10170 hid_t item_type1key;
10171 item_type1key=CreateFLStrType(shape[1]);
10172 hid_t item_type1val;
10173 item_type1val=sha1_type_;
10174 hid_t item_type1compound;
10176 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10177 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10178 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10180 field_types[i]=item_type0;
10181 opened_types_.insert(item_type1compound);
10182 opened_types_.insert(field_types[i]);
10186 }
else if(valtype==
typeid(std::map<std::string, boost::uuids::uuid>)){
10188 if(shape.empty()||shape[0]<1&&shape[1]<1){
10191 hid_t item_type1key;
10192 item_type1key=sha1_type_;
10193 hid_t item_type1val;
10194 item_type1val=uuid_type_;
10195 hid_t item_type1compound;
10197 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10199 item_type0=sha1_type_;
10206 field_types[i]=sha1_type_;
10208 }
else if(shape[0]<1&&shape[1]>=1){
10211 hid_t item_type1key;
10212 item_type1key=sha1_type_;
10213 hid_t item_type1val;
10214 item_type1val=uuid_type_;
10215 hid_t item_type1compound;
10217 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10219 item_type0=sha1_type_;
10226 field_types[i]=sha1_type_;
10228 }
else if(shape[0]>=1&&shape[1]<1){
10231 hsize_t shape01=shape[0];
10232 hid_t item_type1key;
10233 item_type1key=sha1_type_;
10234 hid_t item_type1val;
10235 item_type1val=uuid_type_;
10236 hid_t item_type1compound;
10238 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10240 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10242 field_types[i]=item_type0;
10243 opened_types_.insert(item_type1compound);
10244 opened_types_.insert(field_types[i]);
10249 hsize_t shape01=shape[0];
10250 hid_t item_type1key;
10251 item_type1key=CreateFLStrType(shape[1]);
10252 hid_t item_type1val;
10253 item_type1val=uuid_type_;
10254 hid_t item_type1compound;
10256 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10257 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10258 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10260 field_types[i]=item_type0;
10261 opened_types_.insert(item_type1compound);
10262 opened_types_.insert(field_types[i]);
10266 }
else if(valtype==
typeid(std::map<std::pair<int, std::string>,
double>)){
10268 if(shape.empty()||shape[0]<1&&shape[3]<1){
10271 hid_t item_type1key;
10272 hid_t item_type2first;
10273 item_type2first=H5T_NATIVE_INT;
10274 hid_t item_type2second;
10275 item_type2second=sha1_type_;
10276 hid_t item_type2keycompound;
10277 item_type2keycompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
CYCLUS_SHA1_SIZE);
10278 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
10279 H5Tinsert(item_type2keycompound,
"second", 0+
sizeof(
int), item_type2second);
10280 hid_t item_type1val;
10281 item_type1val=H5T_NATIVE_DOUBLE;
10282 hid_t item_type1compound;
10283 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
int)+
CYCLUS_SHA1_SIZE))+
sizeof(
double));
10284 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
10285 H5Tinsert(item_type1compound,
"val", 0+((
sizeof(
int)+
CYCLUS_SHA1_SIZE)), item_type1val);
10286 item_type0=sha1_type_;
10293 field_types[i]=sha1_type_;
10295 }
else if(shape[0]<1&&shape[3]>=1){
10298 hid_t item_type1key;
10299 hid_t item_type2first;
10300 item_type2first=H5T_NATIVE_INT;
10301 hid_t item_type2second;
10302 item_type2second=sha1_type_;
10303 hid_t item_type2keycompound;
10304 item_type2keycompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
CYCLUS_SHA1_SIZE);
10305 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
10306 H5Tinsert(item_type2keycompound,
"second", 0+
sizeof(
int), item_type2second);
10307 hid_t item_type1val;
10308 item_type1val=H5T_NATIVE_DOUBLE;
10309 hid_t item_type1compound;
10310 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
int)+
CYCLUS_SHA1_SIZE))+
sizeof(
double));
10311 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
10312 H5Tinsert(item_type1compound,
"val", 0+((
sizeof(
int)+
CYCLUS_SHA1_SIZE)), item_type1val);
10313 item_type0=sha1_type_;
10320 field_types[i]=sha1_type_;
10322 }
else if(shape[0]>=1&&shape[3]<1){
10325 hsize_t shape01=shape[0];
10326 hid_t item_type1key;
10327 hid_t item_type2first;
10328 item_type2first=H5T_NATIVE_INT;
10329 hid_t item_type2second;
10330 item_type2second=sha1_type_;
10331 hid_t item_type2keycompound;
10332 item_type2keycompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
CYCLUS_SHA1_SIZE);
10333 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
10334 H5Tinsert(item_type2keycompound,
"second", 0+
sizeof(
int), item_type2second);
10335 hid_t item_type1val;
10336 item_type1val=H5T_NATIVE_DOUBLE;
10337 hid_t item_type1compound;
10338 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
int)+
CYCLUS_SHA1_SIZE))+
sizeof(
double));
10339 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
10340 H5Tinsert(item_type1compound,
"val", 0+((
sizeof(
int)+
CYCLUS_SHA1_SIZE)), item_type1val);
10341 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10342 dst_sizes[i]=((((
sizeof(int)+
CYCLUS_SHA1_SIZE))+
sizeof(
double))*shape[0]);
10343 field_types[i]=item_type0;
10344 opened_types_.insert(item_type2keycompound);
10345 opened_types_.insert(item_type1compound);
10346 opened_types_.insert(field_types[i]);
10351 hsize_t shape01=shape[0];
10352 hid_t item_type1key;
10353 hid_t item_type2first;
10354 item_type2first=H5T_NATIVE_INT;
10355 hid_t item_type2second;
10356 item_type2second=CreateFLStrType(shape[3]);
10357 hid_t item_type2keycompound;
10358 item_type2keycompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+shape[3]);
10359 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
10360 H5Tinsert(item_type2keycompound,
"second", 0+
sizeof(
int), item_type2second);
10361 hid_t item_type1val;
10362 item_type1val=H5T_NATIVE_DOUBLE;
10363 hid_t item_type1compound;
10364 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
int)+shape[3]))+
sizeof(
double));
10365 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
10366 H5Tinsert(item_type1compound,
"val", 0+((
sizeof(
int)+shape[3])), item_type1val);
10367 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10368 dst_sizes[i]=((((
sizeof(int)+shape[3]))+
sizeof(
double))*shape[0]);
10369 field_types[i]=item_type0;
10370 opened_types_.insert(item_type2keycompound);
10371 opened_types_.insert(item_type1compound);
10372 opened_types_.insert(field_types[i]);
10376 }
else if(valtype==
typeid(std::map<std::string, std::vector<double>>)){
10378 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1){
10381 hid_t item_type1key;
10382 item_type1key=sha1_type_;
10383 hid_t item_type1val;
10384 hid_t item_type2elem;
10385 item_type2elem=H5T_NATIVE_DOUBLE;
10386 item_type1val=sha1_type_;
10392 hid_t item_type1compound;
10394 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10396 item_type0=sha1_type_;
10403 field_types[i]=sha1_type_;
10405 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1){
10408 hsize_t shape01=shape[0];
10409 hid_t item_type1key;
10410 item_type1key=CreateFLStrType(shape[1]);
10411 hid_t item_type1val;
10412 hid_t item_type2elem;
10413 item_type2elem=H5T_NATIVE_DOUBLE;
10414 item_type1val=sha1_type_;
10420 hid_t item_type1compound;
10422 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10423 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10424 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10426 field_types[i]=item_type0;
10427 opened_types_.insert(item_type1val);
10428 opened_types_.insert(item_type1compound);
10429 opened_types_.insert(field_types[i]);
10431 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1){
10434 hid_t item_type1key;
10435 item_type1key=sha1_type_;
10436 hid_t item_type1val;
10437 hsize_t shape02=shape[2];
10438 hid_t item_type2elem;
10439 item_type2elem=H5T_NATIVE_DOUBLE;
10440 item_type1val=sha1_type_;
10446 hid_t item_type1compound;
10448 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10450 item_type0=sha1_type_;
10457 field_types[i]=sha1_type_;
10459 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1){
10462 hsize_t shape01=shape[0];
10463 hid_t item_type1key;
10464 item_type1key=sha1_type_;
10465 hid_t item_type1val;
10466 hsize_t shape02=shape[2];
10467 hid_t item_type2elem;
10468 item_type2elem=H5T_NATIVE_DOUBLE;
10469 item_type1val=H5Tarray_create2(item_type2elem, 1, &shape02);
10470 hid_t item_type1compound;
10471 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((
sizeof(
double))*shape[2]));
10472 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10474 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10476 field_types[i]=item_type0;
10477 opened_types_.insert(item_type1val);
10478 opened_types_.insert(item_type1compound);
10479 opened_types_.insert(field_types[i]);
10481 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1){
10484 hsize_t shape01=shape[0];
10485 hid_t item_type1key;
10486 item_type1key=sha1_type_;
10487 hid_t item_type1val;
10488 hid_t item_type2elem;
10489 item_type2elem=H5T_NATIVE_DOUBLE;
10490 item_type1val=sha1_type_;
10496 hid_t item_type1compound;
10498 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10500 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10502 field_types[i]=item_type0;
10503 opened_types_.insert(item_type1val);
10504 opened_types_.insert(item_type1compound);
10505 opened_types_.insert(field_types[i]);
10507 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1){
10510 hid_t item_type1key;
10511 item_type1key=sha1_type_;
10512 hid_t item_type1val;
10513 hid_t item_type2elem;
10514 item_type2elem=H5T_NATIVE_DOUBLE;
10515 item_type1val=sha1_type_;
10521 hid_t item_type1compound;
10523 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10525 item_type0=sha1_type_;
10532 field_types[i]=sha1_type_;
10534 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1){
10537 hid_t item_type1key;
10538 item_type1key=sha1_type_;
10539 hid_t item_type1val;
10540 hsize_t shape02=shape[2];
10541 hid_t item_type2elem;
10542 item_type2elem=H5T_NATIVE_DOUBLE;
10543 item_type1val=sha1_type_;
10549 hid_t item_type1compound;
10551 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10553 item_type0=sha1_type_;
10560 field_types[i]=sha1_type_;
10565 hsize_t shape01=shape[0];
10566 hid_t item_type1key;
10567 item_type1key=CreateFLStrType(shape[1]);
10568 hid_t item_type1val;
10569 hsize_t shape02=shape[2];
10570 hid_t item_type2elem;
10571 item_type2elem=H5T_NATIVE_DOUBLE;
10572 item_type1val=H5Tarray_create2(item_type2elem, 1, &shape02);
10573 hid_t item_type1compound;
10574 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
sizeof(
double))*shape[2]));
10575 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10576 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10577 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10578 dst_sizes[i]=((shape[1]+((
sizeof(double))*shape[2]))*shape[0]);
10579 field_types[i]=item_type0;
10580 opened_types_.insert(item_type1val);
10581 opened_types_.insert(item_type1compound);
10582 opened_types_.insert(field_types[i]);
10586 }
else if(valtype==
typeid(std::map<std::string, std::map<int, double>>)){
10588 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1){
10591 hid_t item_type1key;
10592 item_type1key=sha1_type_;
10593 hid_t item_type1val;
10594 hid_t item_type2key;
10595 item_type2key=H5T_NATIVE_INT;
10596 hid_t item_type2val;
10597 item_type2val=H5T_NATIVE_DOUBLE;
10598 hid_t item_type2valcompound;
10599 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10600 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10601 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10602 item_type1val=sha1_type_;
10608 hid_t item_type1compound;
10610 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10612 item_type0=sha1_type_;
10619 field_types[i]=sha1_type_;
10621 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1){
10624 hsize_t shape01=shape[0];
10625 hid_t item_type1key;
10626 item_type1key=CreateFLStrType(shape[1]);
10627 hid_t item_type1val;
10628 hid_t item_type2key;
10629 item_type2key=H5T_NATIVE_INT;
10630 hid_t item_type2val;
10631 item_type2val=H5T_NATIVE_DOUBLE;
10632 hid_t item_type2valcompound;
10633 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10634 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10635 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10636 item_type1val=sha1_type_;
10642 hid_t item_type1compound;
10644 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10645 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10646 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10648 field_types[i]=item_type0;
10649 opened_types_.insert(item_type2valcompound);
10650 opened_types_.insert(item_type1val);
10651 opened_types_.insert(item_type1compound);
10652 opened_types_.insert(field_types[i]);
10654 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1){
10657 hid_t item_type1key;
10658 item_type1key=sha1_type_;
10659 hid_t item_type1val;
10660 hsize_t shape02=shape[2];
10661 hid_t item_type2key;
10662 item_type2key=H5T_NATIVE_INT;
10663 hid_t item_type2val;
10664 item_type2val=H5T_NATIVE_DOUBLE;
10665 hid_t item_type2valcompound;
10666 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10667 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10668 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10669 item_type1val=sha1_type_;
10675 hid_t item_type1compound;
10677 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10679 item_type0=sha1_type_;
10686 field_types[i]=sha1_type_;
10688 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1){
10691 hsize_t shape01=shape[0];
10692 hid_t item_type1key;
10693 item_type1key=sha1_type_;
10694 hid_t item_type1val;
10695 hsize_t shape02=shape[2];
10696 hid_t item_type2key;
10697 item_type2key=H5T_NATIVE_INT;
10698 hid_t item_type2val;
10699 item_type2val=H5T_NATIVE_DOUBLE;
10700 hid_t item_type2valcompound;
10701 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10702 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10703 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10704 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
10705 hid_t item_type1compound;
10706 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((
sizeof(
int)+
sizeof(
double))*shape[2]));
10707 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10709 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10710 dst_sizes[i]=((
CYCLUS_SHA1_SIZE+((
sizeof(int)+
sizeof(
double))*shape[2]))*shape[0]);
10711 field_types[i]=item_type0;
10712 opened_types_.insert(item_type2valcompound);
10713 opened_types_.insert(item_type1val);
10714 opened_types_.insert(item_type1compound);
10715 opened_types_.insert(field_types[i]);
10717 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1){
10720 hsize_t shape01=shape[0];
10721 hid_t item_type1key;
10722 item_type1key=sha1_type_;
10723 hid_t item_type1val;
10724 hid_t item_type2key;
10725 item_type2key=H5T_NATIVE_INT;
10726 hid_t item_type2val;
10727 item_type2val=H5T_NATIVE_DOUBLE;
10728 hid_t item_type2valcompound;
10729 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10730 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10731 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10732 item_type1val=sha1_type_;
10738 hid_t item_type1compound;
10740 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10742 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10744 field_types[i]=item_type0;
10745 opened_types_.insert(item_type2valcompound);
10746 opened_types_.insert(item_type1val);
10747 opened_types_.insert(item_type1compound);
10748 opened_types_.insert(field_types[i]);
10750 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1){
10753 hid_t item_type1key;
10754 item_type1key=sha1_type_;
10755 hid_t item_type1val;
10756 hid_t item_type2key;
10757 item_type2key=H5T_NATIVE_INT;
10758 hid_t item_type2val;
10759 item_type2val=H5T_NATIVE_DOUBLE;
10760 hid_t item_type2valcompound;
10761 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10762 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10763 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10764 item_type1val=sha1_type_;
10770 hid_t item_type1compound;
10772 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10774 item_type0=sha1_type_;
10781 field_types[i]=sha1_type_;
10783 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1){
10786 hid_t item_type1key;
10787 item_type1key=sha1_type_;
10788 hid_t item_type1val;
10789 hsize_t shape02=shape[2];
10790 hid_t item_type2key;
10791 item_type2key=H5T_NATIVE_INT;
10792 hid_t item_type2val;
10793 item_type2val=H5T_NATIVE_DOUBLE;
10794 hid_t item_type2valcompound;
10795 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10796 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10797 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10798 item_type1val=sha1_type_;
10804 hid_t item_type1compound;
10806 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10808 item_type0=sha1_type_;
10815 field_types[i]=sha1_type_;
10820 hsize_t shape01=shape[0];
10821 hid_t item_type1key;
10822 item_type1key=CreateFLStrType(shape[1]);
10823 hid_t item_type1val;
10824 hsize_t shape02=shape[2];
10825 hid_t item_type2key;
10826 item_type2key=H5T_NATIVE_INT;
10827 hid_t item_type2val;
10828 item_type2val=H5T_NATIVE_DOUBLE;
10829 hid_t item_type2valcompound;
10830 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10831 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
10832 H5Tinsert(item_type2valcompound,
"val", 0+
sizeof(
int), item_type2val);
10833 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
10834 hid_t item_type1compound;
10835 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
sizeof(
int)+
sizeof(
double))*shape[2]));
10836 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10837 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
10838 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10839 dst_sizes[i]=((shape[1]+((
sizeof(int)+
sizeof(
double))*shape[2]))*shape[0]);
10840 field_types[i]=item_type0;
10841 opened_types_.insert(item_type2valcompound);
10842 opened_types_.insert(item_type1val);
10843 opened_types_.insert(item_type1compound);
10844 opened_types_.insert(field_types[i]);
10848 }
else if(valtype==
typeid(std::map<std::string, std::pair<
double, std::map<int, double>>>)){
10850 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[4]<1){
10853 hid_t item_type1key;
10854 item_type1key=sha1_type_;
10855 hid_t item_type1val;
10856 hid_t item_type2first;
10857 item_type2first=H5T_NATIVE_DOUBLE;
10858 hid_t item_type2second;
10859 hid_t item_type3key;
10860 item_type3key=H5T_NATIVE_INT;
10861 hid_t item_type3val;
10862 item_type3val=H5T_NATIVE_DOUBLE;
10863 hid_t item_type3secondcompound;
10864 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10865 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
10866 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
10867 item_type2second=sha1_type_;
10873 hid_t item_type2valcompound;
10874 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
10875 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
10876 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
10877 hid_t item_type1compound;
10879 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10880 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
10881 item_type0=sha1_type_;
10888 field_types[i]=sha1_type_;
10890 }
else if(shape[0]<1&&shape[1]>=1&&shape[4]>=1){
10893 hid_t item_type1key;
10894 item_type1key=sha1_type_;
10895 hid_t item_type1val;
10896 hid_t item_type2first;
10897 item_type2first=H5T_NATIVE_DOUBLE;
10898 hid_t item_type2second;
10899 hsize_t shape03=shape[4];
10900 hid_t item_type3key;
10901 item_type3key=H5T_NATIVE_INT;
10902 hid_t item_type3val;
10903 item_type3val=H5T_NATIVE_DOUBLE;
10904 hid_t item_type3secondcompound;
10905 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10906 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
10907 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
10908 item_type2second=sha1_type_;
10914 hid_t item_type2valcompound;
10915 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
10916 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
10917 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
10918 hid_t item_type1compound;
10920 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10921 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
10922 item_type0=sha1_type_;
10929 field_types[i]=sha1_type_;
10931 }
else if(shape[0]>=1&&shape[1]<1&&shape[4]>=1){
10934 hsize_t shape01=shape[0];
10935 hid_t item_type1key;
10936 item_type1key=sha1_type_;
10937 hid_t item_type1val;
10938 hid_t item_type2first;
10939 item_type2first=H5T_NATIVE_DOUBLE;
10940 hid_t item_type2second;
10941 hsize_t shape03=shape[4];
10942 hid_t item_type3key;
10943 item_type3key=H5T_NATIVE_INT;
10944 hid_t item_type3val;
10945 item_type3val=H5T_NATIVE_DOUBLE;
10946 hid_t item_type3secondcompound;
10947 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10948 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
10949 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
10950 item_type2second=H5Tarray_create2(item_type3secondcompound, 1, &shape03);
10951 hid_t item_type2valcompound;
10952 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+((
sizeof(
int)+
sizeof(
double))*shape[4]));
10953 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
10954 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
10955 hid_t item_type1compound;
10956 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((
sizeof(
double)+((
sizeof(
int)+
sizeof(
double))*shape[4]))));
10957 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10958 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
10959 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
10960 dst_sizes[i]=((
CYCLUS_SHA1_SIZE+((
sizeof(double)+((
sizeof(
int)+
sizeof(
double))*shape[4]))))*shape[0]);
10961 field_types[i]=item_type0;
10962 opened_types_.insert(item_type3secondcompound);
10963 opened_types_.insert(item_type2second);
10964 opened_types_.insert(item_type2valcompound);
10965 opened_types_.insert(item_type1compound);
10966 opened_types_.insert(field_types[i]);
10968 }
else if(shape[0]>=1&&shape[1]>=1&&shape[4]<1){
10971 hsize_t shape01=shape[0];
10972 hid_t item_type1key;
10973 item_type1key=CreateFLStrType(shape[1]);
10974 hid_t item_type1val;
10975 hid_t item_type2first;
10976 item_type2first=H5T_NATIVE_DOUBLE;
10977 hid_t item_type2second;
10978 hid_t item_type3key;
10979 item_type3key=H5T_NATIVE_INT;
10980 hid_t item_type3val;
10981 item_type3val=H5T_NATIVE_DOUBLE;
10982 hid_t item_type3secondcompound;
10983 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
10984 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
10985 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
10986 item_type2second=sha1_type_;
10992 hid_t item_type2valcompound;
10993 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
10994 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
10995 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
10996 hid_t item_type1compound;
10997 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
sizeof(
double)+(
CYCLUS_SHA1_SIZE))));
10998 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
10999 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type2valcompound);
11000 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11002 field_types[i]=item_type0;
11003 opened_types_.insert(item_type3secondcompound);
11004 opened_types_.insert(item_type2second);
11005 opened_types_.insert(item_type2valcompound);
11006 opened_types_.insert(item_type1compound);
11007 opened_types_.insert(field_types[i]);
11009 }
else if(shape[0]<1&&shape[1]<1&&shape[4]>=1){
11012 hid_t item_type1key;
11013 item_type1key=sha1_type_;
11014 hid_t item_type1val;
11015 hid_t item_type2first;
11016 item_type2first=H5T_NATIVE_DOUBLE;
11017 hid_t item_type2second;
11018 hsize_t shape03=shape[4];
11019 hid_t item_type3key;
11020 item_type3key=H5T_NATIVE_INT;
11021 hid_t item_type3val;
11022 item_type3val=H5T_NATIVE_DOUBLE;
11023 hid_t item_type3secondcompound;
11024 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
11025 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
11026 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
11027 item_type2second=sha1_type_;
11033 hid_t item_type2valcompound;
11034 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
11035 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
11036 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
11037 hid_t item_type1compound;
11039 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11040 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
11041 item_type0=sha1_type_;
11048 field_types[i]=sha1_type_;
11050 }
else if(shape[0]<1&&shape[1]>=1&&shape[4]<1){
11053 hid_t item_type1key;
11054 item_type1key=sha1_type_;
11055 hid_t item_type1val;
11056 hid_t item_type2first;
11057 item_type2first=H5T_NATIVE_DOUBLE;
11058 hid_t item_type2second;
11059 hid_t item_type3key;
11060 item_type3key=H5T_NATIVE_INT;
11061 hid_t item_type3val;
11062 item_type3val=H5T_NATIVE_DOUBLE;
11063 hid_t item_type3secondcompound;
11064 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
11065 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
11066 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
11067 item_type2second=sha1_type_;
11073 hid_t item_type2valcompound;
11074 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
11075 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
11076 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
11077 hid_t item_type1compound;
11079 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11080 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
11081 item_type0=sha1_type_;
11088 field_types[i]=sha1_type_;
11090 }
else if(shape[0]>=1&&shape[1]<1&&shape[4]<1){
11093 hsize_t shape01=shape[0];
11094 hid_t item_type1key;
11095 item_type1key=sha1_type_;
11096 hid_t item_type1val;
11097 hid_t item_type2first;
11098 item_type2first=H5T_NATIVE_DOUBLE;
11099 hid_t item_type2second;
11100 hid_t item_type3key;
11101 item_type3key=H5T_NATIVE_INT;
11102 hid_t item_type3val;
11103 item_type3val=H5T_NATIVE_DOUBLE;
11104 hid_t item_type3secondcompound;
11105 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
11106 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
11107 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
11108 item_type2second=sha1_type_;
11114 hid_t item_type2valcompound;
11115 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
11116 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
11117 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
11118 hid_t item_type1compound;
11120 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11121 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
11122 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11124 field_types[i]=item_type0;
11125 opened_types_.insert(item_type3secondcompound);
11126 opened_types_.insert(item_type2second);
11127 opened_types_.insert(item_type2valcompound);
11128 opened_types_.insert(item_type1compound);
11129 opened_types_.insert(field_types[i]);
11134 hsize_t shape01=shape[0];
11135 hid_t item_type1key;
11136 item_type1key=CreateFLStrType(shape[1]);
11137 hid_t item_type1val;
11138 hid_t item_type2first;
11139 item_type2first=H5T_NATIVE_DOUBLE;
11140 hid_t item_type2second;
11141 hsize_t shape03=shape[4];
11142 hid_t item_type3key;
11143 item_type3key=H5T_NATIVE_INT;
11144 hid_t item_type3val;
11145 item_type3val=H5T_NATIVE_DOUBLE;
11146 hid_t item_type3secondcompound;
11147 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
11148 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
11149 H5Tinsert(item_type3secondcompound,
"val", 0+
sizeof(
int), item_type3val);
11150 item_type2second=H5Tarray_create2(item_type3secondcompound, 1, &shape03);
11151 hid_t item_type2valcompound;
11152 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+((
sizeof(
int)+
sizeof(
double))*shape[4]));
11153 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
11154 H5Tinsert(item_type2valcompound,
"second", 0+
sizeof(
double), item_type2second);
11155 hid_t item_type1compound;
11156 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
sizeof(
double)+((
sizeof(
int)+
sizeof(
double))*shape[4]))));
11157 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11158 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type2valcompound);
11159 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11160 dst_sizes[i]=((shape[1]+((
sizeof(double)+((
sizeof(
int)+
sizeof(
double))*shape[4]))))*shape[0]);
11161 field_types[i]=item_type0;
11162 opened_types_.insert(item_type3secondcompound);
11163 opened_types_.insert(item_type2second);
11164 opened_types_.insert(item_type2valcompound);
11165 opened_types_.insert(item_type1compound);
11166 opened_types_.insert(field_types[i]);
11170 }
else if(valtype==
typeid(std::map<
int, std::map<std::string, double>>)){
11172 if(shape.empty()||shape[0]<1&&shape[2]<1&&shape[3]<1){
11175 hid_t item_type1key;
11176 item_type1key=H5T_NATIVE_INT;
11177 hid_t item_type1val;
11178 hid_t item_type2key;
11179 item_type2key=sha1_type_;
11180 hid_t item_type2val;
11181 item_type2val=H5T_NATIVE_DOUBLE;
11182 hid_t item_type2valcompound;
11183 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11184 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11185 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11186 item_type1val=sha1_type_;
11192 hid_t item_type1compound;
11193 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+(
CYCLUS_SHA1_SIZE));
11194 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11195 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11196 item_type0=sha1_type_;
11203 field_types[i]=sha1_type_;
11205 }
else if(shape[0]>=1&&shape[2]>=1&&shape[3]<1){
11208 hsize_t shape01=shape[0];
11209 hid_t item_type1key;
11210 item_type1key=H5T_NATIVE_INT;
11211 hid_t item_type1val;
11212 hsize_t shape02=shape[2];
11213 hid_t item_type2key;
11214 item_type2key=sha1_type_;
11215 hid_t item_type2val;
11216 item_type2val=H5T_NATIVE_DOUBLE;
11217 hid_t item_type2valcompound;
11218 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11219 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11220 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11221 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
11222 hid_t item_type1compound;
11223 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((
CYCLUS_SHA1_SIZE+
sizeof(
double))*shape[2]));
11224 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11225 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11226 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11227 dst_sizes[i]=((
sizeof(int)+((
CYCLUS_SHA1_SIZE+
sizeof(
double))*shape[2]))*shape[0]);
11228 field_types[i]=item_type0;
11229 opened_types_.insert(item_type2valcompound);
11230 opened_types_.insert(item_type1val);
11231 opened_types_.insert(item_type1compound);
11232 opened_types_.insert(field_types[i]);
11234 }
else if(shape[0]<1&&shape[2]>=1&&shape[3]>=1){
11237 hid_t item_type1key;
11238 item_type1key=H5T_NATIVE_INT;
11239 hid_t item_type1val;
11240 hsize_t shape02=shape[2];
11241 hid_t item_type2key;
11242 item_type2key=sha1_type_;
11243 hid_t item_type2val;
11244 item_type2val=H5T_NATIVE_DOUBLE;
11245 hid_t item_type2valcompound;
11246 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11247 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11248 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11249 item_type1val=sha1_type_;
11255 hid_t item_type1compound;
11256 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+(
CYCLUS_SHA1_SIZE));
11257 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11258 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11259 item_type0=sha1_type_;
11266 field_types[i]=sha1_type_;
11268 }
else if(shape[0]<1&&shape[2]>=1&&shape[3]<1){
11271 hid_t item_type1key;
11272 item_type1key=H5T_NATIVE_INT;
11273 hid_t item_type1val;
11274 hsize_t shape02=shape[2];
11275 hid_t item_type2key;
11276 item_type2key=sha1_type_;
11277 hid_t item_type2val;
11278 item_type2val=H5T_NATIVE_DOUBLE;
11279 hid_t item_type2valcompound;
11280 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11281 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11282 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11283 item_type1val=sha1_type_;
11289 hid_t item_type1compound;
11290 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+(
CYCLUS_SHA1_SIZE));
11291 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11292 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11293 item_type0=sha1_type_;
11300 field_types[i]=sha1_type_;
11302 }
else if(shape[0]>=1&&shape[2]<1&&shape[3]>=1){
11305 hsize_t shape01=shape[0];
11306 hid_t item_type1key;
11307 item_type1key=H5T_NATIVE_INT;
11308 hid_t item_type1val;
11309 hid_t item_type2key;
11310 item_type2key=sha1_type_;
11311 hid_t item_type2val;
11312 item_type2val=H5T_NATIVE_DOUBLE;
11313 hid_t item_type2valcompound;
11314 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11315 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11316 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11317 item_type1val=sha1_type_;
11323 hid_t item_type1compound;
11324 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+(
CYCLUS_SHA1_SIZE));
11325 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11326 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11327 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11329 field_types[i]=item_type0;
11330 opened_types_.insert(item_type2valcompound);
11331 opened_types_.insert(item_type1val);
11332 opened_types_.insert(item_type1compound);
11333 opened_types_.insert(field_types[i]);
11335 }
else if(shape[0]>=1&&shape[2]<1&&shape[3]<1){
11338 hsize_t shape01=shape[0];
11339 hid_t item_type1key;
11340 item_type1key=H5T_NATIVE_INT;
11341 hid_t item_type1val;
11342 hid_t item_type2key;
11343 item_type2key=sha1_type_;
11344 hid_t item_type2val;
11345 item_type2val=H5T_NATIVE_DOUBLE;
11346 hid_t item_type2valcompound;
11347 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11348 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11349 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11350 item_type1val=sha1_type_;
11356 hid_t item_type1compound;
11357 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+(
CYCLUS_SHA1_SIZE));
11358 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11359 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11360 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11362 field_types[i]=item_type0;
11363 opened_types_.insert(item_type2valcompound);
11364 opened_types_.insert(item_type1val);
11365 opened_types_.insert(item_type1compound);
11366 opened_types_.insert(field_types[i]);
11368 }
else if(shape[0]<1&&shape[2]<1&&shape[3]>=1){
11371 hid_t item_type1key;
11372 item_type1key=H5T_NATIVE_INT;
11373 hid_t item_type1val;
11374 hid_t item_type2key;
11375 item_type2key=sha1_type_;
11376 hid_t item_type2val;
11377 item_type2val=H5T_NATIVE_DOUBLE;
11378 hid_t item_type2valcompound;
11379 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
11380 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11381 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
11382 item_type1val=sha1_type_;
11388 hid_t item_type1compound;
11389 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+(
CYCLUS_SHA1_SIZE));
11390 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11391 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11392 item_type0=sha1_type_;
11399 field_types[i]=sha1_type_;
11404 hsize_t shape01=shape[0];
11405 hid_t item_type1key;
11406 item_type1key=H5T_NATIVE_INT;
11407 hid_t item_type1val;
11408 hsize_t shape02=shape[2];
11409 hid_t item_type2key;
11410 item_type2key=CreateFLStrType(shape[3]);
11411 hid_t item_type2val;
11412 item_type2val=H5T_NATIVE_DOUBLE;
11413 hid_t item_type2valcompound;
11414 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+
sizeof(
double));
11415 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
11416 H5Tinsert(item_type2valcompound,
"val", 0+shape[3], item_type2val);
11417 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
11418 hid_t item_type1compound;
11419 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[3]+
sizeof(
double))*shape[2]));
11420 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11421 H5Tinsert(item_type1compound,
"val", 0+
sizeof(
int), item_type1val);
11422 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11423 dst_sizes[i]=((
sizeof(int)+((shape[3]+
sizeof(
double))*shape[2]))*shape[0]);
11424 field_types[i]=item_type0;
11425 opened_types_.insert(item_type2valcompound);
11426 opened_types_.insert(item_type1val);
11427 opened_types_.insert(item_type1compound);
11428 opened_types_.insert(field_types[i]);
11432 }
else if(valtype==
typeid(std::map<std::string, std::vector<std::pair<
int, std::pair<std::string, std::string>>>>)){
11434 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[6]<1&&shape[7]<1){
11437 hid_t item_type1key;
11438 item_type1key=sha1_type_;
11439 hid_t item_type1val;
11440 hid_t item_type2elem;
11441 hid_t item_type3first;
11442 item_type3first=H5T_NATIVE_INT;
11443 hid_t item_type3second;
11444 hid_t item_type4first;
11445 item_type4first=sha1_type_;
11446 hid_t item_type4second;
11447 item_type4second=sha1_type_;
11448 hid_t item_type4secondcompound;
11450 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11451 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11452 hid_t item_type3elemcompound;
11454 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11455 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11456 item_type1val=sha1_type_;
11462 hid_t item_type1compound;
11464 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11466 item_type0=sha1_type_;
11473 field_types[i]=sha1_type_;
11475 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]>=1&&shape[6]>=1&&shape[7]<1){
11478 hsize_t shape01=shape[0];
11479 hid_t item_type1key;
11480 item_type1key=CreateFLStrType(shape[1]);
11481 hid_t item_type1val;
11482 hsize_t shape02=shape[2];
11483 hid_t item_type2elem;
11484 hid_t item_type3first;
11485 item_type3first=H5T_NATIVE_INT;
11486 hid_t item_type3second;
11487 hid_t item_type4first;
11488 item_type4first=CreateFLStrType(shape[6]);
11489 hid_t item_type4second;
11490 item_type4second=sha1_type_;
11491 hid_t item_type4secondcompound;
11492 item_type4secondcompound=H5Tcreate(H5T_COMPOUND, shape[6]+
CYCLUS_SHA1_SIZE);
11493 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11494 H5Tinsert(item_type4secondcompound,
"second", 0+shape[6], item_type4second);
11495 hid_t item_type3elemcompound;
11496 item_type3elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[6]+
CYCLUS_SHA1_SIZE)));
11497 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11498 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11499 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11500 hid_t item_type1compound;
11501 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((((
sizeof(
int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]));
11502 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11503 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11504 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11505 dst_sizes[i]=((shape[1]+((((
sizeof(int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]))*shape[0]);
11506 field_types[i]=item_type0;
11507 opened_types_.insert(item_type4secondcompound);
11508 opened_types_.insert(item_type3elemcompound);
11509 opened_types_.insert(item_type1val);
11510 opened_types_.insert(item_type1compound);
11511 opened_types_.insert(field_types[i]);
11513 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]>=1&&shape[6]<1&&shape[7]>=1){
11516 hsize_t shape01=shape[0];
11517 hid_t item_type1key;
11518 item_type1key=CreateFLStrType(shape[1]);
11519 hid_t item_type1val;
11520 hsize_t shape02=shape[2];
11521 hid_t item_type2elem;
11522 hid_t item_type3first;
11523 item_type3first=H5T_NATIVE_INT;
11524 hid_t item_type3second;
11525 hid_t item_type4first;
11526 item_type4first=sha1_type_;
11527 hid_t item_type4second;
11528 item_type4second=CreateFLStrType(shape[7]);
11529 hid_t item_type4secondcompound;
11530 item_type4secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+shape[7]);
11531 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11532 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11533 hid_t item_type3elemcompound;
11534 item_type3elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((
CYCLUS_SHA1_SIZE+shape[7])));
11535 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11536 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11537 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11538 hid_t item_type1compound;
11539 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((((
sizeof(
int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]));
11540 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11541 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11542 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11543 dst_sizes[i]=((shape[1]+((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]))*shape[0]);
11544 field_types[i]=item_type0;
11545 opened_types_.insert(item_type4secondcompound);
11546 opened_types_.insert(item_type3elemcompound);
11547 opened_types_.insert(item_type1val);
11548 opened_types_.insert(item_type1compound);
11549 opened_types_.insert(field_types[i]);
11551 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]>=1&&shape[6]<1&&shape[7]<1){
11554 hsize_t shape01=shape[0];
11555 hid_t item_type1key;
11556 item_type1key=CreateFLStrType(shape[1]);
11557 hid_t item_type1val;
11558 hsize_t shape02=shape[2];
11559 hid_t item_type2elem;
11560 hid_t item_type3first;
11561 item_type3first=H5T_NATIVE_INT;
11562 hid_t item_type3second;
11563 hid_t item_type4first;
11564 item_type4first=sha1_type_;
11565 hid_t item_type4second;
11566 item_type4second=sha1_type_;
11567 hid_t item_type4secondcompound;
11569 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11570 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11571 hid_t item_type3elemcompound;
11573 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11574 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11575 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11576 hid_t item_type1compound;
11578 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11579 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11580 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11582 field_types[i]=item_type0;
11583 opened_types_.insert(item_type4secondcompound);
11584 opened_types_.insert(item_type3elemcompound);
11585 opened_types_.insert(item_type1val);
11586 opened_types_.insert(item_type1compound);
11587 opened_types_.insert(field_types[i]);
11589 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[6]>=1&&shape[7]>=1){
11592 hsize_t shape01=shape[0];
11593 hid_t item_type1key;
11594 item_type1key=CreateFLStrType(shape[1]);
11595 hid_t item_type1val;
11596 hid_t item_type2elem;
11597 hid_t item_type3first;
11598 item_type3first=H5T_NATIVE_INT;
11599 hid_t item_type3second;
11600 hid_t item_type4first;
11601 item_type4first=sha1_type_;
11602 hid_t item_type4second;
11603 item_type4second=sha1_type_;
11604 hid_t item_type4secondcompound;
11606 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11607 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11608 hid_t item_type3elemcompound;
11610 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11611 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11612 item_type1val=sha1_type_;
11618 hid_t item_type1compound;
11620 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11621 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11622 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11624 field_types[i]=item_type0;
11625 opened_types_.insert(item_type4secondcompound);
11626 opened_types_.insert(item_type3elemcompound);
11627 opened_types_.insert(item_type1val);
11628 opened_types_.insert(item_type1compound);
11629 opened_types_.insert(field_types[i]);
11631 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[6]>=1&&shape[7]<1){
11634 hsize_t shape01=shape[0];
11635 hid_t item_type1key;
11636 item_type1key=CreateFLStrType(shape[1]);
11637 hid_t item_type1val;
11638 hid_t item_type2elem;
11639 hid_t item_type3first;
11640 item_type3first=H5T_NATIVE_INT;
11641 hid_t item_type3second;
11642 hid_t item_type4first;
11643 item_type4first=sha1_type_;
11644 hid_t item_type4second;
11645 item_type4second=sha1_type_;
11646 hid_t item_type4secondcompound;
11648 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11649 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11650 hid_t item_type3elemcompound;
11652 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11653 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11654 item_type1val=sha1_type_;
11660 hid_t item_type1compound;
11662 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11663 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11664 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11666 field_types[i]=item_type0;
11667 opened_types_.insert(item_type4secondcompound);
11668 opened_types_.insert(item_type3elemcompound);
11669 opened_types_.insert(item_type1val);
11670 opened_types_.insert(item_type1compound);
11671 opened_types_.insert(field_types[i]);
11673 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[6]<1&&shape[7]>=1){
11676 hsize_t shape01=shape[0];
11677 hid_t item_type1key;
11678 item_type1key=CreateFLStrType(shape[1]);
11679 hid_t item_type1val;
11680 hid_t item_type2elem;
11681 hid_t item_type3first;
11682 item_type3first=H5T_NATIVE_INT;
11683 hid_t item_type3second;
11684 hid_t item_type4first;
11685 item_type4first=sha1_type_;
11686 hid_t item_type4second;
11687 item_type4second=sha1_type_;
11688 hid_t item_type4secondcompound;
11690 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11691 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11692 hid_t item_type3elemcompound;
11694 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11695 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11696 item_type1val=sha1_type_;
11702 hid_t item_type1compound;
11704 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11705 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11706 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11708 field_types[i]=item_type0;
11709 opened_types_.insert(item_type4secondcompound);
11710 opened_types_.insert(item_type3elemcompound);
11711 opened_types_.insert(item_type1val);
11712 opened_types_.insert(item_type1compound);
11713 opened_types_.insert(field_types[i]);
11715 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[6]<1&&shape[7]<1){
11718 hsize_t shape01=shape[0];
11719 hid_t item_type1key;
11720 item_type1key=CreateFLStrType(shape[1]);
11721 hid_t item_type1val;
11722 hid_t item_type2elem;
11723 hid_t item_type3first;
11724 item_type3first=H5T_NATIVE_INT;
11725 hid_t item_type3second;
11726 hid_t item_type4first;
11727 item_type4first=sha1_type_;
11728 hid_t item_type4second;
11729 item_type4second=sha1_type_;
11730 hid_t item_type4secondcompound;
11732 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11733 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11734 hid_t item_type3elemcompound;
11736 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11737 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11738 item_type1val=sha1_type_;
11744 hid_t item_type1compound;
11746 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11747 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
11748 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11750 field_types[i]=item_type0;
11751 opened_types_.insert(item_type4secondcompound);
11752 opened_types_.insert(item_type3elemcompound);
11753 opened_types_.insert(item_type1val);
11754 opened_types_.insert(item_type1compound);
11755 opened_types_.insert(field_types[i]);
11757 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[6]>=1&&shape[7]>=1){
11760 hsize_t shape01=shape[0];
11761 hid_t item_type1key;
11762 item_type1key=sha1_type_;
11763 hid_t item_type1val;
11764 hsize_t shape02=shape[2];
11765 hid_t item_type2elem;
11766 hid_t item_type3first;
11767 item_type3first=H5T_NATIVE_INT;
11768 hid_t item_type3second;
11769 hid_t item_type4first;
11770 item_type4first=CreateFLStrType(shape[6]);
11771 hid_t item_type4second;
11772 item_type4second=CreateFLStrType(shape[7]);
11773 hid_t item_type4secondcompound;
11774 item_type4secondcompound=H5Tcreate(H5T_COMPOUND, shape[6]+shape[7]);
11775 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11776 H5Tinsert(item_type4secondcompound,
"second", 0+shape[6], item_type4second);
11777 hid_t item_type3elemcompound;
11778 item_type3elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[6]+shape[7])));
11779 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11780 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11781 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11782 hid_t item_type1compound;
11783 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((((
sizeof(
int)+((shape[6]+shape[7])))))*shape[2]));
11784 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11786 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11787 dst_sizes[i]=((
CYCLUS_SHA1_SIZE+((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]))*shape[0]);
11788 field_types[i]=item_type0;
11789 opened_types_.insert(item_type4secondcompound);
11790 opened_types_.insert(item_type3elemcompound);
11791 opened_types_.insert(item_type1val);
11792 opened_types_.insert(item_type1compound);
11793 opened_types_.insert(field_types[i]);
11795 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[6]>=1&&shape[7]<1){
11798 hsize_t shape01=shape[0];
11799 hid_t item_type1key;
11800 item_type1key=sha1_type_;
11801 hid_t item_type1val;
11802 hsize_t shape02=shape[2];
11803 hid_t item_type2elem;
11804 hid_t item_type3first;
11805 item_type3first=H5T_NATIVE_INT;
11806 hid_t item_type3second;
11807 hid_t item_type4first;
11808 item_type4first=CreateFLStrType(shape[6]);
11809 hid_t item_type4second;
11810 item_type4second=sha1_type_;
11811 hid_t item_type4secondcompound;
11812 item_type4secondcompound=H5Tcreate(H5T_COMPOUND, shape[6]+
CYCLUS_SHA1_SIZE);
11813 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11814 H5Tinsert(item_type4secondcompound,
"second", 0+shape[6], item_type4second);
11815 hid_t item_type3elemcompound;
11816 item_type3elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[6]+
CYCLUS_SHA1_SIZE)));
11817 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11818 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11819 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11820 hid_t item_type1compound;
11822 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11824 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11826 field_types[i]=item_type0;
11827 opened_types_.insert(item_type4secondcompound);
11828 opened_types_.insert(item_type3elemcompound);
11829 opened_types_.insert(item_type1val);
11830 opened_types_.insert(item_type1compound);
11831 opened_types_.insert(field_types[i]);
11833 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[6]<1&&shape[7]>=1){
11836 hsize_t shape01=shape[0];
11837 hid_t item_type1key;
11838 item_type1key=sha1_type_;
11839 hid_t item_type1val;
11840 hsize_t shape02=shape[2];
11841 hid_t item_type2elem;
11842 hid_t item_type3first;
11843 item_type3first=H5T_NATIVE_INT;
11844 hid_t item_type3second;
11845 hid_t item_type4first;
11846 item_type4first=sha1_type_;
11847 hid_t item_type4second;
11848 item_type4second=CreateFLStrType(shape[7]);
11849 hid_t item_type4secondcompound;
11850 item_type4secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+shape[7]);
11851 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11852 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11853 hid_t item_type3elemcompound;
11854 item_type3elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((
CYCLUS_SHA1_SIZE+shape[7])));
11855 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11856 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11857 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11858 hid_t item_type1compound;
11860 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11862 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11864 field_types[i]=item_type0;
11865 opened_types_.insert(item_type4secondcompound);
11866 opened_types_.insert(item_type3elemcompound);
11867 opened_types_.insert(item_type1val);
11868 opened_types_.insert(item_type1compound);
11869 opened_types_.insert(field_types[i]);
11871 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[6]<1&&shape[7]<1){
11874 hsize_t shape01=shape[0];
11875 hid_t item_type1key;
11876 item_type1key=sha1_type_;
11877 hid_t item_type1val;
11878 hsize_t shape02=shape[2];
11879 hid_t item_type2elem;
11880 hid_t item_type3first;
11881 item_type3first=H5T_NATIVE_INT;
11882 hid_t item_type3second;
11883 hid_t item_type4first;
11884 item_type4first=sha1_type_;
11885 hid_t item_type4second;
11886 item_type4second=sha1_type_;
11887 hid_t item_type4secondcompound;
11889 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11890 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11891 hid_t item_type3elemcompound;
11893 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11894 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11895 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
11896 hid_t item_type1compound;
11898 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11900 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11902 field_types[i]=item_type0;
11903 opened_types_.insert(item_type4secondcompound);
11904 opened_types_.insert(item_type3elemcompound);
11905 opened_types_.insert(item_type1val);
11906 opened_types_.insert(item_type1compound);
11907 opened_types_.insert(field_types[i]);
11909 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[6]>=1&&shape[7]>=1){
11912 hsize_t shape01=shape[0];
11913 hid_t item_type1key;
11914 item_type1key=sha1_type_;
11915 hid_t item_type1val;
11916 hid_t item_type2elem;
11917 hid_t item_type3first;
11918 item_type3first=H5T_NATIVE_INT;
11919 hid_t item_type3second;
11920 hid_t item_type4first;
11921 item_type4first=sha1_type_;
11922 hid_t item_type4second;
11923 item_type4second=sha1_type_;
11924 hid_t item_type4secondcompound;
11926 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11927 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11928 hid_t item_type3elemcompound;
11930 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11931 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11932 item_type1val=sha1_type_;
11938 hid_t item_type1compound;
11940 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11942 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11944 field_types[i]=item_type0;
11945 opened_types_.insert(item_type4secondcompound);
11946 opened_types_.insert(item_type3elemcompound);
11947 opened_types_.insert(item_type1val);
11948 opened_types_.insert(item_type1compound);
11949 opened_types_.insert(field_types[i]);
11951 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[6]>=1&&shape[7]<1){
11954 hsize_t shape01=shape[0];
11955 hid_t item_type1key;
11956 item_type1key=sha1_type_;
11957 hid_t item_type1val;
11958 hid_t item_type2elem;
11959 hid_t item_type3first;
11960 item_type3first=H5T_NATIVE_INT;
11961 hid_t item_type3second;
11962 hid_t item_type4first;
11963 item_type4first=sha1_type_;
11964 hid_t item_type4second;
11965 item_type4second=sha1_type_;
11966 hid_t item_type4secondcompound;
11968 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
11969 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
11970 hid_t item_type3elemcompound;
11972 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
11973 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
11974 item_type1val=sha1_type_;
11980 hid_t item_type1compound;
11982 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
11984 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
11986 field_types[i]=item_type0;
11987 opened_types_.insert(item_type4secondcompound);
11988 opened_types_.insert(item_type3elemcompound);
11989 opened_types_.insert(item_type1val);
11990 opened_types_.insert(item_type1compound);
11991 opened_types_.insert(field_types[i]);
11993 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[6]<1&&shape[7]>=1){
11996 hsize_t shape01=shape[0];
11997 hid_t item_type1key;
11998 item_type1key=sha1_type_;
11999 hid_t item_type1val;
12000 hid_t item_type2elem;
12001 hid_t item_type3first;
12002 item_type3first=H5T_NATIVE_INT;
12003 hid_t item_type3second;
12004 hid_t item_type4first;
12005 item_type4first=sha1_type_;
12006 hid_t item_type4second;
12007 item_type4second=sha1_type_;
12008 hid_t item_type4secondcompound;
12010 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12011 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12012 hid_t item_type3elemcompound;
12014 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12015 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12016 item_type1val=sha1_type_;
12022 hid_t item_type1compound;
12024 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12026 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12028 field_types[i]=item_type0;
12029 opened_types_.insert(item_type4secondcompound);
12030 opened_types_.insert(item_type3elemcompound);
12031 opened_types_.insert(item_type1val);
12032 opened_types_.insert(item_type1compound);
12033 opened_types_.insert(field_types[i]);
12035 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[6]<1&&shape[7]<1){
12038 hsize_t shape01=shape[0];
12039 hid_t item_type1key;
12040 item_type1key=sha1_type_;
12041 hid_t item_type1val;
12042 hid_t item_type2elem;
12043 hid_t item_type3first;
12044 item_type3first=H5T_NATIVE_INT;
12045 hid_t item_type3second;
12046 hid_t item_type4first;
12047 item_type4first=sha1_type_;
12048 hid_t item_type4second;
12049 item_type4second=sha1_type_;
12050 hid_t item_type4secondcompound;
12052 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12053 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12054 hid_t item_type3elemcompound;
12056 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12057 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12058 item_type1val=sha1_type_;
12064 hid_t item_type1compound;
12066 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12068 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12070 field_types[i]=item_type0;
12071 opened_types_.insert(item_type4secondcompound);
12072 opened_types_.insert(item_type3elemcompound);
12073 opened_types_.insert(item_type1val);
12074 opened_types_.insert(item_type1compound);
12075 opened_types_.insert(field_types[i]);
12077 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[6]>=1&&shape[7]>=1){
12080 hid_t item_type1key;
12081 item_type1key=sha1_type_;
12082 hid_t item_type1val;
12083 hsize_t shape02=shape[2];
12084 hid_t item_type2elem;
12085 hid_t item_type3first;
12086 item_type3first=H5T_NATIVE_INT;
12087 hid_t item_type3second;
12088 hid_t item_type4first;
12089 item_type4first=sha1_type_;
12090 hid_t item_type4second;
12091 item_type4second=sha1_type_;
12092 hid_t item_type4secondcompound;
12094 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12095 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12096 hid_t item_type3elemcompound;
12098 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12099 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12100 item_type1val=sha1_type_;
12106 hid_t item_type1compound;
12108 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12110 item_type0=sha1_type_;
12117 field_types[i]=sha1_type_;
12119 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[6]>=1&&shape[7]<1){
12122 hid_t item_type1key;
12123 item_type1key=sha1_type_;
12124 hid_t item_type1val;
12125 hsize_t shape02=shape[2];
12126 hid_t item_type2elem;
12127 hid_t item_type3first;
12128 item_type3first=H5T_NATIVE_INT;
12129 hid_t item_type3second;
12130 hid_t item_type4first;
12131 item_type4first=sha1_type_;
12132 hid_t item_type4second;
12133 item_type4second=sha1_type_;
12134 hid_t item_type4secondcompound;
12136 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12137 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12138 hid_t item_type3elemcompound;
12140 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12141 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12142 item_type1val=sha1_type_;
12148 hid_t item_type1compound;
12150 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12152 item_type0=sha1_type_;
12159 field_types[i]=sha1_type_;
12161 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[6]<1&&shape[7]>=1){
12164 hid_t item_type1key;
12165 item_type1key=sha1_type_;
12166 hid_t item_type1val;
12167 hsize_t shape02=shape[2];
12168 hid_t item_type2elem;
12169 hid_t item_type3first;
12170 item_type3first=H5T_NATIVE_INT;
12171 hid_t item_type3second;
12172 hid_t item_type4first;
12173 item_type4first=sha1_type_;
12174 hid_t item_type4second;
12175 item_type4second=sha1_type_;
12176 hid_t item_type4secondcompound;
12178 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12179 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12180 hid_t item_type3elemcompound;
12182 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12183 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12184 item_type1val=sha1_type_;
12190 hid_t item_type1compound;
12192 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12194 item_type0=sha1_type_;
12201 field_types[i]=sha1_type_;
12203 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[6]<1&&shape[7]<1){
12206 hid_t item_type1key;
12207 item_type1key=sha1_type_;
12208 hid_t item_type1val;
12209 hsize_t shape02=shape[2];
12210 hid_t item_type2elem;
12211 hid_t item_type3first;
12212 item_type3first=H5T_NATIVE_INT;
12213 hid_t item_type3second;
12214 hid_t item_type4first;
12215 item_type4first=sha1_type_;
12216 hid_t item_type4second;
12217 item_type4second=sha1_type_;
12218 hid_t item_type4secondcompound;
12220 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12221 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12222 hid_t item_type3elemcompound;
12224 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12225 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12226 item_type1val=sha1_type_;
12232 hid_t item_type1compound;
12234 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12236 item_type0=sha1_type_;
12243 field_types[i]=sha1_type_;
12245 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[6]>=1&&shape[7]>=1){
12248 hid_t item_type1key;
12249 item_type1key=sha1_type_;
12250 hid_t item_type1val;
12251 hid_t item_type2elem;
12252 hid_t item_type3first;
12253 item_type3first=H5T_NATIVE_INT;
12254 hid_t item_type3second;
12255 hid_t item_type4first;
12256 item_type4first=sha1_type_;
12257 hid_t item_type4second;
12258 item_type4second=sha1_type_;
12259 hid_t item_type4secondcompound;
12261 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12262 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12263 hid_t item_type3elemcompound;
12265 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12266 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12267 item_type1val=sha1_type_;
12273 hid_t item_type1compound;
12275 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12277 item_type0=sha1_type_;
12284 field_types[i]=sha1_type_;
12286 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[6]>=1&&shape[7]<1){
12289 hid_t item_type1key;
12290 item_type1key=sha1_type_;
12291 hid_t item_type1val;
12292 hid_t item_type2elem;
12293 hid_t item_type3first;
12294 item_type3first=H5T_NATIVE_INT;
12295 hid_t item_type3second;
12296 hid_t item_type4first;
12297 item_type4first=sha1_type_;
12298 hid_t item_type4second;
12299 item_type4second=sha1_type_;
12300 hid_t item_type4secondcompound;
12302 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12303 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12304 hid_t item_type3elemcompound;
12306 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12307 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12308 item_type1val=sha1_type_;
12314 hid_t item_type1compound;
12316 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12318 item_type0=sha1_type_;
12325 field_types[i]=sha1_type_;
12327 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[6]<1&&shape[7]>=1){
12330 hid_t item_type1key;
12331 item_type1key=sha1_type_;
12332 hid_t item_type1val;
12333 hid_t item_type2elem;
12334 hid_t item_type3first;
12335 item_type3first=H5T_NATIVE_INT;
12336 hid_t item_type3second;
12337 hid_t item_type4first;
12338 item_type4first=sha1_type_;
12339 hid_t item_type4second;
12340 item_type4second=sha1_type_;
12341 hid_t item_type4secondcompound;
12343 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12344 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12345 hid_t item_type3elemcompound;
12347 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12348 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12349 item_type1val=sha1_type_;
12355 hid_t item_type1compound;
12357 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12359 item_type0=sha1_type_;
12366 field_types[i]=sha1_type_;
12368 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[6]<1&&shape[7]<1){
12371 hid_t item_type1key;
12372 item_type1key=sha1_type_;
12373 hid_t item_type1val;
12374 hid_t item_type2elem;
12375 hid_t item_type3first;
12376 item_type3first=H5T_NATIVE_INT;
12377 hid_t item_type3second;
12378 hid_t item_type4first;
12379 item_type4first=sha1_type_;
12380 hid_t item_type4second;
12381 item_type4second=sha1_type_;
12382 hid_t item_type4secondcompound;
12384 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12385 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12386 hid_t item_type3elemcompound;
12388 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12389 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12390 item_type1val=sha1_type_;
12396 hid_t item_type1compound;
12398 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12400 item_type0=sha1_type_;
12407 field_types[i]=sha1_type_;
12409 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[6]>=1&&shape[7]>=1){
12412 hid_t item_type1key;
12413 item_type1key=sha1_type_;
12414 hid_t item_type1val;
12415 hsize_t shape02=shape[2];
12416 hid_t item_type2elem;
12417 hid_t item_type3first;
12418 item_type3first=H5T_NATIVE_INT;
12419 hid_t item_type3second;
12420 hid_t item_type4first;
12421 item_type4first=sha1_type_;
12422 hid_t item_type4second;
12423 item_type4second=sha1_type_;
12424 hid_t item_type4secondcompound;
12426 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12427 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12428 hid_t item_type3elemcompound;
12430 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12431 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12432 item_type1val=sha1_type_;
12438 hid_t item_type1compound;
12440 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12442 item_type0=sha1_type_;
12449 field_types[i]=sha1_type_;
12451 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[6]>=1&&shape[7]<1){
12454 hid_t item_type1key;
12455 item_type1key=sha1_type_;
12456 hid_t item_type1val;
12457 hsize_t shape02=shape[2];
12458 hid_t item_type2elem;
12459 hid_t item_type3first;
12460 item_type3first=H5T_NATIVE_INT;
12461 hid_t item_type3second;
12462 hid_t item_type4first;
12463 item_type4first=sha1_type_;
12464 hid_t item_type4second;
12465 item_type4second=sha1_type_;
12466 hid_t item_type4secondcompound;
12468 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12469 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12470 hid_t item_type3elemcompound;
12472 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12473 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12474 item_type1val=sha1_type_;
12480 hid_t item_type1compound;
12482 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12484 item_type0=sha1_type_;
12491 field_types[i]=sha1_type_;
12493 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[6]<1&&shape[7]>=1){
12496 hid_t item_type1key;
12497 item_type1key=sha1_type_;
12498 hid_t item_type1val;
12499 hsize_t shape02=shape[2];
12500 hid_t item_type2elem;
12501 hid_t item_type3first;
12502 item_type3first=H5T_NATIVE_INT;
12503 hid_t item_type3second;
12504 hid_t item_type4first;
12505 item_type4first=sha1_type_;
12506 hid_t item_type4second;
12507 item_type4second=sha1_type_;
12508 hid_t item_type4secondcompound;
12510 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12511 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12512 hid_t item_type3elemcompound;
12514 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12515 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12516 item_type1val=sha1_type_;
12522 hid_t item_type1compound;
12524 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12526 item_type0=sha1_type_;
12533 field_types[i]=sha1_type_;
12535 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[6]<1&&shape[7]<1){
12538 hid_t item_type1key;
12539 item_type1key=sha1_type_;
12540 hid_t item_type1val;
12541 hsize_t shape02=shape[2];
12542 hid_t item_type2elem;
12543 hid_t item_type3first;
12544 item_type3first=H5T_NATIVE_INT;
12545 hid_t item_type3second;
12546 hid_t item_type4first;
12547 item_type4first=sha1_type_;
12548 hid_t item_type4second;
12549 item_type4second=sha1_type_;
12550 hid_t item_type4secondcompound;
12552 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12553 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12554 hid_t item_type3elemcompound;
12556 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12557 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12558 item_type1val=sha1_type_;
12564 hid_t item_type1compound;
12566 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12568 item_type0=sha1_type_;
12575 field_types[i]=sha1_type_;
12577 }
else if(shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[6]>=1&&shape[7]>=1){
12580 hid_t item_type1key;
12581 item_type1key=sha1_type_;
12582 hid_t item_type1val;
12583 hid_t item_type2elem;
12584 hid_t item_type3first;
12585 item_type3first=H5T_NATIVE_INT;
12586 hid_t item_type3second;
12587 hid_t item_type4first;
12588 item_type4first=sha1_type_;
12589 hid_t item_type4second;
12590 item_type4second=sha1_type_;
12591 hid_t item_type4secondcompound;
12593 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12594 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12595 hid_t item_type3elemcompound;
12597 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12598 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12599 item_type1val=sha1_type_;
12605 hid_t item_type1compound;
12607 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12609 item_type0=sha1_type_;
12616 field_types[i]=sha1_type_;
12618 }
else if(shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[6]>=1&&shape[7]<1){
12621 hid_t item_type1key;
12622 item_type1key=sha1_type_;
12623 hid_t item_type1val;
12624 hid_t item_type2elem;
12625 hid_t item_type3first;
12626 item_type3first=H5T_NATIVE_INT;
12627 hid_t item_type3second;
12628 hid_t item_type4first;
12629 item_type4first=sha1_type_;
12630 hid_t item_type4second;
12631 item_type4second=sha1_type_;
12632 hid_t item_type4secondcompound;
12634 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12635 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12636 hid_t item_type3elemcompound;
12638 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12639 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12640 item_type1val=sha1_type_;
12646 hid_t item_type1compound;
12648 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12650 item_type0=sha1_type_;
12657 field_types[i]=sha1_type_;
12659 }
else if(shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[6]<1&&shape[7]>=1){
12662 hid_t item_type1key;
12663 item_type1key=sha1_type_;
12664 hid_t item_type1val;
12665 hid_t item_type2elem;
12666 hid_t item_type3first;
12667 item_type3first=H5T_NATIVE_INT;
12668 hid_t item_type3second;
12669 hid_t item_type4first;
12670 item_type4first=sha1_type_;
12671 hid_t item_type4second;
12672 item_type4second=sha1_type_;
12673 hid_t item_type4secondcompound;
12675 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12676 H5Tinsert(item_type4secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type4second);
12677 hid_t item_type3elemcompound;
12679 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12680 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12681 item_type1val=sha1_type_;
12687 hid_t item_type1compound;
12689 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12691 item_type0=sha1_type_;
12698 field_types[i]=sha1_type_;
12703 hsize_t shape01=shape[0];
12704 hid_t item_type1key;
12705 item_type1key=CreateFLStrType(shape[1]);
12706 hid_t item_type1val;
12707 hsize_t shape02=shape[2];
12708 hid_t item_type2elem;
12709 hid_t item_type3first;
12710 item_type3first=H5T_NATIVE_INT;
12711 hid_t item_type3second;
12712 hid_t item_type4first;
12713 item_type4first=CreateFLStrType(shape[6]);
12714 hid_t item_type4second;
12715 item_type4second=CreateFLStrType(shape[7]);
12716 hid_t item_type4secondcompound;
12717 item_type4secondcompound=H5Tcreate(H5T_COMPOUND, shape[6]+shape[7]);
12718 H5Tinsert(item_type4secondcompound,
"first", 0, item_type4first);
12719 H5Tinsert(item_type4secondcompound,
"second", 0+shape[6], item_type4second);
12720 hid_t item_type3elemcompound;
12721 item_type3elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[6]+shape[7])));
12722 H5Tinsert(item_type3elemcompound,
"first", 0, item_type3first);
12723 H5Tinsert(item_type3elemcompound,
"second", 0+
sizeof(
int), item_type4secondcompound);
12724 item_type1val=H5Tarray_create2(item_type3elemcompound, 1, &shape02);
12725 hid_t item_type1compound;
12726 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((((
sizeof(
int)+((shape[6]+shape[7])))))*shape[2]));
12727 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12728 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
12729 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12730 dst_sizes[i]=((shape[1]+((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]))*shape[0]);
12731 field_types[i]=item_type0;
12732 opened_types_.insert(item_type4secondcompound);
12733 opened_types_.insert(item_type3elemcompound);
12734 opened_types_.insert(item_type1val);
12735 opened_types_.insert(item_type1compound);
12736 opened_types_.insert(field_types[i]);
12740 }
else if(valtype==
typeid(std::list<std::pair<int, int>>)){
12742 if(shape.empty()||shape[0]<1){
12745 hid_t item_type1elem;
12746 hid_t item_type2first;
12747 item_type2first=H5T_NATIVE_INT;
12748 hid_t item_type2second;
12749 item_type2second=H5T_NATIVE_INT;
12750 hid_t item_type2elemcompound;
12751 item_type2elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
int));
12752 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
12753 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type2second);
12754 item_type0=sha1_type_;
12761 field_types[i]=sha1_type_;
12766 hsize_t shape01=shape[0];
12767 hid_t item_type1elem;
12768 hid_t item_type2first;
12769 item_type2first=H5T_NATIVE_INT;
12770 hid_t item_type2second;
12771 item_type2second=H5T_NATIVE_INT;
12772 hid_t item_type2elemcompound;
12773 item_type2elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
int));
12774 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
12775 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type2second);
12776 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
12777 dst_sizes[i]=((((
sizeof(int)+
sizeof(
int))))*shape[0]);
12778 field_types[i]=item_type0;
12779 opened_types_.insert(item_type2elemcompound);
12780 opened_types_.insert(field_types[i]);
12784 }
else if(valtype==
typeid(std::map<std::string, std::pair<std::string, std::vector<double>>>)){
12786 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[3]<1&&shape[4]<1){
12789 hid_t item_type1key;
12790 item_type1key=sha1_type_;
12791 hid_t item_type1val;
12792 hid_t item_type2first;
12793 item_type2first=sha1_type_;
12794 hid_t item_type2second;
12795 hid_t item_type3elem;
12796 item_type3elem=H5T_NATIVE_DOUBLE;
12797 item_type2second=sha1_type_;
12803 hid_t item_type2valcompound;
12805 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12806 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
12807 hid_t item_type1compound;
12809 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12810 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
12811 item_type0=sha1_type_;
12818 field_types[i]=sha1_type_;
12820 }
else if(shape[0]>=1&&shape[1]>=1&&shape[3]>=1&&shape[4]<1){
12823 hsize_t shape01=shape[0];
12824 hid_t item_type1key;
12825 item_type1key=CreateFLStrType(shape[1]);
12826 hid_t item_type1val;
12827 hid_t item_type2first;
12828 item_type2first=CreateFLStrType(shape[3]);
12829 hid_t item_type2second;
12830 hid_t item_type3elem;
12831 item_type3elem=H5T_NATIVE_DOUBLE;
12832 item_type2second=sha1_type_;
12838 hid_t item_type2valcompound;
12839 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+(
CYCLUS_SHA1_SIZE));
12840 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12841 H5Tinsert(item_type2valcompound,
"second", 0+shape[3], item_type2second);
12842 hid_t item_type1compound;
12843 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((shape[3]+(
CYCLUS_SHA1_SIZE))));
12844 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12845 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type2valcompound);
12846 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12848 field_types[i]=item_type0;
12849 opened_types_.insert(item_type2second);
12850 opened_types_.insert(item_type2valcompound);
12851 opened_types_.insert(item_type1compound);
12852 opened_types_.insert(field_types[i]);
12854 }
else if(shape[0]>=1&&shape[1]>=1&&shape[3]<1&&shape[4]>=1){
12857 hsize_t shape01=shape[0];
12858 hid_t item_type1key;
12859 item_type1key=CreateFLStrType(shape[1]);
12860 hid_t item_type1val;
12861 hid_t item_type2first;
12862 item_type2first=sha1_type_;
12863 hid_t item_type2second;
12864 hsize_t shape03=shape[4];
12865 hid_t item_type3elem;
12866 item_type3elem=H5T_NATIVE_DOUBLE;
12867 item_type2second=H5Tarray_create2(item_type3elem, 1, &shape03);
12868 hid_t item_type2valcompound;
12869 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((
sizeof(
double))*shape[4]));
12870 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12871 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
12872 hid_t item_type1compound;
12873 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
CYCLUS_SHA1_SIZE+((
sizeof(
double))*shape[4]))));
12874 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12875 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type2valcompound);
12876 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12877 dst_sizes[i]=((shape[1]+((
CYCLUS_SHA1_SIZE+((
sizeof(double))*shape[4]))))*shape[0]);
12878 field_types[i]=item_type0;
12879 opened_types_.insert(item_type2second);
12880 opened_types_.insert(item_type2valcompound);
12881 opened_types_.insert(item_type1compound);
12882 opened_types_.insert(field_types[i]);
12884 }
else if(shape[0]>=1&&shape[1]>=1&&shape[3]<1&&shape[4]<1){
12887 hsize_t shape01=shape[0];
12888 hid_t item_type1key;
12889 item_type1key=CreateFLStrType(shape[1]);
12890 hid_t item_type1val;
12891 hid_t item_type2first;
12892 item_type2first=sha1_type_;
12893 hid_t item_type2second;
12894 hid_t item_type3elem;
12895 item_type3elem=H5T_NATIVE_DOUBLE;
12896 item_type2second=sha1_type_;
12902 hid_t item_type2valcompound;
12904 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12905 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
12906 hid_t item_type1compound;
12908 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12909 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type2valcompound);
12910 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12912 field_types[i]=item_type0;
12913 opened_types_.insert(item_type2second);
12914 opened_types_.insert(item_type2valcompound);
12915 opened_types_.insert(item_type1compound);
12916 opened_types_.insert(field_types[i]);
12918 }
else if(shape[0]>=1&&shape[1]<1&&shape[3]>=1&&shape[4]>=1){
12921 hsize_t shape01=shape[0];
12922 hid_t item_type1key;
12923 item_type1key=sha1_type_;
12924 hid_t item_type1val;
12925 hid_t item_type2first;
12926 item_type2first=CreateFLStrType(shape[3]);
12927 hid_t item_type2second;
12928 hsize_t shape03=shape[4];
12929 hid_t item_type3elem;
12930 item_type3elem=H5T_NATIVE_DOUBLE;
12931 item_type2second=H5Tarray_create2(item_type3elem, 1, &shape03);
12932 hid_t item_type2valcompound;
12933 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+((
sizeof(
double))*shape[4]));
12934 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12935 H5Tinsert(item_type2valcompound,
"second", 0+shape[3], item_type2second);
12936 hid_t item_type1compound;
12937 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((shape[3]+((
sizeof(
double))*shape[4]))));
12938 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12939 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
12940 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12941 dst_sizes[i]=((
CYCLUS_SHA1_SIZE+((shape[3]+((
sizeof(double))*shape[4]))))*shape[0]);
12942 field_types[i]=item_type0;
12943 opened_types_.insert(item_type2second);
12944 opened_types_.insert(item_type2valcompound);
12945 opened_types_.insert(item_type1compound);
12946 opened_types_.insert(field_types[i]);
12948 }
else if(shape[0]>=1&&shape[1]<1&&shape[3]<1&&shape[4]>=1){
12951 hsize_t shape01=shape[0];
12952 hid_t item_type1key;
12953 item_type1key=sha1_type_;
12954 hid_t item_type1val;
12955 hid_t item_type2first;
12956 item_type2first=sha1_type_;
12957 hid_t item_type2second;
12958 hsize_t shape03=shape[4];
12959 hid_t item_type3elem;
12960 item_type3elem=H5T_NATIVE_DOUBLE;
12961 item_type2second=H5Tarray_create2(item_type3elem, 1, &shape03);
12962 hid_t item_type2valcompound;
12963 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((
sizeof(
double))*shape[4]));
12964 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12965 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
12966 hid_t item_type1compound;
12968 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
12969 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
12970 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
12972 field_types[i]=item_type0;
12973 opened_types_.insert(item_type2second);
12974 opened_types_.insert(item_type2valcompound);
12975 opened_types_.insert(item_type1compound);
12976 opened_types_.insert(field_types[i]);
12978 }
else if(shape[0]>=1&&shape[1]<1&&shape[3]>=1&&shape[4]<1){
12981 hsize_t shape01=shape[0];
12982 hid_t item_type1key;
12983 item_type1key=sha1_type_;
12984 hid_t item_type1val;
12985 hid_t item_type2first;
12986 item_type2first=CreateFLStrType(shape[3]);
12987 hid_t item_type2second;
12988 hid_t item_type3elem;
12989 item_type3elem=H5T_NATIVE_DOUBLE;
12990 item_type2second=sha1_type_;
12996 hid_t item_type2valcompound;
12997 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+(
CYCLUS_SHA1_SIZE));
12998 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
12999 H5Tinsert(item_type2valcompound,
"second", 0+shape[3], item_type2second);
13000 hid_t item_type1compound;
13002 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13003 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13004 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13006 field_types[i]=item_type0;
13007 opened_types_.insert(item_type2second);
13008 opened_types_.insert(item_type2valcompound);
13009 opened_types_.insert(item_type1compound);
13010 opened_types_.insert(field_types[i]);
13012 }
else if(shape[0]>=1&&shape[1]<1&&shape[3]<1&&shape[4]<1){
13015 hsize_t shape01=shape[0];
13016 hid_t item_type1key;
13017 item_type1key=sha1_type_;
13018 hid_t item_type1val;
13019 hid_t item_type2first;
13020 item_type2first=sha1_type_;
13021 hid_t item_type2second;
13022 hid_t item_type3elem;
13023 item_type3elem=H5T_NATIVE_DOUBLE;
13024 item_type2second=sha1_type_;
13030 hid_t item_type2valcompound;
13032 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13033 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13034 hid_t item_type1compound;
13036 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13037 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13038 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13040 field_types[i]=item_type0;
13041 opened_types_.insert(item_type2second);
13042 opened_types_.insert(item_type2valcompound);
13043 opened_types_.insert(item_type1compound);
13044 opened_types_.insert(field_types[i]);
13046 }
else if(shape[0]<1&&shape[1]>=1&&shape[3]>=1&&shape[4]>=1){
13049 hid_t item_type1key;
13050 item_type1key=sha1_type_;
13051 hid_t item_type1val;
13052 hid_t item_type2first;
13053 item_type2first=sha1_type_;
13054 hid_t item_type2second;
13055 hsize_t shape03=shape[4];
13056 hid_t item_type3elem;
13057 item_type3elem=H5T_NATIVE_DOUBLE;
13058 item_type2second=sha1_type_;
13064 hid_t item_type2valcompound;
13066 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13067 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13068 hid_t item_type1compound;
13070 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13071 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13072 item_type0=sha1_type_;
13079 field_types[i]=sha1_type_;
13081 }
else if(shape[0]<1&&shape[1]<1&&shape[3]>=1&&shape[4]>=1){
13084 hid_t item_type1key;
13085 item_type1key=sha1_type_;
13086 hid_t item_type1val;
13087 hid_t item_type2first;
13088 item_type2first=sha1_type_;
13089 hid_t item_type2second;
13090 hsize_t shape03=shape[4];
13091 hid_t item_type3elem;
13092 item_type3elem=H5T_NATIVE_DOUBLE;
13093 item_type2second=sha1_type_;
13099 hid_t item_type2valcompound;
13101 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13102 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13103 hid_t item_type1compound;
13105 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13106 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13107 item_type0=sha1_type_;
13114 field_types[i]=sha1_type_;
13116 }
else if(shape[0]<1&&shape[1]>=1&&shape[3]<1&&shape[4]>=1){
13119 hid_t item_type1key;
13120 item_type1key=sha1_type_;
13121 hid_t item_type1val;
13122 hid_t item_type2first;
13123 item_type2first=sha1_type_;
13124 hid_t item_type2second;
13125 hsize_t shape03=shape[4];
13126 hid_t item_type3elem;
13127 item_type3elem=H5T_NATIVE_DOUBLE;
13128 item_type2second=sha1_type_;
13134 hid_t item_type2valcompound;
13136 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13137 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13138 hid_t item_type1compound;
13140 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13141 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13142 item_type0=sha1_type_;
13149 field_types[i]=sha1_type_;
13151 }
else if(shape[0]<1&&shape[1]>=1&&shape[3]>=1&&shape[4]<1){
13154 hid_t item_type1key;
13155 item_type1key=sha1_type_;
13156 hid_t item_type1val;
13157 hid_t item_type2first;
13158 item_type2first=sha1_type_;
13159 hid_t item_type2second;
13160 hid_t item_type3elem;
13161 item_type3elem=H5T_NATIVE_DOUBLE;
13162 item_type2second=sha1_type_;
13168 hid_t item_type2valcompound;
13170 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13171 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13172 hid_t item_type1compound;
13174 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13175 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13176 item_type0=sha1_type_;
13183 field_types[i]=sha1_type_;
13185 }
else if(shape[0]<1&&shape[1]<1&&shape[3]<1&&shape[4]>=1){
13188 hid_t item_type1key;
13189 item_type1key=sha1_type_;
13190 hid_t item_type1val;
13191 hid_t item_type2first;
13192 item_type2first=sha1_type_;
13193 hid_t item_type2second;
13194 hsize_t shape03=shape[4];
13195 hid_t item_type3elem;
13196 item_type3elem=H5T_NATIVE_DOUBLE;
13197 item_type2second=sha1_type_;
13203 hid_t item_type2valcompound;
13205 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13206 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13207 hid_t item_type1compound;
13209 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13210 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13211 item_type0=sha1_type_;
13218 field_types[i]=sha1_type_;
13220 }
else if(shape[0]<1&&shape[1]<1&&shape[3]>=1&&shape[4]<1){
13223 hid_t item_type1key;
13224 item_type1key=sha1_type_;
13225 hid_t item_type1val;
13226 hid_t item_type2first;
13227 item_type2first=sha1_type_;
13228 hid_t item_type2second;
13229 hid_t item_type3elem;
13230 item_type3elem=H5T_NATIVE_DOUBLE;
13231 item_type2second=sha1_type_;
13237 hid_t item_type2valcompound;
13239 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13240 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13241 hid_t item_type1compound;
13243 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13244 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13245 item_type0=sha1_type_;
13252 field_types[i]=sha1_type_;
13254 }
else if(shape[0]<1&&shape[1]>=1&&shape[3]<1&&shape[4]<1){
13257 hid_t item_type1key;
13258 item_type1key=sha1_type_;
13259 hid_t item_type1val;
13260 hid_t item_type2first;
13261 item_type2first=sha1_type_;
13262 hid_t item_type2second;
13263 hid_t item_type3elem;
13264 item_type3elem=H5T_NATIVE_DOUBLE;
13265 item_type2second=sha1_type_;
13271 hid_t item_type2valcompound;
13273 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13274 H5Tinsert(item_type2valcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
13275 hid_t item_type1compound;
13277 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13278 H5Tinsert(item_type1compound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2valcompound);
13279 item_type0=sha1_type_;
13286 field_types[i]=sha1_type_;
13291 hsize_t shape01=shape[0];
13292 hid_t item_type1key;
13293 item_type1key=CreateFLStrType(shape[1]);
13294 hid_t item_type1val;
13295 hid_t item_type2first;
13296 item_type2first=CreateFLStrType(shape[3]);
13297 hid_t item_type2second;
13298 hsize_t shape03=shape[4];
13299 hid_t item_type3elem;
13300 item_type3elem=H5T_NATIVE_DOUBLE;
13301 item_type2second=H5Tarray_create2(item_type3elem, 1, &shape03);
13302 hid_t item_type2valcompound;
13303 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+((
sizeof(
double))*shape[4]));
13304 H5Tinsert(item_type2valcompound,
"first", 0, item_type2first);
13305 H5Tinsert(item_type2valcompound,
"second", 0+shape[3], item_type2second);
13306 hid_t item_type1compound;
13307 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((shape[3]+((
sizeof(
double))*shape[4]))));
13308 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13309 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type2valcompound);
13310 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13311 dst_sizes[i]=((shape[1]+((shape[3]+((
sizeof(double))*shape[4]))))*shape[0]);
13312 field_types[i]=item_type0;
13313 opened_types_.insert(item_type2second);
13314 opened_types_.insert(item_type2valcompound);
13315 opened_types_.insert(item_type1compound);
13316 opened_types_.insert(field_types[i]);
13320 }
else if(valtype==
typeid(std::map<std::string, std::map<std::string, int>>)){
13322 if(shape.empty()||shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[3]<1){
13325 hid_t item_type1key;
13326 item_type1key=sha1_type_;
13327 hid_t item_type1val;
13328 hid_t item_type2key;
13329 item_type2key=sha1_type_;
13330 hid_t item_type2val;
13331 item_type2val=H5T_NATIVE_INT;
13332 hid_t item_type2valcompound;
13333 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13334 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13335 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13336 item_type1val=sha1_type_;
13342 hid_t item_type1compound;
13344 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13346 item_type0=sha1_type_;
13353 field_types[i]=sha1_type_;
13355 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]>=1&&shape[3]<1){
13358 hsize_t shape01=shape[0];
13359 hid_t item_type1key;
13360 item_type1key=CreateFLStrType(shape[1]);
13361 hid_t item_type1val;
13362 hsize_t shape02=shape[2];
13363 hid_t item_type2key;
13364 item_type2key=sha1_type_;
13365 hid_t item_type2val;
13366 item_type2val=H5T_NATIVE_INT;
13367 hid_t item_type2valcompound;
13368 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13369 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13370 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13371 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
13372 hid_t item_type1compound;
13373 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
CYCLUS_SHA1_SIZE+
sizeof(
int))*shape[2]));
13374 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13375 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
13376 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13377 dst_sizes[i]=((shape[1]+((
CYCLUS_SHA1_SIZE+
sizeof(int))*shape[2]))*shape[0]);
13378 field_types[i]=item_type0;
13379 opened_types_.insert(item_type2valcompound);
13380 opened_types_.insert(item_type1val);
13381 opened_types_.insert(item_type1compound);
13382 opened_types_.insert(field_types[i]);
13384 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[3]>=1){
13387 hsize_t shape01=shape[0];
13388 hid_t item_type1key;
13389 item_type1key=CreateFLStrType(shape[1]);
13390 hid_t item_type1val;
13391 hid_t item_type2key;
13392 item_type2key=sha1_type_;
13393 hid_t item_type2val;
13394 item_type2val=H5T_NATIVE_INT;
13395 hid_t item_type2valcompound;
13396 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13397 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13398 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13399 item_type1val=sha1_type_;
13405 hid_t item_type1compound;
13407 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13408 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
13409 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13411 field_types[i]=item_type0;
13412 opened_types_.insert(item_type2valcompound);
13413 opened_types_.insert(item_type1val);
13414 opened_types_.insert(item_type1compound);
13415 opened_types_.insert(field_types[i]);
13417 }
else if(shape[0]>=1&&shape[1]>=1&&shape[2]<1&&shape[3]<1){
13420 hsize_t shape01=shape[0];
13421 hid_t item_type1key;
13422 item_type1key=CreateFLStrType(shape[1]);
13423 hid_t item_type1val;
13424 hid_t item_type2key;
13425 item_type2key=sha1_type_;
13426 hid_t item_type2val;
13427 item_type2val=H5T_NATIVE_INT;
13428 hid_t item_type2valcompound;
13429 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13430 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13431 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13432 item_type1val=sha1_type_;
13438 hid_t item_type1compound;
13440 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13441 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
13442 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13444 field_types[i]=item_type0;
13445 opened_types_.insert(item_type2valcompound);
13446 opened_types_.insert(item_type1val);
13447 opened_types_.insert(item_type1compound);
13448 opened_types_.insert(field_types[i]);
13450 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[3]>=1){
13453 hsize_t shape01=shape[0];
13454 hid_t item_type1key;
13455 item_type1key=sha1_type_;
13456 hid_t item_type1val;
13457 hsize_t shape02=shape[2];
13458 hid_t item_type2key;
13459 item_type2key=CreateFLStrType(shape[3]);
13460 hid_t item_type2val;
13461 item_type2val=H5T_NATIVE_INT;
13462 hid_t item_type2valcompound;
13463 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+
sizeof(
int));
13464 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13465 H5Tinsert(item_type2valcompound,
"val", 0+shape[3], item_type2val);
13466 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
13467 hid_t item_type1compound;
13468 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((shape[3]+
sizeof(
int))*shape[2]));
13469 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13471 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13472 dst_sizes[i]=((
CYCLUS_SHA1_SIZE+((shape[3]+
sizeof(int))*shape[2]))*shape[0]);
13473 field_types[i]=item_type0;
13474 opened_types_.insert(item_type2valcompound);
13475 opened_types_.insert(item_type1val);
13476 opened_types_.insert(item_type1compound);
13477 opened_types_.insert(field_types[i]);
13479 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[3]>=1){
13482 hsize_t shape01=shape[0];
13483 hid_t item_type1key;
13484 item_type1key=sha1_type_;
13485 hid_t item_type1val;
13486 hid_t item_type2key;
13487 item_type2key=sha1_type_;
13488 hid_t item_type2val;
13489 item_type2val=H5T_NATIVE_INT;
13490 hid_t item_type2valcompound;
13491 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13492 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13493 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13494 item_type1val=sha1_type_;
13500 hid_t item_type1compound;
13502 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13504 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13506 field_types[i]=item_type0;
13507 opened_types_.insert(item_type2valcompound);
13508 opened_types_.insert(item_type1val);
13509 opened_types_.insert(item_type1compound);
13510 opened_types_.insert(field_types[i]);
13512 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]>=1&&shape[3]<1){
13515 hsize_t shape01=shape[0];
13516 hid_t item_type1key;
13517 item_type1key=sha1_type_;
13518 hid_t item_type1val;
13519 hsize_t shape02=shape[2];
13520 hid_t item_type2key;
13521 item_type2key=sha1_type_;
13522 hid_t item_type2val;
13523 item_type2val=H5T_NATIVE_INT;
13524 hid_t item_type2valcompound;
13525 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13526 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13527 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13528 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
13529 hid_t item_type1compound;
13531 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13533 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13535 field_types[i]=item_type0;
13536 opened_types_.insert(item_type2valcompound);
13537 opened_types_.insert(item_type1val);
13538 opened_types_.insert(item_type1compound);
13539 opened_types_.insert(field_types[i]);
13541 }
else if(shape[0]>=1&&shape[1]<1&&shape[2]<1&&shape[3]<1){
13544 hsize_t shape01=shape[0];
13545 hid_t item_type1key;
13546 item_type1key=sha1_type_;
13547 hid_t item_type1val;
13548 hid_t item_type2key;
13549 item_type2key=sha1_type_;
13550 hid_t item_type2val;
13551 item_type2val=H5T_NATIVE_INT;
13552 hid_t item_type2valcompound;
13553 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13554 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13555 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13556 item_type1val=sha1_type_;
13562 hid_t item_type1compound;
13564 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13566 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13568 field_types[i]=item_type0;
13569 opened_types_.insert(item_type2valcompound);
13570 opened_types_.insert(item_type1val);
13571 opened_types_.insert(item_type1compound);
13572 opened_types_.insert(field_types[i]);
13574 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[3]>=1){
13577 hid_t item_type1key;
13578 item_type1key=sha1_type_;
13579 hid_t item_type1val;
13580 hsize_t shape02=shape[2];
13581 hid_t item_type2key;
13582 item_type2key=sha1_type_;
13583 hid_t item_type2val;
13584 item_type2val=H5T_NATIVE_INT;
13585 hid_t item_type2valcompound;
13586 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13587 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13588 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13589 item_type1val=sha1_type_;
13595 hid_t item_type1compound;
13597 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13599 item_type0=sha1_type_;
13606 field_types[i]=sha1_type_;
13608 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[3]>=1){
13611 hid_t item_type1key;
13612 item_type1key=sha1_type_;
13613 hid_t item_type1val;
13614 hsize_t shape02=shape[2];
13615 hid_t item_type2key;
13616 item_type2key=sha1_type_;
13617 hid_t item_type2val;
13618 item_type2val=H5T_NATIVE_INT;
13619 hid_t item_type2valcompound;
13620 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13621 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13622 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13623 item_type1val=sha1_type_;
13629 hid_t item_type1compound;
13631 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13633 item_type0=sha1_type_;
13640 field_types[i]=sha1_type_;
13642 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[3]>=1){
13645 hid_t item_type1key;
13646 item_type1key=sha1_type_;
13647 hid_t item_type1val;
13648 hid_t item_type2key;
13649 item_type2key=sha1_type_;
13650 hid_t item_type2val;
13651 item_type2val=H5T_NATIVE_INT;
13652 hid_t item_type2valcompound;
13653 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13654 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13655 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13656 item_type1val=sha1_type_;
13662 hid_t item_type1compound;
13664 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13666 item_type0=sha1_type_;
13673 field_types[i]=sha1_type_;
13675 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]>=1&&shape[3]<1){
13678 hid_t item_type1key;
13679 item_type1key=sha1_type_;
13680 hid_t item_type1val;
13681 hsize_t shape02=shape[2];
13682 hid_t item_type2key;
13683 item_type2key=sha1_type_;
13684 hid_t item_type2val;
13685 item_type2val=H5T_NATIVE_INT;
13686 hid_t item_type2valcompound;
13687 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13688 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13689 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13690 item_type1val=sha1_type_;
13696 hid_t item_type1compound;
13698 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13700 item_type0=sha1_type_;
13707 field_types[i]=sha1_type_;
13709 }
else if(shape[0]<1&&shape[1]>=1&&shape[2]<1&&shape[3]<1){
13712 hid_t item_type1key;
13713 item_type1key=sha1_type_;
13714 hid_t item_type1val;
13715 hid_t item_type2key;
13716 item_type2key=sha1_type_;
13717 hid_t item_type2val;
13718 item_type2val=H5T_NATIVE_INT;
13719 hid_t item_type2valcompound;
13720 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13721 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13722 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13723 item_type1val=sha1_type_;
13729 hid_t item_type1compound;
13731 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13733 item_type0=sha1_type_;
13740 field_types[i]=sha1_type_;
13742 }
else if(shape[0]<1&&shape[1]<1&&shape[2]>=1&&shape[3]<1){
13745 hid_t item_type1key;
13746 item_type1key=sha1_type_;
13747 hid_t item_type1val;
13748 hsize_t shape02=shape[2];
13749 hid_t item_type2key;
13750 item_type2key=sha1_type_;
13751 hid_t item_type2val;
13752 item_type2val=H5T_NATIVE_INT;
13753 hid_t item_type2valcompound;
13754 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13755 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13756 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13757 item_type1val=sha1_type_;
13763 hid_t item_type1compound;
13765 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13767 item_type0=sha1_type_;
13774 field_types[i]=sha1_type_;
13776 }
else if(shape[0]<1&&shape[1]<1&&shape[2]<1&&shape[3]>=1){
13779 hid_t item_type1key;
13780 item_type1key=sha1_type_;
13781 hid_t item_type1val;
13782 hid_t item_type2key;
13783 item_type2key=sha1_type_;
13784 hid_t item_type2val;
13785 item_type2val=H5T_NATIVE_INT;
13786 hid_t item_type2valcompound;
13787 item_type2valcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
int));
13788 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13789 H5Tinsert(item_type2valcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
13790 item_type1val=sha1_type_;
13796 hid_t item_type1compound;
13798 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13800 item_type0=sha1_type_;
13807 field_types[i]=sha1_type_;
13812 hsize_t shape01=shape[0];
13813 hid_t item_type1key;
13814 item_type1key=CreateFLStrType(shape[1]);
13815 hid_t item_type1val;
13816 hsize_t shape02=shape[2];
13817 hid_t item_type2key;
13818 item_type2key=CreateFLStrType(shape[3]);
13819 hid_t item_type2val;
13820 item_type2val=H5T_NATIVE_INT;
13821 hid_t item_type2valcompound;
13822 item_type2valcompound=H5Tcreate(H5T_COMPOUND, shape[3]+
sizeof(
int));
13823 H5Tinsert(item_type2valcompound,
"key", 0, item_type2key);
13824 H5Tinsert(item_type2valcompound,
"val", 0+shape[3], item_type2val);
13825 item_type1val=H5Tarray_create2(item_type2valcompound, 1, &shape02);
13826 hid_t item_type1compound;
13827 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((shape[3]+
sizeof(
int))*shape[2]));
13828 H5Tinsert(item_type1compound,
"key", 0, item_type1key);
13829 H5Tinsert(item_type1compound,
"val", 0+shape[1], item_type1val);
13830 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
13831 dst_sizes[i]=((shape[1]+((shape[3]+
sizeof(int))*shape[2]))*shape[0]);
13832 field_types[i]=item_type0;
13833 opened_types_.insert(item_type2valcompound);
13834 opened_types_.insert(item_type1val);
13835 opened_types_.insert(item_type1compound);
13836 opened_types_.insert(field_types[i]);
13840 }
else if(valtype==
typeid(std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>)){
13842 if(shape.empty()||shape[0]<1&&shape[5]<1&&shape[6]<1){
13845 hid_t item_type1elem;
13846 hid_t item_type2first;
13847 hid_t item_type3first;
13848 item_type3first=H5T_NATIVE_DOUBLE;
13849 hid_t item_type3second;
13850 item_type3second=H5T_NATIVE_DOUBLE;
13851 hid_t item_type3firstcompound;
13852 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
13853 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
13854 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
13855 hid_t item_type2second;
13856 hid_t item_type3key;
13857 item_type3key=sha1_type_;
13858 hid_t item_type3val;
13859 item_type3val=H5T_NATIVE_DOUBLE;
13860 hid_t item_type3secondcompound;
13861 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
13862 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
13863 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
13864 item_type2second=sha1_type_;
13870 hid_t item_type2elemcompound;
13871 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
13872 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
13873 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
13874 item_type0=sha1_type_;
13881 field_types[i]=sha1_type_;
13883 }
else if(shape[0]>=1&&shape[5]>=1&&shape[6]<1){
13886 hsize_t shape01=shape[0];
13887 hid_t item_type1elem;
13888 hid_t item_type2first;
13889 hid_t item_type3first;
13890 item_type3first=H5T_NATIVE_DOUBLE;
13891 hid_t item_type3second;
13892 item_type3second=H5T_NATIVE_DOUBLE;
13893 hid_t item_type3firstcompound;
13894 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
13895 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
13896 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
13897 hid_t item_type2second;
13898 hsize_t shape03=shape[5];
13899 hid_t item_type3key;
13900 item_type3key=sha1_type_;
13901 hid_t item_type3val;
13902 item_type3val=H5T_NATIVE_DOUBLE;
13903 hid_t item_type3secondcompound;
13904 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
13905 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
13906 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
13907 item_type2second=H5Tarray_create2(item_type3secondcompound, 1, &shape03);
13908 hid_t item_type2elemcompound;
13909 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(
double))*shape[5]));
13910 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
13911 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
13912 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
13913 dst_sizes[i]=((((((
sizeof(double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[5]))))*shape[0]);
13914 field_types[i]=item_type0;
13915 opened_types_.insert(item_type3firstcompound);
13916 opened_types_.insert(item_type3secondcompound);
13917 opened_types_.insert(item_type2second);
13918 opened_types_.insert(item_type2elemcompound);
13919 opened_types_.insert(field_types[i]);
13921 }
else if(shape[0]>=1&&shape[5]<1&&shape[6]>=1){
13924 hsize_t shape01=shape[0];
13925 hid_t item_type1elem;
13926 hid_t item_type2first;
13927 hid_t item_type3first;
13928 item_type3first=H5T_NATIVE_DOUBLE;
13929 hid_t item_type3second;
13930 item_type3second=H5T_NATIVE_DOUBLE;
13931 hid_t item_type3firstcompound;
13932 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
13933 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
13934 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
13935 hid_t item_type2second;
13936 hid_t item_type3key;
13937 item_type3key=sha1_type_;
13938 hid_t item_type3val;
13939 item_type3val=H5T_NATIVE_DOUBLE;
13940 hid_t item_type3secondcompound;
13941 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
13942 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
13943 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
13944 item_type2second=sha1_type_;
13950 hid_t item_type2elemcompound;
13951 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
13952 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
13953 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
13954 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
13955 dst_sizes[i]=((((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE))))*shape[0]);
13956 field_types[i]=item_type0;
13957 opened_types_.insert(item_type3firstcompound);
13958 opened_types_.insert(item_type3secondcompound);
13959 opened_types_.insert(item_type2second);
13960 opened_types_.insert(item_type2elemcompound);
13961 opened_types_.insert(field_types[i]);
13963 }
else if(shape[0]>=1&&shape[5]<1&&shape[6]<1){
13966 hsize_t shape01=shape[0];
13967 hid_t item_type1elem;
13968 hid_t item_type2first;
13969 hid_t item_type3first;
13970 item_type3first=H5T_NATIVE_DOUBLE;
13971 hid_t item_type3second;
13972 item_type3second=H5T_NATIVE_DOUBLE;
13973 hid_t item_type3firstcompound;
13974 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
13975 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
13976 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
13977 hid_t item_type2second;
13978 hid_t item_type3key;
13979 item_type3key=sha1_type_;
13980 hid_t item_type3val;
13981 item_type3val=H5T_NATIVE_DOUBLE;
13982 hid_t item_type3secondcompound;
13983 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
13984 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
13985 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
13986 item_type2second=sha1_type_;
13992 hid_t item_type2elemcompound;
13993 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
13994 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
13995 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
13996 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
13997 dst_sizes[i]=((((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE))))*shape[0]);
13998 field_types[i]=item_type0;
13999 opened_types_.insert(item_type3firstcompound);
14000 opened_types_.insert(item_type3secondcompound);
14001 opened_types_.insert(item_type2second);
14002 opened_types_.insert(item_type2elemcompound);
14003 opened_types_.insert(field_types[i]);
14005 }
else if(shape[0]<1&&shape[5]>=1&&shape[6]>=1){
14008 hid_t item_type1elem;
14009 hid_t item_type2first;
14010 hid_t item_type3first;
14011 item_type3first=H5T_NATIVE_DOUBLE;
14012 hid_t item_type3second;
14013 item_type3second=H5T_NATIVE_DOUBLE;
14014 hid_t item_type3firstcompound;
14015 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14016 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
14017 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
14018 hid_t item_type2second;
14019 hsize_t shape03=shape[5];
14020 hid_t item_type3key;
14021 item_type3key=sha1_type_;
14022 hid_t item_type3val;
14023 item_type3val=H5T_NATIVE_DOUBLE;
14024 hid_t item_type3secondcompound;
14025 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
14026 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
14027 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
14028 item_type2second=sha1_type_;
14034 hid_t item_type2elemcompound;
14035 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
14036 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
14037 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
14038 item_type0=sha1_type_;
14045 field_types[i]=sha1_type_;
14047 }
else if(shape[0]<1&&shape[5]>=1&&shape[6]<1){
14050 hid_t item_type1elem;
14051 hid_t item_type2first;
14052 hid_t item_type3first;
14053 item_type3first=H5T_NATIVE_DOUBLE;
14054 hid_t item_type3second;
14055 item_type3second=H5T_NATIVE_DOUBLE;
14056 hid_t item_type3firstcompound;
14057 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14058 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
14059 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
14060 hid_t item_type2second;
14061 hsize_t shape03=shape[5];
14062 hid_t item_type3key;
14063 item_type3key=sha1_type_;
14064 hid_t item_type3val;
14065 item_type3val=H5T_NATIVE_DOUBLE;
14066 hid_t item_type3secondcompound;
14067 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
14068 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
14069 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
14070 item_type2second=sha1_type_;
14076 hid_t item_type2elemcompound;
14077 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
14078 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
14079 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
14080 item_type0=sha1_type_;
14087 field_types[i]=sha1_type_;
14089 }
else if(shape[0]<1&&shape[5]<1&&shape[6]>=1){
14092 hid_t item_type1elem;
14093 hid_t item_type2first;
14094 hid_t item_type3first;
14095 item_type3first=H5T_NATIVE_DOUBLE;
14096 hid_t item_type3second;
14097 item_type3second=H5T_NATIVE_DOUBLE;
14098 hid_t item_type3firstcompound;
14099 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14100 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
14101 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
14102 hid_t item_type2second;
14103 hid_t item_type3key;
14104 item_type3key=sha1_type_;
14105 hid_t item_type3val;
14106 item_type3val=H5T_NATIVE_DOUBLE;
14107 hid_t item_type3secondcompound;
14108 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
14109 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
14110 H5Tinsert(item_type3secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type3val);
14111 item_type2second=sha1_type_;
14117 hid_t item_type2elemcompound;
14118 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
14119 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
14120 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
14121 item_type0=sha1_type_;
14128 field_types[i]=sha1_type_;
14133 hsize_t shape01=shape[0];
14134 hid_t item_type1elem;
14135 hid_t item_type2first;
14136 hid_t item_type3first;
14137 item_type3first=H5T_NATIVE_DOUBLE;
14138 hid_t item_type3second;
14139 item_type3second=H5T_NATIVE_DOUBLE;
14140 hid_t item_type3firstcompound;
14141 item_type3firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14142 H5Tinsert(item_type3firstcompound,
"first", 0, item_type3first);
14143 H5Tinsert(item_type3firstcompound,
"second", 0+
sizeof(
double), item_type3second);
14144 hid_t item_type2second;
14145 hsize_t shape03=shape[5];
14146 hid_t item_type3key;
14147 item_type3key=CreateFLStrType(shape[6]);
14148 hid_t item_type3val;
14149 item_type3val=H5T_NATIVE_DOUBLE;
14150 hid_t item_type3secondcompound;
14151 item_type3secondcompound=H5Tcreate(H5T_COMPOUND, shape[6]+
sizeof(
double));
14152 H5Tinsert(item_type3secondcompound,
"key", 0, item_type3key);
14153 H5Tinsert(item_type3secondcompound,
"val", 0+shape[6], item_type3val);
14154 item_type2second=H5Tarray_create2(item_type3secondcompound, 1, &shape03);
14155 hid_t item_type2elemcompound;
14156 item_type2elemcompound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+((shape[6]+
sizeof(
double))*shape[5]));
14157 H5Tinsert(item_type2elemcompound,
"first", 0, item_type3firstcompound);
14158 H5Tinsert(item_type2elemcompound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type2second);
14159 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
14160 dst_sizes[i]=((((((
sizeof(double)+
sizeof(
double)))+((shape[6]+
sizeof(double))*shape[5]))))*shape[0]);
14161 field_types[i]=item_type0;
14162 opened_types_.insert(item_type3firstcompound);
14163 opened_types_.insert(item_type3secondcompound);
14164 opened_types_.insert(item_type2second);
14165 opened_types_.insert(item_type2elemcompound);
14166 opened_types_.insert(field_types[i]);
14170 }
else if(valtype==
typeid(std::pair<
int, std::pair<std::string, std::string>>)){
14172 if(shape.empty()||shape[3]<1&&shape[4]<1){
14175 hid_t item_type1first;
14176 item_type1first=H5T_NATIVE_INT;
14177 hid_t item_type1second;
14178 hid_t item_type2first;
14179 item_type2first=sha1_type_;
14180 hid_t item_type2second;
14181 item_type2second=sha1_type_;
14182 hid_t item_type2secondcompound;
14184 H5Tinsert(item_type2secondcompound,
"first", 0, item_type2first);
14185 H5Tinsert(item_type2secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14186 hid_t item_type1compound;
14188 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14189 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type2secondcompound);
14191 field_types[i]=item_type1compound;
14192 opened_types_.insert(item_type2secondcompound);
14193 opened_types_.insert(field_types[i]);
14195 }
else if(shape[3]<1&&shape[4]>=1){
14198 hid_t item_type1first;
14199 item_type1first=H5T_NATIVE_INT;
14200 hid_t item_type1second;
14201 hid_t item_type2first;
14202 item_type2first=sha1_type_;
14203 hid_t item_type2second;
14204 item_type2second=CreateFLStrType(shape[4]);
14205 hid_t item_type2secondcompound;
14206 item_type2secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+shape[4]);
14207 H5Tinsert(item_type2secondcompound,
"first", 0, item_type2first);
14208 H5Tinsert(item_type2secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14209 hid_t item_type1compound;
14210 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((
CYCLUS_SHA1_SIZE+shape[4])));
14211 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14212 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type2secondcompound);
14214 field_types[i]=item_type1compound;
14215 opened_types_.insert(item_type2secondcompound);
14216 opened_types_.insert(field_types[i]);
14218 }
else if(shape[3]>=1&&shape[4]<1){
14221 hid_t item_type1first;
14222 item_type1first=H5T_NATIVE_INT;
14223 hid_t item_type1second;
14224 hid_t item_type2first;
14225 item_type2first=CreateFLStrType(shape[3]);
14226 hid_t item_type2second;
14227 item_type2second=sha1_type_;
14228 hid_t item_type2secondcompound;
14229 item_type2secondcompound=H5Tcreate(H5T_COMPOUND, shape[3]+
CYCLUS_SHA1_SIZE);
14230 H5Tinsert(item_type2secondcompound,
"first", 0, item_type2first);
14231 H5Tinsert(item_type2secondcompound,
"second", 0+shape[3], item_type2second);
14232 hid_t item_type1compound;
14233 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[3]+
CYCLUS_SHA1_SIZE)));
14234 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14235 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type2secondcompound);
14237 field_types[i]=item_type1compound;
14238 opened_types_.insert(item_type2secondcompound);
14239 opened_types_.insert(field_types[i]);
14244 hid_t item_type1first;
14245 item_type1first=H5T_NATIVE_INT;
14246 hid_t item_type1second;
14247 hid_t item_type2first;
14248 item_type2first=CreateFLStrType(shape[3]);
14249 hid_t item_type2second;
14250 item_type2second=CreateFLStrType(shape[4]);
14251 hid_t item_type2secondcompound;
14252 item_type2secondcompound=H5Tcreate(H5T_COMPOUND, shape[3]+shape[4]);
14253 H5Tinsert(item_type2secondcompound,
"first", 0, item_type2first);
14254 H5Tinsert(item_type2secondcompound,
"second", 0+shape[3], item_type2second);
14255 hid_t item_type1compound;
14256 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[3]+shape[4])));
14257 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14258 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
int), item_type2secondcompound);
14259 dst_sizes[i]=((
sizeof(int)+((shape[3]+shape[4]))));
14260 field_types[i]=item_type1compound;
14261 opened_types_.insert(item_type2secondcompound);
14262 opened_types_.insert(field_types[i]);
14266 }
else if(valtype==
typeid(std::pair<double, double>)){
14270 hid_t item_type1first;
14271 item_type1first=H5T_NATIVE_DOUBLE;
14272 hid_t item_type1second;
14273 item_type1second=H5T_NATIVE_DOUBLE;
14274 hid_t item_type1compound;
14275 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14276 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14277 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
double), item_type1second);
14278 dst_sizes[i]=((
sizeof(double)+
sizeof(
double)));
14279 field_types[i]=item_type1compound;
14280 opened_types_.insert(field_types[i]);
14282 }
else if(valtype==
typeid(std::pair<std::pair<double, double>, std::map<std::string, double>>)){
14284 if(shape.empty()||shape[4]<1&&shape[5]<1){
14287 hid_t item_type1first;
14288 hid_t item_type2first;
14289 item_type2first=H5T_NATIVE_DOUBLE;
14290 hid_t item_type2second;
14291 item_type2second=H5T_NATIVE_DOUBLE;
14292 hid_t item_type2firstcompound;
14293 item_type2firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14294 H5Tinsert(item_type2firstcompound,
"first", 0, item_type2first);
14295 H5Tinsert(item_type2firstcompound,
"second", 0+
sizeof(
double), item_type2second);
14296 hid_t item_type1second;
14297 hid_t item_type2key;
14298 item_type2key=sha1_type_;
14299 hid_t item_type2val;
14300 item_type2val=H5T_NATIVE_DOUBLE;
14301 hid_t item_type2secondcompound;
14302 item_type2secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
14303 H5Tinsert(item_type2secondcompound,
"key", 0, item_type2key);
14304 H5Tinsert(item_type2secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
14305 item_type1second=sha1_type_;
14311 hid_t item_type1compound;
14312 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
14313 H5Tinsert(item_type1compound,
"first", 0, item_type2firstcompound);
14314 H5Tinsert(item_type1compound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type1second);
14316 field_types[i]=item_type1compound;
14317 opened_types_.insert(item_type2firstcompound);
14318 opened_types_.insert(item_type2secondcompound);
14319 opened_types_.insert(item_type1second);
14320 opened_types_.insert(field_types[i]);
14322 }
else if(shape[4]>=1&&shape[5]<1){
14325 hid_t item_type1first;
14326 hid_t item_type2first;
14327 item_type2first=H5T_NATIVE_DOUBLE;
14328 hid_t item_type2second;
14329 item_type2second=H5T_NATIVE_DOUBLE;
14330 hid_t item_type2firstcompound;
14331 item_type2firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14332 H5Tinsert(item_type2firstcompound,
"first", 0, item_type2first);
14333 H5Tinsert(item_type2firstcompound,
"second", 0+
sizeof(
double), item_type2second);
14334 hid_t item_type1second;
14335 hsize_t shape02=shape[4];
14336 hid_t item_type2key;
14337 item_type2key=sha1_type_;
14338 hid_t item_type2val;
14339 item_type2val=H5T_NATIVE_DOUBLE;
14340 hid_t item_type2secondcompound;
14341 item_type2secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
14342 H5Tinsert(item_type2secondcompound,
"key", 0, item_type2key);
14343 H5Tinsert(item_type2secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
14344 item_type1second=H5Tarray_create2(item_type2secondcompound, 1, &shape02);
14345 hid_t item_type1compound;
14346 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(
double))*shape[4]));
14347 H5Tinsert(item_type1compound,
"first", 0, item_type2firstcompound);
14348 H5Tinsert(item_type1compound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type1second);
14349 dst_sizes[i]=((((
sizeof(double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[4])));
14350 field_types[i]=item_type1compound;
14351 opened_types_.insert(item_type2firstcompound);
14352 opened_types_.insert(item_type2secondcompound);
14353 opened_types_.insert(item_type1second);
14354 opened_types_.insert(field_types[i]);
14356 }
else if(shape[4]<1&&shape[5]>=1){
14359 hid_t item_type1first;
14360 hid_t item_type2first;
14361 item_type2first=H5T_NATIVE_DOUBLE;
14362 hid_t item_type2second;
14363 item_type2second=H5T_NATIVE_DOUBLE;
14364 hid_t item_type2firstcompound;
14365 item_type2firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14366 H5Tinsert(item_type2firstcompound,
"first", 0, item_type2first);
14367 H5Tinsert(item_type2firstcompound,
"second", 0+
sizeof(
double), item_type2second);
14368 hid_t item_type1second;
14369 hid_t item_type2key;
14370 item_type2key=sha1_type_;
14371 hid_t item_type2val;
14372 item_type2val=H5T_NATIVE_DOUBLE;
14373 hid_t item_type2secondcompound;
14374 item_type2secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+
sizeof(
double));
14375 H5Tinsert(item_type2secondcompound,
"key", 0, item_type2key);
14376 H5Tinsert(item_type2secondcompound,
"val", 0+
CYCLUS_SHA1_SIZE, item_type2val);
14377 item_type1second=sha1_type_;
14383 hid_t item_type1compound;
14384 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE));
14385 H5Tinsert(item_type1compound,
"first", 0, item_type2firstcompound);
14386 H5Tinsert(item_type1compound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type1second);
14388 field_types[i]=item_type1compound;
14389 opened_types_.insert(item_type2firstcompound);
14390 opened_types_.insert(item_type2secondcompound);
14391 opened_types_.insert(item_type1second);
14392 opened_types_.insert(field_types[i]);
14397 hid_t item_type1first;
14398 hid_t item_type2first;
14399 item_type2first=H5T_NATIVE_DOUBLE;
14400 hid_t item_type2second;
14401 item_type2second=H5T_NATIVE_DOUBLE;
14402 hid_t item_type2firstcompound;
14403 item_type2firstcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+
sizeof(
double));
14404 H5Tinsert(item_type2firstcompound,
"first", 0, item_type2first);
14405 H5Tinsert(item_type2firstcompound,
"second", 0+
sizeof(
double), item_type2second);
14406 hid_t item_type1second;
14407 hsize_t shape02=shape[4];
14408 hid_t item_type2key;
14409 item_type2key=CreateFLStrType(shape[5]);
14410 hid_t item_type2val;
14411 item_type2val=H5T_NATIVE_DOUBLE;
14412 hid_t item_type2secondcompound;
14413 item_type2secondcompound=H5Tcreate(H5T_COMPOUND, shape[5]+
sizeof(
double));
14414 H5Tinsert(item_type2secondcompound,
"key", 0, item_type2key);
14415 H5Tinsert(item_type2secondcompound,
"val", 0+shape[5], item_type2val);
14416 item_type1second=H5Tarray_create2(item_type2secondcompound, 1, &shape02);
14417 hid_t item_type1compound;
14418 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
sizeof(
double)+
sizeof(
double)))+((shape[5]+
sizeof(
double))*shape[4]));
14419 H5Tinsert(item_type1compound,
"first", 0, item_type2firstcompound);
14420 H5Tinsert(item_type1compound,
"second", 0+((
sizeof(
double)+
sizeof(
double))), item_type1second);
14421 dst_sizes[i]=((((
sizeof(double)+
sizeof(
double)))+((shape[5]+
sizeof(double))*shape[4])));
14422 field_types[i]=item_type1compound;
14423 opened_types_.insert(item_type2firstcompound);
14424 opened_types_.insert(item_type2secondcompound);
14425 opened_types_.insert(item_type1second);
14426 opened_types_.insert(field_types[i]);
14430 }
else if(valtype==
typeid(std::pair<
double, std::map<int, double>>)){
14432 if(shape.empty()||shape[2]<1){
14435 hid_t item_type1first;
14436 item_type1first=H5T_NATIVE_DOUBLE;
14437 hid_t item_type1second;
14438 hid_t item_type2key;
14439 item_type2key=H5T_NATIVE_INT;
14440 hid_t item_type2val;
14441 item_type2val=H5T_NATIVE_DOUBLE;
14442 hid_t item_type2secondcompound;
14443 item_type2secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
14444 H5Tinsert(item_type2secondcompound,
"key", 0, item_type2key);
14445 H5Tinsert(item_type2secondcompound,
"val", 0+
sizeof(
int), item_type2val);
14446 item_type1second=sha1_type_;
14452 hid_t item_type1compound;
14453 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+(
CYCLUS_SHA1_SIZE));
14454 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14455 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
double), item_type1second);
14457 field_types[i]=item_type1compound;
14458 opened_types_.insert(item_type2secondcompound);
14459 opened_types_.insert(item_type1second);
14460 opened_types_.insert(field_types[i]);
14465 hid_t item_type1first;
14466 item_type1first=H5T_NATIVE_DOUBLE;
14467 hid_t item_type1second;
14468 hsize_t shape02=shape[2];
14469 hid_t item_type2key;
14470 item_type2key=H5T_NATIVE_INT;
14471 hid_t item_type2val;
14472 item_type2val=H5T_NATIVE_DOUBLE;
14473 hid_t item_type2secondcompound;
14474 item_type2secondcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+
sizeof(
double));
14475 H5Tinsert(item_type2secondcompound,
"key", 0, item_type2key);
14476 H5Tinsert(item_type2secondcompound,
"val", 0+
sizeof(
int), item_type2val);
14477 item_type1second=H5Tarray_create2(item_type2secondcompound, 1, &shape02);
14478 hid_t item_type1compound;
14479 item_type1compound=H5Tcreate(H5T_COMPOUND,
sizeof(
double)+((
sizeof(
int)+
sizeof(
double))*shape[2]));
14480 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14481 H5Tinsert(item_type1compound,
"second", 0+
sizeof(
double), item_type1second);
14482 dst_sizes[i]=((
sizeof(double)+((
sizeof(
int)+
sizeof(
double))*shape[2])));
14483 field_types[i]=item_type1compound;
14484 opened_types_.insert(item_type2secondcompound);
14485 opened_types_.insert(item_type1second);
14486 opened_types_.insert(field_types[i]);
14490 }
else if(valtype==
typeid(std::vector<std::pair<
int, std::pair<std::string, std::string>>>)){
14492 if(shape.empty()||shape[0]<1&&shape[4]<1&&shape[5]<1){
14495 hid_t item_type1elem;
14496 hid_t item_type2first;
14497 item_type2first=H5T_NATIVE_INT;
14498 hid_t item_type2second;
14499 hid_t item_type3first;
14500 item_type3first=sha1_type_;
14501 hid_t item_type3second;
14502 item_type3second=sha1_type_;
14503 hid_t item_type3secondcompound;
14505 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14506 H5Tinsert(item_type3secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type3second);
14507 hid_t item_type2elemcompound;
14509 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14510 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14511 item_type0=sha1_type_;
14518 field_types[i]=sha1_type_;
14520 }
else if(shape[0]>=1&&shape[4]<1&&shape[5]>=1){
14523 hsize_t shape01=shape[0];
14524 hid_t item_type1elem;
14525 hid_t item_type2first;
14526 item_type2first=H5T_NATIVE_INT;
14527 hid_t item_type2second;
14528 hid_t item_type3first;
14529 item_type3first=sha1_type_;
14530 hid_t item_type3second;
14531 item_type3second=CreateFLStrType(shape[5]);
14532 hid_t item_type3secondcompound;
14533 item_type3secondcompound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+shape[5]);
14534 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14535 H5Tinsert(item_type3secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type3second);
14536 hid_t item_type2elemcompound;
14537 item_type2elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((
CYCLUS_SHA1_SIZE+shape[5])));
14538 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14539 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14540 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
14542 field_types[i]=item_type0;
14543 opened_types_.insert(item_type3secondcompound);
14544 opened_types_.insert(item_type2elemcompound);
14545 opened_types_.insert(field_types[i]);
14547 }
else if(shape[0]>=1&&shape[4]>=1&&shape[5]<1){
14550 hsize_t shape01=shape[0];
14551 hid_t item_type1elem;
14552 hid_t item_type2first;
14553 item_type2first=H5T_NATIVE_INT;
14554 hid_t item_type2second;
14555 hid_t item_type3first;
14556 item_type3first=CreateFLStrType(shape[4]);
14557 hid_t item_type3second;
14558 item_type3second=sha1_type_;
14559 hid_t item_type3secondcompound;
14560 item_type3secondcompound=H5Tcreate(H5T_COMPOUND, shape[4]+
CYCLUS_SHA1_SIZE);
14561 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14562 H5Tinsert(item_type3secondcompound,
"second", 0+shape[4], item_type3second);
14563 hid_t item_type2elemcompound;
14564 item_type2elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[4]+
CYCLUS_SHA1_SIZE)));
14565 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14566 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14567 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
14569 field_types[i]=item_type0;
14570 opened_types_.insert(item_type3secondcompound);
14571 opened_types_.insert(item_type2elemcompound);
14572 opened_types_.insert(field_types[i]);
14574 }
else if(shape[0]>=1&&shape[4]<1&&shape[5]<1){
14577 hsize_t shape01=shape[0];
14578 hid_t item_type1elem;
14579 hid_t item_type2first;
14580 item_type2first=H5T_NATIVE_INT;
14581 hid_t item_type2second;
14582 hid_t item_type3first;
14583 item_type3first=sha1_type_;
14584 hid_t item_type3second;
14585 item_type3second=sha1_type_;
14586 hid_t item_type3secondcompound;
14588 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14589 H5Tinsert(item_type3secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type3second);
14590 hid_t item_type2elemcompound;
14592 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14593 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14594 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
14596 field_types[i]=item_type0;
14597 opened_types_.insert(item_type3secondcompound);
14598 opened_types_.insert(item_type2elemcompound);
14599 opened_types_.insert(field_types[i]);
14601 }
else if(shape[0]<1&&shape[4]>=1&&shape[5]>=1){
14604 hid_t item_type1elem;
14605 hid_t item_type2first;
14606 item_type2first=H5T_NATIVE_INT;
14607 hid_t item_type2second;
14608 hid_t item_type3first;
14609 item_type3first=sha1_type_;
14610 hid_t item_type3second;
14611 item_type3second=sha1_type_;
14612 hid_t item_type3secondcompound;
14614 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14615 H5Tinsert(item_type3secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type3second);
14616 hid_t item_type2elemcompound;
14618 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14619 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14620 item_type0=sha1_type_;
14627 field_types[i]=sha1_type_;
14629 }
else if(shape[0]<1&&shape[4]<1&&shape[5]>=1){
14632 hid_t item_type1elem;
14633 hid_t item_type2first;
14634 item_type2first=H5T_NATIVE_INT;
14635 hid_t item_type2second;
14636 hid_t item_type3first;
14637 item_type3first=sha1_type_;
14638 hid_t item_type3second;
14639 item_type3second=sha1_type_;
14640 hid_t item_type3secondcompound;
14642 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14643 H5Tinsert(item_type3secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type3second);
14644 hid_t item_type2elemcompound;
14646 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14647 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14648 item_type0=sha1_type_;
14655 field_types[i]=sha1_type_;
14657 }
else if(shape[0]<1&&shape[4]>=1&&shape[5]<1){
14660 hid_t item_type1elem;
14661 hid_t item_type2first;
14662 item_type2first=H5T_NATIVE_INT;
14663 hid_t item_type2second;
14664 hid_t item_type3first;
14665 item_type3first=sha1_type_;
14666 hid_t item_type3second;
14667 item_type3second=sha1_type_;
14668 hid_t item_type3secondcompound;
14670 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14671 H5Tinsert(item_type3secondcompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type3second);
14672 hid_t item_type2elemcompound;
14674 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14675 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14676 item_type0=sha1_type_;
14683 field_types[i]=sha1_type_;
14688 hsize_t shape01=shape[0];
14689 hid_t item_type1elem;
14690 hid_t item_type2first;
14691 item_type2first=H5T_NATIVE_INT;
14692 hid_t item_type2second;
14693 hid_t item_type3first;
14694 item_type3first=CreateFLStrType(shape[4]);
14695 hid_t item_type3second;
14696 item_type3second=CreateFLStrType(shape[5]);
14697 hid_t item_type3secondcompound;
14698 item_type3secondcompound=H5Tcreate(H5T_COMPOUND, shape[4]+shape[5]);
14699 H5Tinsert(item_type3secondcompound,
"first", 0, item_type3first);
14700 H5Tinsert(item_type3secondcompound,
"second", 0+shape[4], item_type3second);
14701 hid_t item_type2elemcompound;
14702 item_type2elemcompound=H5Tcreate(H5T_COMPOUND,
sizeof(
int)+((shape[4]+shape[5])));
14703 H5Tinsert(item_type2elemcompound,
"first", 0, item_type2first);
14704 H5Tinsert(item_type2elemcompound,
"second", 0+
sizeof(
int), item_type3secondcompound);
14705 item_type0=H5Tarray_create2(item_type2elemcompound, 1, &shape01);
14706 dst_sizes[i]=((((
sizeof(int)+((shape[4]+shape[5])))))*shape[0]);
14707 field_types[i]=item_type0;
14708 opened_types_.insert(item_type3secondcompound);
14709 opened_types_.insert(item_type2elemcompound);
14710 opened_types_.insert(field_types[i]);
14714 }
else if(valtype==
typeid(std::pair<std::string, std::vector<double>>)){
14716 if(shape.empty()||shape[1]<1&&shape[2]<1){
14719 hid_t item_type1first;
14720 item_type1first=sha1_type_;
14721 hid_t item_type1second;
14722 hid_t item_type2elem;
14723 item_type2elem=H5T_NATIVE_DOUBLE;
14724 item_type1second=sha1_type_;
14730 hid_t item_type1compound;
14732 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14733 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
14735 field_types[i]=item_type1compound;
14736 opened_types_.insert(item_type1second);
14737 opened_types_.insert(field_types[i]);
14739 }
else if(shape[1]<1&&shape[2]>=1){
14742 hid_t item_type1first;
14743 item_type1first=sha1_type_;
14744 hid_t item_type1second;
14745 hsize_t shape02=shape[2];
14746 hid_t item_type2elem;
14747 item_type2elem=H5T_NATIVE_DOUBLE;
14748 item_type1second=H5Tarray_create2(item_type2elem, 1, &shape02);
14749 hid_t item_type1compound;
14750 item_type1compound=H5Tcreate(H5T_COMPOUND,
CYCLUS_SHA1_SIZE+((
sizeof(
double))*shape[2]));
14751 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14752 H5Tinsert(item_type1compound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type1second);
14754 field_types[i]=item_type1compound;
14755 opened_types_.insert(item_type1second);
14756 opened_types_.insert(field_types[i]);
14758 }
else if(shape[1]>=1&&shape[2]<1){
14761 hid_t item_type1first;
14762 item_type1first=CreateFLStrType(shape[1]);
14763 hid_t item_type1second;
14764 hid_t item_type2elem;
14765 item_type2elem=H5T_NATIVE_DOUBLE;
14766 item_type1second=sha1_type_;
14772 hid_t item_type1compound;
14774 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14775 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
14777 field_types[i]=item_type1compound;
14778 opened_types_.insert(item_type1second);
14779 opened_types_.insert(field_types[i]);
14784 hid_t item_type1first;
14785 item_type1first=CreateFLStrType(shape[1]);
14786 hid_t item_type1second;
14787 hsize_t shape02=shape[2];
14788 hid_t item_type2elem;
14789 item_type2elem=H5T_NATIVE_DOUBLE;
14790 item_type1second=H5Tarray_create2(item_type2elem, 1, &shape02);
14791 hid_t item_type1compound;
14792 item_type1compound=H5Tcreate(H5T_COMPOUND, shape[1]+((
sizeof(
double))*shape[2]));
14793 H5Tinsert(item_type1compound,
"first", 0, item_type1first);
14794 H5Tinsert(item_type1compound,
"second", 0+shape[1], item_type1second);
14795 dst_sizes[i]=((shape[1]+((
sizeof(double))*shape[2])));
14796 field_types[i]=item_type1compound;
14797 opened_types_.insert(item_type1second);
14798 opened_types_.insert(field_types[i]);
14802 }
else if(valtype==
typeid(std::map<std::pair<std::string, std::string>,
int>)){
14804 if(shape.empty()||shape[0]<1&&shape[2]<1&&shape[3]<1){
14807 hid_t item_type1key;
14808 hid_t item_type2first;
14809 item_type2first=sha1_type_;
14810 hid_t item_type2second;
14811 item_type2second=sha1_type_;
14812 hid_t item_type2keycompound;
14814 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14815 H5Tinsert(item_type2keycompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14816 hid_t item_type1val;
14817 item_type1val=H5T_NATIVE_INT;
14818 hid_t item_type1compound;
14820 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14822 item_type0=sha1_type_;
14829 field_types[i]=sha1_type_;
14831 }
else if(shape[0]>=1&&shape[2]>=1&&shape[3]<1){
14834 hsize_t shape01=shape[0];
14835 hid_t item_type1key;
14836 hid_t item_type2first;
14837 item_type2first=CreateFLStrType(shape[2]);
14838 hid_t item_type2second;
14839 item_type2second=sha1_type_;
14840 hid_t item_type2keycompound;
14842 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14843 H5Tinsert(item_type2keycompound,
"second", 0+shape[2], item_type2second);
14844 hid_t item_type1val;
14845 item_type1val=H5T_NATIVE_INT;
14846 hid_t item_type1compound;
14847 item_type1compound=H5Tcreate(H5T_COMPOUND, ((shape[2]+
CYCLUS_SHA1_SIZE))+
sizeof(
int));
14848 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14849 H5Tinsert(item_type1compound,
"val", 0+((shape[2]+
CYCLUS_SHA1_SIZE)), item_type1val);
14850 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
14852 field_types[i]=item_type0;
14853 opened_types_.insert(item_type2keycompound);
14854 opened_types_.insert(item_type1compound);
14855 opened_types_.insert(field_types[i]);
14857 }
else if(shape[0]>=1&&shape[2]<1&&shape[3]>=1){
14860 hsize_t shape01=shape[0];
14861 hid_t item_type1key;
14862 hid_t item_type2first;
14863 item_type2first=sha1_type_;
14864 hid_t item_type2second;
14865 item_type2second=CreateFLStrType(shape[3]);
14866 hid_t item_type2keycompound;
14868 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14869 H5Tinsert(item_type2keycompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14870 hid_t item_type1val;
14871 item_type1val=H5T_NATIVE_INT;
14872 hid_t item_type1compound;
14873 item_type1compound=H5Tcreate(H5T_COMPOUND, ((
CYCLUS_SHA1_SIZE+shape[3]))+
sizeof(
int));
14874 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14875 H5Tinsert(item_type1compound,
"val", 0+((
CYCLUS_SHA1_SIZE+shape[3])), item_type1val);
14876 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
14878 field_types[i]=item_type0;
14879 opened_types_.insert(item_type2keycompound);
14880 opened_types_.insert(item_type1compound);
14881 opened_types_.insert(field_types[i]);
14883 }
else if(shape[0]>=1&&shape[2]<1&&shape[3]<1){
14886 hsize_t shape01=shape[0];
14887 hid_t item_type1key;
14888 hid_t item_type2first;
14889 item_type2first=sha1_type_;
14890 hid_t item_type2second;
14891 item_type2second=sha1_type_;
14892 hid_t item_type2keycompound;
14894 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14895 H5Tinsert(item_type2keycompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14896 hid_t item_type1val;
14897 item_type1val=H5T_NATIVE_INT;
14898 hid_t item_type1compound;
14900 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14902 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
14904 field_types[i]=item_type0;
14905 opened_types_.insert(item_type2keycompound);
14906 opened_types_.insert(item_type1compound);
14907 opened_types_.insert(field_types[i]);
14909 }
else if(shape[0]<1&&shape[2]>=1&&shape[3]>=1){
14912 hid_t item_type1key;
14913 hid_t item_type2first;
14914 item_type2first=sha1_type_;
14915 hid_t item_type2second;
14916 item_type2second=sha1_type_;
14917 hid_t item_type2keycompound;
14919 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14920 H5Tinsert(item_type2keycompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14921 hid_t item_type1val;
14922 item_type1val=H5T_NATIVE_INT;
14923 hid_t item_type1compound;
14925 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14927 item_type0=sha1_type_;
14934 field_types[i]=sha1_type_;
14936 }
else if(shape[0]<1&&shape[2]>=1&&shape[3]<1){
14939 hid_t item_type1key;
14940 hid_t item_type2first;
14941 item_type2first=sha1_type_;
14942 hid_t item_type2second;
14943 item_type2second=sha1_type_;
14944 hid_t item_type2keycompound;
14946 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14947 H5Tinsert(item_type2keycompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14948 hid_t item_type1val;
14949 item_type1val=H5T_NATIVE_INT;
14950 hid_t item_type1compound;
14952 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14954 item_type0=sha1_type_;
14961 field_types[i]=sha1_type_;
14963 }
else if(shape[0]<1&&shape[2]<1&&shape[3]>=1){
14966 hid_t item_type1key;
14967 hid_t item_type2first;
14968 item_type2first=sha1_type_;
14969 hid_t item_type2second;
14970 item_type2second=sha1_type_;
14971 hid_t item_type2keycompound;
14973 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
14974 H5Tinsert(item_type2keycompound,
"second", 0+
CYCLUS_SHA1_SIZE, item_type2second);
14975 hid_t item_type1val;
14976 item_type1val=H5T_NATIVE_INT;
14977 hid_t item_type1compound;
14979 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
14981 item_type0=sha1_type_;
14988 field_types[i]=sha1_type_;
14993 hsize_t shape01=shape[0];
14994 hid_t item_type1key;
14995 hid_t item_type2first;
14996 item_type2first=CreateFLStrType(shape[2]);
14997 hid_t item_type2second;
14998 item_type2second=CreateFLStrType(shape[3]);
14999 hid_t item_type2keycompound;
15000 item_type2keycompound=H5Tcreate(H5T_COMPOUND, shape[2]+shape[3]);
15001 H5Tinsert(item_type2keycompound,
"first", 0, item_type2first);
15002 H5Tinsert(item_type2keycompound,
"second", 0+shape[2], item_type2second);
15003 hid_t item_type1val;
15004 item_type1val=H5T_NATIVE_INT;
15005 hid_t item_type1compound;
15006 item_type1compound=H5Tcreate(H5T_COMPOUND, ((shape[2]+shape[3]))+
sizeof(
int));
15007 H5Tinsert(item_type1compound,
"key", 0, item_type2keycompound);
15008 H5Tinsert(item_type1compound,
"val", 0+((shape[2]+shape[3])), item_type1val);
15009 item_type0=H5Tarray_create2(item_type1compound, 1, &shape01);
15010 dst_sizes[i]=((((shape[2]+shape[3]))+
sizeof(int))*shape[0]);
15011 field_types[i]=item_type0;
15012 opened_types_.insert(item_type2keycompound);
15013 opened_types_.insert(item_type1compound);
15014 opened_types_.insert(field_types[i]);
15019 throw IOError(
"the type for column '"+std::string(field_names[i])+
"' is not yet supported in HDF5.");
15023 dst_size += dst_sizes[i];
15026 std::string titlestr = d->
title();
15027 const char* title = titlestr.c_str();
15029 int chunk_size = 1024;
15030 void* fill_data = NULL;
15034 status = H5TBmake_table(title, file_, title, nvals, 0, dst_size,
15035 field_names, dst_offset, field_types, chunk_size,
15036 fill_data, compress, data);
15038 std::stringstream ss;
15039 ss <<
"Failed to create HDF5 table:\n" \
15040 <<
" file " << path_ <<
"\n" \
15041 <<
" table " << title <<
"\n" \
15042 <<
" chunksize " << chunk_size <<
"\n" \
15043 <<
" rowsize " << dst_size <<
"\n";
15044 for (
int i = 0; i < nvals; ++i) {
15045 ss <<
" #" << i <<
" " << field_names[i] <<
"\n" \
15046 <<
" dbtype: " << dbtypes[i] <<
"\n" \
15047 <<
" h5type: " << field_types[i] <<
"\n" \
15048 <<
" size: " << dst_sizes[i] <<
"\n" \
15049 <<
" offset: " << dst_offset[i] <<
"\n";
15051 throw IOError(ss.str());
15055 hid_t tb_set = H5Dopen2(file_, title, H5P_DEFAULT);
15056 hid_t attr_space = H5Screate_simple(1, &nvals, &nvals);
15057 hid_t dbtypes_attr = H5Acreate2(tb_set,
"cyclus_dbtypes", H5T_NATIVE_INT,
15058 attr_space, H5P_DEFAULT, H5P_DEFAULT);
15059 H5Awrite(dbtypes_attr, H5T_NATIVE_INT, dbtypes);
15060 H5Aclose(dbtypes_attr);
15061 H5Sclose(attr_space);
15062 for(
int i = 0; i < nvals; ++i) {
15064 hsize_t nshape = shape.size();
15066 if(shape.size() == 0) {
15069 hid_t shape_space = H5Screate_simple(1, &nshape, &nshape);
15070 std::vector<int> shape_vector;
15071 for(
int j = 0; j < shape.size(); ++j) {
15072 shape_vector.push_back(shape[j]);
15075 if(shape.size() == 0) {
15076 shape_vector.push_back(-1);
15078 std::stringstream col_name;
15079 col_name <<
"shape" << i;
15080 hid_t shape_attr = H5Acreate2(tb_set, col_name.str().c_str(), H5T_NATIVE_INT,
15081 shape_space, H5P_DEFAULT, H5P_DEFAULT);
15082 H5Awrite(shape_attr, H5T_NATIVE_INT, &shape_vector[0]);
15083 H5Aclose(shape_attr);
15084 H5Sclose(shape_space);
15089 col_offsets_[d->
title()] = dst_offset;
15090 schema_sizes_[d->
title()] = dst_size;
15091 col_sizes_[d->
title()] = dst_sizes;
15092 schemas_[d->
title()] = dbtypes;
15099 hid_t dset = H5Dopen2(file_, table.c_str(), H5P_DEFAULT);
15100 hid_t dt = H5Dget_type(dset);
15101 hsize_t ncols = H5Tget_nmembers(dt);
15104 LoadTableTypes(table, dset, ncols);
15105 DbTypes* dbtypes = schemas_[table];
15108 std::map<string, DbTypes> rtn;
15109 for (i = 0; i < ncols; ++i) {
15110 colname = H5Tget_member_name(dt, i);
15111 fieldname = string(colname);
15113 rtn[fieldname] = dbtypes[i];
15123 std::list<ColumnInfo> schema;
15124 hid_t tb_set = H5Dopen2(file_, table.c_str(), H5P_DEFAULT);
15125 hid_t tb_type = H5Dget_type(tb_set);
15127 hsize_t ncols = H5Tget_nmembers(tb_type);
15128 LoadTableTypes(table, tb_set, ncols);
15129 DbTypes* dbtypes = schemas_[table];
15132 for (i = 0; i < ncols; ++i) {
15133 colname = H5Tget_member_name(tb_type, i);
15134 std::stringstream attr_name;
15135 attr_name <<
"shape" << i;
15136 hid_t attr_id = H5Aopen_by_name(tb_set,
".", attr_name.str().c_str(), H5P_DEFAULT, H5P_DEFAULT);
15137 hid_t attr_space = H5Aget_space(attr_id);
15138 int ndims = H5Sget_simple_extent_npoints(attr_space);
15139 std::vector<int> shape(ndims);
15140 H5Aread(attr_id, H5T_NATIVE_INT, &shape[0]);
15141 std::string colname_str = std::string(colname);
15143 schema.push_back(info);
15145 H5Sclose(attr_space);
15162 H5G_info_t root_info;
15163 hid_t root = H5Gopen(file_,
"/", H5P_DEFAULT);
15164 herr_t err = H5Gget_info(root, &root_info);
15165 for (i = 0; i < root_info.nlinks; ++i) {
15166 namelen = H5Lget_name_by_idx(root,
".", H5_INDEX_NAME, H5_ITER_NATIVE, i,
15167 NULL, 0, H5P_DEFAULT);
15168 H5Lget_name_by_idx(root,
".", H5_INDEX_NAME, H5_ITER_NATIVE, i,
15169 name, namelen+1, H5P_DEFAULT);
15170 std::string str_name = std::string(name, namelen);
15171 if (str_name.size() >= 4 && str_name.substr(str_name.size()-4) !=
"Keys" && str_name.substr(str_name.size()-4) !=
"Vals") {
15172 rtn.insert(str_name);
15173 }
else if (str_name.size() < 4) {
15174 rtn.insert(str_name);
15181void Hdf5Back::WriteGroup(
DatumList& group) {
15182 std::string title = group.front()->title();
15183 const char * c_title = title.c_str();
15185 size_t* offsets = col_offsets_[title];
15186 size_t* sizes = col_sizes_[title];
15187 size_t rowsize = schema_sizes_[title];
15189 char* buf =
new char[group.size() * rowsize];
15190 FillBuf(title, buf, group, sizes, rowsize);
15201 hid_t dset = H5Dopen2(file_, title.c_str(), H5P_DEFAULT);
15202 hid_t dtype = H5Dget_type(dset);
15203 hsize_t nrecords_add = group.size();
15204 hsize_t nrecords_orig;
15209 H5TBget_table_info(file_, c_title, &nfields, &nrecords_orig);
15210 dims[0] = nrecords_add + nrecords_orig;
15211 offset[0] = nrecords_orig;
15212 count[0] = nrecords_add;
15214 status = H5Dset_extent(dset, dims);
15215 hid_t dspace = H5Dget_space(dset);
15216 hid_t memspace = H5Screate_simple(1, count, NULL);
15217 status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET, offset, NULL, count, NULL);
15218 status = H5Dwrite(dset, dtype, memspace, dspace, H5P_DEFAULT, buf);
15221 std::stringstream ss;
15222 ss <<
"Failed to write to the HDF5 table:\n" \
15223 <<
" file " << path_ <<
"\n" \
15224 <<
" table " << title <<
"\n" \
15225 <<
" num. rows " << group.size() <<
"\n"
15226 <<
" rowsize " << rowsize <<
"\n";
15227 for (
int i = 0; i < group.front()->vals().size(); ++i) {
15228 ss <<
" # Column " << i <<
"\n" \
15229 <<
" dbtype: " << schemas_[title][i] <<
"\n" \
15230 <<
" size: " << sizes[i] <<
"\n" \
15231 <<
" offset: " << offsets[i] <<
"\n";
15233 throw IOError(ss.str());
15236 H5Sclose(memspace);
15243template <
typename T, DbTypes U>
15244Digest Hdf5Back::VLWrite(
const T& x) {
15248 hid_t keysds = VLDataset(U,
true);
15249 hid_t valsds = VLDataset(U,
false);
15250 if (vlkeys_[U].count(key) == 1)
15252 hvl_t buf = VLValToBuf(x);
15253 AppendVLKey(keysds, U, key);
15254 InsertVLVal(valsds, U, key, buf);
15259Digest Hdf5Back::VLWrite<std::string, VL_STRING>(
const std::string& x) {
15262 Digest key = hasher_.digest();
15263 hid_t keysds = VLDataset(
VL_STRING,
true);
15264 hid_t valsds = VLDataset(
VL_STRING,
false);
15265 if (vlkeys_[
VL_STRING].count(key) == 1)
15268 InsertVLVal(valsds,
VL_STRING, key, x);
15273Digest Hdf5Back::VLWrite<Blob, BLOB>(
const Blob& x) {
15277 hid_t keysds = VLDataset(
BLOB,
true);
15278 hid_t valsds = VLDataset(
BLOB,
false);
15279 if (vlkeys_[
BLOB].count(key) == 1)
15281 AppendVLKey(keysds,
BLOB, key);
15282 InsertVLVal(valsds,
BLOB, key, x.str());
15287void Hdf5Back::WriteToBuf<BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15290 size_t item_size0=
sizeof(char);
15291 memcpy(buf, val0, column);
15294void Hdf5Back::WriteToBuf<INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15297 size_t item_size0=
sizeof(int);
15298 memcpy(buf, val0, column);
15301void Hdf5Back::WriteToBuf<FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15304 size_t item_size0=
sizeof(float);
15305 memcpy(buf, val0, column);
15308void Hdf5Back::WriteToBuf<DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15311 size_t item_size0=
sizeof(double);
15312 memcpy(buf, val0, column);
15315void Hdf5Back::WriteToBuf<STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15316 std::string val0=a->
cast<std::string>();
15317 size_t item_size0=shape[0];
15319 valuelen0=std::min(val0.size(), item_size0);
15320 memcpy(buf, val0.c_str(), valuelen0);
15321 memset(buf+valuelen0, 0, item_size0-valuelen0);
15324void Hdf5Back::WriteToBuf<VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15325 std::string val0=a->
cast<std::string>();
15330 hid_t keysds0 = VLDataset(
VL_STRING,
true);
15331 hid_t valsds0 = VLDataset(
VL_STRING,
false);
15332 if (vlkeys_[
VL_STRING].count(key0) != 1) {
15334 InsertVLVal(valsds0,
VL_STRING, key0, val0);
15339void Hdf5Back::WriteToBuf<BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15345 hid_t keysds0 = VLDataset(
BLOB,
true);
15346 hid_t valsds0 = VLDataset(
BLOB,
false);
15347 if (vlkeys_[
BLOB].count(key0) != 1) {
15348 AppendVLKey(keysds0,
BLOB, key0);
15349 InsertVLVal(valsds0,
BLOB, key0, (val0).str());
15354void Hdf5Back::WriteToBuf<UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15355 boost::uuids::uuid val0=a->
cast<boost::uuids::uuid>();
15357 memcpy(buf, &(val0), item_size0);
15360void Hdf5Back::WriteToBuf<VECTOR_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15361 std::vector<int> val0=a->
cast<std::vector<int>>();
15362 size_t item_size0=((
sizeof(int))*shape[0]);
15363 size_t length0=shape[0];
15364 size_t item_size1elem=
sizeof(int);
15365 size_t total_item_size0=item_size1elem;
15366 if(total_item_size0*val0.size()>column){
15367 std::vector<int>::iterator eraseit=val0.begin();
15368 std::advance(eraseit, column/total_item_size0);
15369 val0.erase(eraseit,val0.end());
15372 unsigned int count0=0;
15373 std::vector<int>::iterator it0=val0.begin();
15374 for(;it0!=val0.end();++it0){
15375 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15379 if(total_item_size0*length0<column){
15380 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15385void Hdf5Back::WriteToBuf<VL_VECTOR_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15386 std::vector<int> val0=a->
cast<std::vector<int>>();
15388 size_t item_size1elem=
sizeof(int);
15389 size_t total_item_size0=item_size1elem;
15396 hvl_t buf0 = VLValToBuf(val0);
15403void Hdf5Back::WriteToBuf<VECTOR_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15404 std::vector<float> val0=a->
cast<std::vector<float>>();
15405 size_t item_size0=((
sizeof(float))*shape[0]);
15406 size_t length0=shape[0];
15407 size_t item_size1elem=
sizeof(float);
15408 size_t total_item_size0=item_size1elem;
15409 if(total_item_size0*val0.size()>column){
15410 std::vector<float>::iterator eraseit=val0.begin();
15411 std::advance(eraseit, column/total_item_size0);
15412 val0.erase(eraseit,val0.end());
15415 unsigned int count0=0;
15416 std::vector<float>::iterator it0=val0.begin();
15417 for(;it0!=val0.end();++it0){
15418 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15422 if(total_item_size0*length0<column){
15423 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15428void Hdf5Back::WriteToBuf<VL_VECTOR_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15429 std::vector<float> val0=a->
cast<std::vector<float>>();
15431 size_t item_size1elem=
sizeof(float);
15432 size_t total_item_size0=item_size1elem;
15439 hvl_t buf0 = VLValToBuf(val0);
15446void Hdf5Back::WriteToBuf<VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15447 std::vector<double> val0=a->
cast<std::vector<double>>();
15448 size_t item_size0=((
sizeof(double))*shape[0]);
15449 size_t length0=shape[0];
15450 size_t item_size1elem=
sizeof(double);
15451 size_t total_item_size0=item_size1elem;
15452 if(total_item_size0*val0.size()>column){
15453 std::vector<double>::iterator eraseit=val0.begin();
15454 std::advance(eraseit, column/total_item_size0);
15455 val0.erase(eraseit,val0.end());
15458 unsigned int count0=0;
15459 std::vector<double>::iterator it0=val0.begin();
15460 for(;it0!=val0.end();++it0){
15461 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15465 if(total_item_size0*length0<column){
15466 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15471void Hdf5Back::WriteToBuf<VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15472 std::vector<double> val0=a->
cast<std::vector<double>>();
15474 size_t item_size1elem=
sizeof(double);
15475 size_t total_item_size0=item_size1elem;
15482 hvl_t buf0 = VLValToBuf(val0);
15489void Hdf5Back::WriteToBuf<VECTOR_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15490 std::vector<std::string> val0=a->
cast<std::vector<std::string>>();
15491 size_t item_size0=((shape[1])*shape[0]);
15492 size_t length0=shape[0];
15493 size_t item_size1elem=shape[1];
15494 size_t valuelen1elem;
15495 size_t total_item_size0=item_size1elem;
15496 if(total_item_size0*val0.size()>column){
15497 std::vector<std::string>::iterator eraseit=val0.begin();
15498 std::advance(eraseit, column/total_item_size0);
15499 val0.erase(eraseit,val0.end());
15502 unsigned int count0=0;
15503 std::vector<std::string>::iterator it0=val0.begin();
15504 for(;it0!=val0.end();++it0){
15505 valuelen1elem=std::min(it0->size(), item_size1elem);
15506 memcpy(buf+item_size1elem*count0, it0->c_str(), valuelen1elem);
15507 memset(buf+item_size1elem*count0+valuelen1elem, 0, item_size1elem-valuelen1elem);
15511 if(total_item_size0*length0<column){
15512 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15517void Hdf5Back::WriteToBuf<VL_VECTOR_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15518 std::vector<std::string> val0=a->
cast<std::vector<std::string>>();
15520 size_t item_size1elem=shape[1];
15521 size_t valuelen1elem;
15522 size_t total_item_size0=item_size1elem;
15523 unsigned int count0=0;
15524 std::vector<std::string>::iterator it0=val0.begin();
15525 std::vector<std::string> fixed_val0;
15526 unsigned int pad_count0=0;
15527 for(;it0!=val0.end();++it0){
15528 std::string child1elem=std::string((*it0),0,item_size1elem);
15529 fixed_val0.push_back(child1elem);
15534 hasher_.
Update(fixed_val0);
15539 hvl_t buf0 = VLValToBuf(fixed_val0);
15546void Hdf5Back::WriteToBuf<VECTOR_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15547 std::vector<std::string> val0=a->
cast<std::vector<std::string>>();
15549 size_t length0=shape[0];
15551 size_t total_item_size0=item_size1elem;
15552 if(total_item_size0*val0.size()>column){
15553 std::vector<std::string>::iterator eraseit=val0.begin();
15554 std::advance(eraseit, column/total_item_size0);
15555 val0.erase(eraseit,val0.end());
15558 unsigned int count0=0;
15559 std::vector<std::string>::iterator it0=val0.begin();
15560 for(;it0!=val0.end();++it0){
15564 hid_t keysds1elem = VLDataset(
VL_STRING,
true);
15565 hid_t valsds1elem = VLDataset(
VL_STRING,
false);
15566 if (vlkeys_[
VL_STRING].count(key1elem) != 1) {
15567 AppendVLKey(keysds1elem,
VL_STRING, key1elem);
15568 InsertVLVal(valsds1elem,
VL_STRING, key1elem, *it0);
15574 if(total_item_size0*length0<column){
15575 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15580void Hdf5Back::WriteToBuf<VL_VECTOR_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15581 std::vector<std::string> val0=a->
cast<std::vector<std::string>>();
15584 size_t total_item_size0=item_size1elem;
15591 hvl_t buf0 = VLValToBuf(val0);
15598void Hdf5Back::WriteToBuf<VECTOR_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15599 std::vector<cyclus::Blob> val0=a->
cast<std::vector<cyclus::Blob>>();
15601 size_t length0=shape[0];
15603 size_t total_item_size0=item_size1elem;
15604 if(total_item_size0*val0.size()>column){
15605 std::vector<cyclus::Blob>::iterator eraseit=val0.begin();
15606 std::advance(eraseit, column/total_item_size0);
15607 val0.erase(eraseit,val0.end());
15610 unsigned int count0=0;
15611 std::vector<cyclus::Blob>::iterator it0=val0.begin();
15612 for(;it0!=val0.end();++it0){
15616 hid_t keysds1elem = VLDataset(
BLOB,
true);
15617 hid_t valsds1elem = VLDataset(
BLOB,
false);
15618 if (vlkeys_[
BLOB].count(key1elem) != 1) {
15619 AppendVLKey(keysds1elem,
BLOB, key1elem);
15620 InsertVLVal(valsds1elem,
BLOB, key1elem, (*it0).str());
15626 if(total_item_size0*length0<column){
15627 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15632void Hdf5Back::WriteToBuf<VL_VECTOR_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15633 std::vector<cyclus::Blob> val0=a->
cast<std::vector<cyclus::Blob>>();
15636 size_t total_item_size0=item_size1elem;
15643 hvl_t buf0 = VLValToBuf(val0);
15650void Hdf5Back::WriteToBuf<VECTOR_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15651 std::vector<boost::uuids::uuid> val0=a->
cast<std::vector<boost::uuids::uuid>>();
15653 size_t length0=shape[0];
15655 size_t total_item_size0=item_size1elem;
15656 if(total_item_size0*val0.size()>column){
15657 std::vector<boost::uuids::uuid>::iterator eraseit=val0.begin();
15658 std::advance(eraseit, column/total_item_size0);
15659 val0.erase(eraseit,val0.end());
15662 unsigned int count0=0;
15663 std::vector<boost::uuids::uuid>::iterator it0=val0.begin();
15664 for(;it0!=val0.end();++it0){
15665 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15669 if(total_item_size0*length0<column){
15670 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15675void Hdf5Back::WriteToBuf<VL_VECTOR_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15676 std::vector<boost::uuids::uuid> val0=a->
cast<std::vector<boost::uuids::uuid>>();
15679 size_t total_item_size0=item_size1elem;
15686 hvl_t buf0 = VLValToBuf(val0);
15693void Hdf5Back::WriteToBuf<SET_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15694 std::set<int> val0=a->
cast<std::set<int>>();
15695 size_t item_size0=((
sizeof(int))*shape[0]);
15696 size_t length0=shape[0];
15697 size_t item_size1elem=
sizeof(int);
15698 size_t total_item_size0=item_size1elem;
15699 if(total_item_size0*val0.size()>column){
15700 std::set<int>::iterator eraseit=val0.begin();
15701 std::advance(eraseit, column/total_item_size0);
15702 val0.erase(eraseit,val0.end());
15705 unsigned int count0=0;
15706 std::set<int>::iterator it0=val0.begin();
15707 for(;it0!=val0.end();++it0){
15708 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15712 if(total_item_size0*length0<column){
15713 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15718void Hdf5Back::WriteToBuf<VL_SET_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15719 std::set<int> val0=a->
cast<std::set<int>>();
15721 size_t item_size1elem=
sizeof(int);
15722 size_t total_item_size0=item_size1elem;
15726 hid_t keysds0 = VLDataset(
VL_SET_INT,
true);
15727 hid_t valsds0 = VLDataset(
VL_SET_INT,
false);
15729 hvl_t buf0 = VLValToBuf(val0);
15731 InsertVLVal(valsds0,
VL_SET_INT, key0, buf0);
15736void Hdf5Back::WriteToBuf<SET_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15737 std::set<float> val0=a->
cast<std::set<float>>();
15738 size_t item_size0=((
sizeof(float))*shape[0]);
15739 size_t length0=shape[0];
15740 size_t item_size1elem=
sizeof(float);
15741 size_t total_item_size0=item_size1elem;
15742 if(total_item_size0*val0.size()>column){
15743 std::set<float>::iterator eraseit=val0.begin();
15744 std::advance(eraseit, column/total_item_size0);
15745 val0.erase(eraseit,val0.end());
15748 unsigned int count0=0;
15749 std::set<float>::iterator it0=val0.begin();
15750 for(;it0!=val0.end();++it0){
15751 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15755 if(total_item_size0*length0<column){
15756 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15761void Hdf5Back::WriteToBuf<VL_SET_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15762 std::set<float> val0=a->
cast<std::set<float>>();
15764 size_t item_size1elem=
sizeof(float);
15765 size_t total_item_size0=item_size1elem;
15772 hvl_t buf0 = VLValToBuf(val0);
15779void Hdf5Back::WriteToBuf<SET_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15780 std::set<double> val0=a->
cast<std::set<double>>();
15781 size_t item_size0=((
sizeof(double))*shape[0]);
15782 size_t length0=shape[0];
15783 size_t item_size1elem=
sizeof(double);
15784 size_t total_item_size0=item_size1elem;
15785 if(total_item_size0*val0.size()>column){
15786 std::set<double>::iterator eraseit=val0.begin();
15787 std::advance(eraseit, column/total_item_size0);
15788 val0.erase(eraseit,val0.end());
15791 unsigned int count0=0;
15792 std::set<double>::iterator it0=val0.begin();
15793 for(;it0!=val0.end();++it0){
15794 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
15798 if(total_item_size0*length0<column){
15799 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15804void Hdf5Back::WriteToBuf<VL_SET_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15805 std::set<double> val0=a->
cast<std::set<double>>();
15807 size_t item_size1elem=
sizeof(double);
15808 size_t total_item_size0=item_size1elem;
15815 hvl_t buf0 = VLValToBuf(val0);
15822void Hdf5Back::WriteToBuf<SET_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15823 std::set<std::string> val0=a->
cast<std::set<std::string>>();
15824 size_t item_size0=((shape[1])*shape[0]);
15825 size_t length0=shape[0];
15826 size_t item_size1elem=shape[1];
15827 size_t valuelen1elem;
15828 size_t total_item_size0=item_size1elem;
15829 if(total_item_size0*val0.size()>column){
15830 std::set<std::string>::iterator eraseit=val0.begin();
15831 std::advance(eraseit, column/total_item_size0);
15832 val0.erase(eraseit,val0.end());
15835 unsigned int count0=0;
15836 std::set<std::string>::iterator it0=val0.begin();
15837 for(;it0!=val0.end();++it0){
15838 valuelen1elem=std::min(it0->size(), item_size1elem);
15839 memcpy(buf+item_size1elem*count0, it0->c_str(), valuelen1elem);
15840 memset(buf+item_size1elem*count0+valuelen1elem, 0, item_size1elem-valuelen1elem);
15844 if(total_item_size0*length0<column){
15845 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15850void Hdf5Back::WriteToBuf<VL_SET_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15851 std::set<std::string> val0=a->
cast<std::set<std::string>>();
15853 size_t item_size1elem=shape[1];
15854 size_t valuelen1elem;
15855 size_t total_item_size0=item_size1elem;
15856 unsigned int count0=0;
15857 std::set<std::string>::iterator it0=val0.begin();
15858 std::set<std::string> fixed_val0;
15859 unsigned int pad_count0=0;
15860 for(;it0!=val0.end();++it0){
15861 std::string child1elem=std::string((*it0),0,item_size1elem);
15862 fixed_val0.insert(child1elem);
15867 hasher_.
Update(fixed_val0);
15872 hvl_t buf0 = VLValToBuf(fixed_val0);
15879void Hdf5Back::WriteToBuf<SET_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15880 std::set<std::string> val0=a->
cast<std::set<std::string>>();
15882 size_t length0=shape[0];
15884 size_t total_item_size0=item_size1elem;
15885 if(total_item_size0*val0.size()>column){
15886 std::set<std::string>::iterator eraseit=val0.begin();
15887 std::advance(eraseit, column/total_item_size0);
15888 val0.erase(eraseit,val0.end());
15891 unsigned int count0=0;
15892 std::set<std::string>::iterator it0=val0.begin();
15893 for(;it0!=val0.end();++it0){
15897 hid_t keysds1elem = VLDataset(
VL_STRING,
true);
15898 hid_t valsds1elem = VLDataset(
VL_STRING,
false);
15899 if (vlkeys_[
VL_STRING].count(key1elem) != 1) {
15900 AppendVLKey(keysds1elem,
VL_STRING, key1elem);
15901 InsertVLVal(valsds1elem,
VL_STRING, key1elem, *it0);
15907 if(total_item_size0*length0<column){
15908 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15913void Hdf5Back::WriteToBuf<VL_SET_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15914 std::set<std::string> val0=a->
cast<std::set<std::string>>();
15917 size_t total_item_size0=item_size1elem;
15924 hvl_t buf0 = VLValToBuf(val0);
15931void Hdf5Back::WriteToBuf<SET_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15932 std::set<cyclus::Blob> val0=a->
cast<std::set<cyclus::Blob>>();
15934 size_t length0=shape[0];
15936 size_t total_item_size0=item_size1elem;
15937 if(total_item_size0*val0.size()>column){
15938 std::set<cyclus::Blob>::iterator eraseit=val0.begin();
15939 std::advance(eraseit, column/total_item_size0);
15940 val0.erase(eraseit,val0.end());
15943 unsigned int count0=0;
15944 std::set<cyclus::Blob>::iterator it0=val0.begin();
15945 for(;it0!=val0.end();++it0){
15949 hid_t keysds1elem = VLDataset(
BLOB,
true);
15950 hid_t valsds1elem = VLDataset(
BLOB,
false);
15951 if (vlkeys_[
BLOB].count(key1elem) != 1) {
15952 AppendVLKey(keysds1elem,
BLOB, key1elem);
15953 InsertVLVal(valsds1elem,
BLOB, key1elem, (*it0).str());
15959 if(total_item_size0*length0<column){
15960 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
15965void Hdf5Back::WriteToBuf<VL_SET_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15966 std::set<cyclus::Blob> val0=a->
cast<std::set<cyclus::Blob>>();
15969 size_t total_item_size0=item_size1elem;
15976 hvl_t buf0 = VLValToBuf(val0);
15983void Hdf5Back::WriteToBuf<SET_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
15984 std::set<boost::uuids::uuid> val0=a->
cast<std::set<boost::uuids::uuid>>();
15986 size_t length0=shape[0];
15988 size_t total_item_size0=item_size1elem;
15989 if(total_item_size0*val0.size()>column){
15990 std::set<boost::uuids::uuid>::iterator eraseit=val0.begin();
15991 std::advance(eraseit, column/total_item_size0);
15992 val0.erase(eraseit,val0.end());
15995 unsigned int count0=0;
15996 std::set<boost::uuids::uuid>::iterator it0=val0.begin();
15997 for(;it0!=val0.end();++it0){
15998 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
16002 if(total_item_size0*length0<column){
16003 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16008void Hdf5Back::WriteToBuf<VL_SET_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16009 std::set<boost::uuids::uuid> val0=a->
cast<std::set<boost::uuids::uuid>>();
16012 size_t total_item_size0=item_size1elem;
16019 hvl_t buf0 = VLValToBuf(val0);
16026void Hdf5Back::WriteToBuf<LIST_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16027 std::list<bool> val0=a->
cast<std::list<bool>>();
16028 size_t item_size0=((
sizeof(char))*shape[0]);
16029 size_t length0=shape[0];
16030 size_t item_size1elem=
sizeof(char);
16031 size_t total_item_size0=item_size1elem;
16032 if(total_item_size0*val0.size()>column){
16033 std::list<bool>::iterator eraseit=val0.begin();
16034 std::advance(eraseit, column/total_item_size0);
16035 val0.erase(eraseit,val0.end());
16038 unsigned int count0=0;
16039 std::list<bool>::iterator it0=val0.begin();
16040 for(;it0!=val0.end();++it0){
16041 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
16045 if(total_item_size0*length0<column){
16046 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16051void Hdf5Back::WriteToBuf<VL_LIST_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16052 std::list<bool> val0=a->
cast<std::list<bool>>();
16054 size_t item_size1elem=
sizeof(char);
16055 size_t total_item_size0=item_size1elem;
16062 hvl_t buf0 = VLValToBuf(val0);
16069void Hdf5Back::WriteToBuf<LIST_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16070 std::list<int> val0=a->
cast<std::list<int>>();
16071 size_t item_size0=((
sizeof(int))*shape[0]);
16072 size_t length0=shape[0];
16073 size_t item_size1elem=
sizeof(int);
16074 size_t total_item_size0=item_size1elem;
16075 if(total_item_size0*val0.size()>column){
16076 std::list<int>::iterator eraseit=val0.begin();
16077 std::advance(eraseit, column/total_item_size0);
16078 val0.erase(eraseit,val0.end());
16081 unsigned int count0=0;
16082 std::list<int>::iterator it0=val0.begin();
16083 for(;it0!=val0.end();++it0){
16084 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
16088 if(total_item_size0*length0<column){
16089 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16094void Hdf5Back::WriteToBuf<VL_LIST_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16095 std::list<int> val0=a->
cast<std::list<int>>();
16097 size_t item_size1elem=
sizeof(int);
16098 size_t total_item_size0=item_size1elem;
16105 hvl_t buf0 = VLValToBuf(val0);
16112void Hdf5Back::WriteToBuf<LIST_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16113 std::list<float> val0=a->
cast<std::list<float>>();
16114 size_t item_size0=((
sizeof(float))*shape[0]);
16115 size_t length0=shape[0];
16116 size_t item_size1elem=
sizeof(float);
16117 size_t total_item_size0=item_size1elem;
16118 if(total_item_size0*val0.size()>column){
16119 std::list<float>::iterator eraseit=val0.begin();
16120 std::advance(eraseit, column/total_item_size0);
16121 val0.erase(eraseit,val0.end());
16124 unsigned int count0=0;
16125 std::list<float>::iterator it0=val0.begin();
16126 for(;it0!=val0.end();++it0){
16127 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
16131 if(total_item_size0*length0<column){
16132 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16137void Hdf5Back::WriteToBuf<VL_LIST_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16138 std::list<float> val0=a->
cast<std::list<float>>();
16140 size_t item_size1elem=
sizeof(float);
16141 size_t total_item_size0=item_size1elem;
16148 hvl_t buf0 = VLValToBuf(val0);
16155void Hdf5Back::WriteToBuf<LIST_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16156 std::list<double> val0=a->
cast<std::list<double>>();
16157 size_t item_size0=((
sizeof(double))*shape[0]);
16158 size_t length0=shape[0];
16159 size_t item_size1elem=
sizeof(double);
16160 size_t total_item_size0=item_size1elem;
16161 if(total_item_size0*val0.size()>column){
16162 std::list<double>::iterator eraseit=val0.begin();
16163 std::advance(eraseit, column/total_item_size0);
16164 val0.erase(eraseit,val0.end());
16167 unsigned int count0=0;
16168 std::list<double>::iterator it0=val0.begin();
16169 for(;it0!=val0.end();++it0){
16170 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
16174 if(total_item_size0*length0<column){
16175 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16180void Hdf5Back::WriteToBuf<VL_LIST_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16181 std::list<double> val0=a->
cast<std::list<double>>();
16183 size_t item_size1elem=
sizeof(double);
16184 size_t total_item_size0=item_size1elem;
16191 hvl_t buf0 = VLValToBuf(val0);
16198void Hdf5Back::WriteToBuf<LIST_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16199 std::list<std::string> val0=a->
cast<std::list<std::string>>();
16200 size_t item_size0=((shape[1])*shape[0]);
16201 size_t length0=shape[0];
16202 size_t item_size1elem=shape[1];
16203 size_t valuelen1elem;
16204 size_t total_item_size0=item_size1elem;
16205 if(total_item_size0*val0.size()>column){
16206 std::list<std::string>::iterator eraseit=val0.begin();
16207 std::advance(eraseit, column/total_item_size0);
16208 val0.erase(eraseit,val0.end());
16211 unsigned int count0=0;
16212 std::list<std::string>::iterator it0=val0.begin();
16213 for(;it0!=val0.end();++it0){
16214 valuelen1elem=std::min(it0->size(), item_size1elem);
16215 memcpy(buf+item_size1elem*count0, it0->c_str(), valuelen1elem);
16216 memset(buf+item_size1elem*count0+valuelen1elem, 0, item_size1elem-valuelen1elem);
16220 if(total_item_size0*length0<column){
16221 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16226void Hdf5Back::WriteToBuf<VL_LIST_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16227 std::list<std::string> val0=a->
cast<std::list<std::string>>();
16229 size_t item_size1elem=shape[1];
16230 size_t valuelen1elem;
16231 size_t total_item_size0=item_size1elem;
16232 unsigned int count0=0;
16233 std::list<std::string>::iterator it0=val0.begin();
16234 std::list<std::string> fixed_val0;
16235 unsigned int pad_count0=0;
16236 for(;it0!=val0.end();++it0){
16237 std::string child1elem=std::string((*it0),0,item_size1elem);
16238 fixed_val0.push_back(child1elem);
16243 hasher_.
Update(fixed_val0);
16248 hvl_t buf0 = VLValToBuf(fixed_val0);
16255void Hdf5Back::WriteToBuf<LIST_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16256 std::list<std::string> val0=a->
cast<std::list<std::string>>();
16258 size_t length0=shape[0];
16260 size_t total_item_size0=item_size1elem;
16261 if(total_item_size0*val0.size()>column){
16262 std::list<std::string>::iterator eraseit=val0.begin();
16263 std::advance(eraseit, column/total_item_size0);
16264 val0.erase(eraseit,val0.end());
16267 unsigned int count0=0;
16268 std::list<std::string>::iterator it0=val0.begin();
16269 for(;it0!=val0.end();++it0){
16273 hid_t keysds1elem = VLDataset(
VL_STRING,
true);
16274 hid_t valsds1elem = VLDataset(
VL_STRING,
false);
16275 if (vlkeys_[
VL_STRING].count(key1elem) != 1) {
16276 AppendVLKey(keysds1elem,
VL_STRING, key1elem);
16277 InsertVLVal(valsds1elem,
VL_STRING, key1elem, *it0);
16283 if(total_item_size0*length0<column){
16284 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16289void Hdf5Back::WriteToBuf<VL_LIST_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16290 std::list<std::string> val0=a->
cast<std::list<std::string>>();
16293 size_t total_item_size0=item_size1elem;
16300 hvl_t buf0 = VLValToBuf(val0);
16307void Hdf5Back::WriteToBuf<LIST_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16308 std::list<cyclus::Blob> val0=a->
cast<std::list<cyclus::Blob>>();
16310 size_t length0=shape[0];
16312 size_t total_item_size0=item_size1elem;
16313 if(total_item_size0*val0.size()>column){
16314 std::list<cyclus::Blob>::iterator eraseit=val0.begin();
16315 std::advance(eraseit, column/total_item_size0);
16316 val0.erase(eraseit,val0.end());
16319 unsigned int count0=0;
16320 std::list<cyclus::Blob>::iterator it0=val0.begin();
16321 for(;it0!=val0.end();++it0){
16325 hid_t keysds1elem = VLDataset(
BLOB,
true);
16326 hid_t valsds1elem = VLDataset(
BLOB,
false);
16327 if (vlkeys_[
BLOB].count(key1elem) != 1) {
16328 AppendVLKey(keysds1elem,
BLOB, key1elem);
16329 InsertVLVal(valsds1elem,
BLOB, key1elem, (*it0).str());
16335 if(total_item_size0*length0<column){
16336 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16341void Hdf5Back::WriteToBuf<VL_LIST_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16342 std::list<cyclus::Blob> val0=a->
cast<std::list<cyclus::Blob>>();
16345 size_t total_item_size0=item_size1elem;
16352 hvl_t buf0 = VLValToBuf(val0);
16359void Hdf5Back::WriteToBuf<LIST_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16360 std::list<boost::uuids::uuid> val0=a->
cast<std::list<boost::uuids::uuid>>();
16362 size_t length0=shape[0];
16364 size_t total_item_size0=item_size1elem;
16365 if(total_item_size0*val0.size()>column){
16366 std::list<boost::uuids::uuid>::iterator eraseit=val0.begin();
16367 std::advance(eraseit, column/total_item_size0);
16368 val0.erase(eraseit,val0.end());
16371 unsigned int count0=0;
16372 std::list<boost::uuids::uuid>::iterator it0=val0.begin();
16373 for(;it0!=val0.end();++it0){
16374 memcpy(buf+item_size1elem*count0, &(*it0), item_size1elem);
16378 if(total_item_size0*length0<column){
16379 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16384void Hdf5Back::WriteToBuf<VL_LIST_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16385 std::list<boost::uuids::uuid> val0=a->
cast<std::list<boost::uuids::uuid>>();
16388 size_t total_item_size0=item_size1elem;
16395 hvl_t buf0 = VLValToBuf(val0);
16402void Hdf5Back::WriteToBuf<PAIR_INT_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16403 std::pair<int, bool> val0=a->
cast<std::pair<int, bool>>();
16404 size_t item_size0=((
sizeof(int)+
sizeof(
char)));
16405 size_t item_size1first=
sizeof(int);
16406 size_t item_size1second=
sizeof(char);
16407 size_t total_item_size0=item_size1first+item_size1second;
16408 unsigned int count0=0;
16409 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16410 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16413void Hdf5Back::WriteToBuf<PAIR_INT_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16414 std::pair<int, int> val0=a->
cast<std::pair<int, int>>();
16415 size_t item_size0=((
sizeof(int)+
sizeof(
int)));
16416 size_t item_size1first=
sizeof(int);
16417 size_t item_size1second=
sizeof(int);
16418 size_t total_item_size0=item_size1first+item_size1second;
16419 unsigned int count0=0;
16420 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16421 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16424void Hdf5Back::WriteToBuf<PAIR_INT_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16425 std::pair<int, float> val0=a->
cast<std::pair<int, float>>();
16426 size_t item_size0=((
sizeof(int)+
sizeof(
float)));
16427 size_t item_size1first=
sizeof(int);
16428 size_t item_size1second=
sizeof(float);
16429 size_t total_item_size0=item_size1first+item_size1second;
16430 unsigned int count0=0;
16431 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16432 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16435void Hdf5Back::WriteToBuf<PAIR_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16436 std::pair<int, double> val0=a->
cast<std::pair<int, double>>();
16437 size_t item_size0=((
sizeof(int)+
sizeof(
double)));
16438 size_t item_size1first=
sizeof(int);
16439 size_t item_size1second=
sizeof(double);
16440 size_t total_item_size0=item_size1first+item_size1second;
16441 unsigned int count0=0;
16442 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16443 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16446void Hdf5Back::WriteToBuf<PAIR_INT_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16447 std::pair<int, std::string> val0=a->
cast<std::pair<int, std::string>>();
16448 size_t item_size0=((
sizeof(int)+shape[2]));
16449 size_t item_size1first=
sizeof(int);
16450 size_t item_size1second=shape[2];
16451 size_t valuelen1second;
16452 size_t total_item_size0=item_size1first+item_size1second;
16453 unsigned int count0=0;
16454 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16455 valuelen1second=std::min(val0.second.size(), item_size1second);
16456 memcpy(buf+(count0*total_item_size0)+0+item_size1first, val0.second.c_str(), valuelen1second);
16457 memset(buf+(count0*total_item_size0)+0+item_size1first+valuelen1second, 0, item_size1second-valuelen1second);
16460void Hdf5Back::WriteToBuf<PAIR_INT_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16461 std::pair<int, std::string> val0=a->
cast<std::pair<int, std::string>>();
16463 size_t item_size1first=
sizeof(int);
16465 size_t total_item_size0=item_size1first+item_size1second;
16466 unsigned int count0=0;
16467 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16469 hasher_.
Update(val0.second);
16471 hid_t keysds1second = VLDataset(
VL_STRING,
true);
16472 hid_t valsds1second = VLDataset(
VL_STRING,
false);
16473 if (vlkeys_[
VL_STRING].count(key1second) != 1) {
16474 AppendVLKey(keysds1second,
VL_STRING, key1second);
16475 InsertVLVal(valsds1second,
VL_STRING, key1second, val0.second);
16480void Hdf5Back::WriteToBuf<PAIR_INT_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16481 std::pair<int, cyclus::Blob> val0=a->
cast<std::pair<int, cyclus::Blob>>();
16483 size_t item_size1first=
sizeof(int);
16485 size_t total_item_size0=item_size1first+item_size1second;
16486 unsigned int count0=0;
16487 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16489 hasher_.
Update(val0.second);
16491 hid_t keysds1second = VLDataset(
BLOB,
true);
16492 hid_t valsds1second = VLDataset(
BLOB,
false);
16493 if (vlkeys_[
BLOB].count(key1second) != 1) {
16494 AppendVLKey(keysds1second,
BLOB, key1second);
16495 InsertVLVal(valsds1second,
BLOB, key1second, (val0.second).str());
16500void Hdf5Back::WriteToBuf<PAIR_INT_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16501 std::pair<int, boost::uuids::uuid> val0=a->
cast<std::pair<int, boost::uuids::uuid>>();
16503 size_t item_size1first=
sizeof(int);
16505 size_t total_item_size0=item_size1first+item_size1second;
16506 unsigned int count0=0;
16507 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
16508 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16511void Hdf5Back::WriteToBuf<PAIR_STRING_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16512 std::pair<std::string, bool> val0=a->
cast<std::pair<std::string, bool>>();
16513 size_t item_size0=((shape[1]+
sizeof(char)));
16514 size_t item_size1first=shape[1];
16515 size_t valuelen1first;
16516 size_t item_size1second=
sizeof(char);
16517 size_t total_item_size0=item_size1first+item_size1second;
16518 unsigned int count0=0;
16519 valuelen1first=std::min(val0.first.size(), item_size1first);
16520 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16521 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16522 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16525void Hdf5Back::WriteToBuf<PAIR_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16526 std::pair<std::string, int> val0=a->
cast<std::pair<std::string, int>>();
16527 size_t item_size0=((shape[1]+
sizeof(int)));
16528 size_t item_size1first=shape[1];
16529 size_t valuelen1first;
16530 size_t item_size1second=
sizeof(int);
16531 size_t total_item_size0=item_size1first+item_size1second;
16532 unsigned int count0=0;
16533 valuelen1first=std::min(val0.first.size(), item_size1first);
16534 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16535 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16536 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16539void Hdf5Back::WriteToBuf<PAIR_STRING_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16540 std::pair<std::string, float> val0=a->
cast<std::pair<std::string, float>>();
16541 size_t item_size0=((shape[1]+
sizeof(float)));
16542 size_t item_size1first=shape[1];
16543 size_t valuelen1first;
16544 size_t item_size1second=
sizeof(float);
16545 size_t total_item_size0=item_size1first+item_size1second;
16546 unsigned int count0=0;
16547 valuelen1first=std::min(val0.first.size(), item_size1first);
16548 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16549 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16550 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16553void Hdf5Back::WriteToBuf<PAIR_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16554 std::pair<std::string, double> val0=a->
cast<std::pair<std::string, double>>();
16555 size_t item_size0=((shape[1]+
sizeof(double)));
16556 size_t item_size1first=shape[1];
16557 size_t valuelen1first;
16558 size_t item_size1second=
sizeof(double);
16559 size_t total_item_size0=item_size1first+item_size1second;
16560 unsigned int count0=0;
16561 valuelen1first=std::min(val0.first.size(), item_size1first);
16562 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16563 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16564 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16567void Hdf5Back::WriteToBuf<PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16568 std::pair<std::string, std::string> val0=a->
cast<std::pair<std::string, std::string>>();
16569 size_t item_size0=((shape[1]+shape[2]));
16570 size_t item_size1first=shape[1];
16571 size_t valuelen1first;
16572 size_t item_size1second=shape[2];
16573 size_t valuelen1second;
16574 size_t total_item_size0=item_size1first+item_size1second;
16575 unsigned int count0=0;
16576 valuelen1first=std::min(val0.first.size(), item_size1first);
16577 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16578 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16579 valuelen1second=std::min(val0.second.size(), item_size1second);
16580 memcpy(buf+(count0*total_item_size0)+0+item_size1first, val0.second.c_str(), valuelen1second);
16581 memset(buf+(count0*total_item_size0)+0+item_size1first+valuelen1second, 0, item_size1second-valuelen1second);
16584void Hdf5Back::WriteToBuf<PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16585 std::pair<std::string, std::string> val0=a->
cast<std::pair<std::string, std::string>>();
16587 size_t item_size1first=shape[1];
16588 size_t valuelen1first;
16590 size_t total_item_size0=item_size1first+item_size1second;
16591 unsigned int count0=0;
16592 valuelen1first=std::min(val0.first.size(), item_size1first);
16593 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16594 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16596 hasher_.
Update(val0.second);
16598 hid_t keysds1second = VLDataset(
VL_STRING,
true);
16599 hid_t valsds1second = VLDataset(
VL_STRING,
false);
16600 if (vlkeys_[
VL_STRING].count(key1second) != 1) {
16601 AppendVLKey(keysds1second,
VL_STRING, key1second);
16602 InsertVLVal(valsds1second,
VL_STRING, key1second, val0.second);
16607void Hdf5Back::WriteToBuf<PAIR_STRING_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16608 std::pair<std::string, cyclus::Blob> val0=a->
cast<std::pair<std::string, cyclus::Blob>>();
16610 size_t item_size1first=shape[1];
16611 size_t valuelen1first;
16613 size_t total_item_size0=item_size1first+item_size1second;
16614 unsigned int count0=0;
16615 valuelen1first=std::min(val0.first.size(), item_size1first);
16616 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16617 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16619 hasher_.
Update(val0.second);
16621 hid_t keysds1second = VLDataset(
BLOB,
true);
16622 hid_t valsds1second = VLDataset(
BLOB,
false);
16623 if (vlkeys_[
BLOB].count(key1second) != 1) {
16624 AppendVLKey(keysds1second,
BLOB, key1second);
16625 InsertVLVal(valsds1second,
BLOB, key1second, (val0.second).str());
16630void Hdf5Back::WriteToBuf<PAIR_STRING_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16631 std::pair<std::string, boost::uuids::uuid> val0=a->
cast<std::pair<std::string, boost::uuids::uuid>>();
16633 size_t item_size1first=shape[1];
16634 size_t valuelen1first;
16636 size_t total_item_size0=item_size1first+item_size1second;
16637 unsigned int count0=0;
16638 valuelen1first=std::min(val0.first.size(), item_size1first);
16639 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
16640 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
16641 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16644void Hdf5Back::WriteToBuf<PAIR_VL_STRING_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16645 std::pair<std::string, bool> val0=a->
cast<std::pair<std::string, bool>>();
16648 size_t item_size1second=
sizeof(char);
16649 size_t total_item_size0=item_size1first+item_size1second;
16650 unsigned int count0=0;
16652 hasher_.
Update(val0.first);
16654 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16655 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16656 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16657 AppendVLKey(keysds1first,
VL_STRING, key1first);
16658 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16661 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16664void Hdf5Back::WriteToBuf<PAIR_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16665 std::pair<std::string, int> val0=a->
cast<std::pair<std::string, int>>();
16668 size_t item_size1second=
sizeof(int);
16669 size_t total_item_size0=item_size1first+item_size1second;
16670 unsigned int count0=0;
16672 hasher_.
Update(val0.first);
16674 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16675 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16676 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16677 AppendVLKey(keysds1first,
VL_STRING, key1first);
16678 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16681 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16684void Hdf5Back::WriteToBuf<PAIR_VL_STRING_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16685 std::pair<std::string, float> val0=a->
cast<std::pair<std::string, float>>();
16688 size_t item_size1second=
sizeof(float);
16689 size_t total_item_size0=item_size1first+item_size1second;
16690 unsigned int count0=0;
16692 hasher_.
Update(val0.first);
16694 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16695 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16696 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16697 AppendVLKey(keysds1first,
VL_STRING, key1first);
16698 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16701 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16704void Hdf5Back::WriteToBuf<PAIR_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16705 std::pair<std::string, double> val0=a->
cast<std::pair<std::string, double>>();
16708 size_t item_size1second=
sizeof(double);
16709 size_t total_item_size0=item_size1first+item_size1second;
16710 unsigned int count0=0;
16712 hasher_.
Update(val0.first);
16714 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16715 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16716 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16717 AppendVLKey(keysds1first,
VL_STRING, key1first);
16718 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16721 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16724void Hdf5Back::WriteToBuf<PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16725 std::pair<std::string, std::string> val0=a->
cast<std::pair<std::string, std::string>>();
16728 size_t item_size1second=shape[2];
16729 size_t valuelen1second;
16730 size_t total_item_size0=item_size1first+item_size1second;
16731 unsigned int count0=0;
16733 hasher_.
Update(val0.first);
16735 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16736 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16737 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16738 AppendVLKey(keysds1first,
VL_STRING, key1first);
16739 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16742 valuelen1second=std::min(val0.second.size(), item_size1second);
16743 memcpy(buf+(count0*total_item_size0)+0+item_size1first, val0.second.c_str(), valuelen1second);
16744 memset(buf+(count0*total_item_size0)+0+item_size1first+valuelen1second, 0, item_size1second-valuelen1second);
16747void Hdf5Back::WriteToBuf<PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16748 std::pair<std::string, std::string> val0=a->
cast<std::pair<std::string, std::string>>();
16752 size_t total_item_size0=item_size1first+item_size1second;
16753 unsigned int count0=0;
16755 hasher_.
Update(val0.first);
16757 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16758 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16759 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16760 AppendVLKey(keysds1first,
VL_STRING, key1first);
16761 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16765 hasher_.
Update(val0.second);
16767 hid_t keysds1second = VLDataset(
VL_STRING,
true);
16768 hid_t valsds1second = VLDataset(
VL_STRING,
false);
16769 if (vlkeys_[
VL_STRING].count(key1second) != 1) {
16770 AppendVLKey(keysds1second,
VL_STRING, key1second);
16771 InsertVLVal(valsds1second,
VL_STRING, key1second, val0.second);
16776void Hdf5Back::WriteToBuf<PAIR_VL_STRING_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16777 std::pair<std::string, cyclus::Blob> val0=a->
cast<std::pair<std::string, cyclus::Blob>>();
16781 size_t total_item_size0=item_size1first+item_size1second;
16782 unsigned int count0=0;
16784 hasher_.
Update(val0.first);
16786 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16787 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16788 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16789 AppendVLKey(keysds1first,
VL_STRING, key1first);
16790 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16794 hasher_.
Update(val0.second);
16796 hid_t keysds1second = VLDataset(
BLOB,
true);
16797 hid_t valsds1second = VLDataset(
BLOB,
false);
16798 if (vlkeys_[
BLOB].count(key1second) != 1) {
16799 AppendVLKey(keysds1second,
BLOB, key1second);
16800 InsertVLVal(valsds1second,
BLOB, key1second, (val0.second).str());
16805void Hdf5Back::WriteToBuf<PAIR_VL_STRING_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16806 std::pair<std::string, boost::uuids::uuid> val0=a->
cast<std::pair<std::string, boost::uuids::uuid>>();
16810 size_t total_item_size0=item_size1first+item_size1second;
16811 unsigned int count0=0;
16813 hasher_.
Update(val0.first);
16815 hid_t keysds1first = VLDataset(
VL_STRING,
true);
16816 hid_t valsds1first = VLDataset(
VL_STRING,
false);
16817 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
16818 AppendVLKey(keysds1first,
VL_STRING, key1first);
16819 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
16822 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
16825void Hdf5Back::WriteToBuf<MAP_INT_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16826 std::map<int, bool> val0=a->
cast<std::map<int, bool>>();
16827 size_t item_size0=((
sizeof(int)+
sizeof(
char))*shape[0]);
16828 size_t length0=shape[0];
16829 size_t item_size1key=
sizeof(int);
16830 size_t item_size1val=
sizeof(char);
16831 size_t total_item_size0=item_size1key+item_size1val;
16832 if(total_item_size0*val0.size()>column){
16833 std::map<int, bool>::iterator eraseit=val0.begin();
16834 std::advance(eraseit, column/total_item_size0);
16835 val0.erase(eraseit,val0.end());
16838 unsigned int count0=0;
16839 std::map<int, bool>::iterator it0=val0.begin();
16840 for(;it0!=val0.end();++it0){
16841 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
16842 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
16846 if(total_item_size0*length0<column){
16847 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16852void Hdf5Back::WriteToBuf<VL_MAP_INT_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16853 std::map<int, bool> val0=a->
cast<std::map<int, bool>>();
16855 size_t item_size1key=
sizeof(int);
16856 size_t item_size1val=
sizeof(char);
16857 size_t total_item_size0=item_size1key+item_size1val;
16864 hvl_t buf0 = VLValToBuf(val0);
16871void Hdf5Back::WriteToBuf<MAP_INT_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16872 std::map<int, int> val0=a->
cast<std::map<int, int>>();
16873 size_t item_size0=((
sizeof(int)+
sizeof(
int))*shape[0]);
16874 size_t length0=shape[0];
16875 size_t item_size1key=
sizeof(int);
16876 size_t item_size1val=
sizeof(int);
16877 size_t total_item_size0=item_size1key+item_size1val;
16878 if(total_item_size0*val0.size()>column){
16879 std::map<int, int>::iterator eraseit=val0.begin();
16880 std::advance(eraseit, column/total_item_size0);
16881 val0.erase(eraseit,val0.end());
16884 unsigned int count0=0;
16885 std::map<int, int>::iterator it0=val0.begin();
16886 for(;it0!=val0.end();++it0){
16887 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
16888 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
16892 if(total_item_size0*length0<column){
16893 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16898void Hdf5Back::WriteToBuf<VL_MAP_INT_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16899 std::map<int, int> val0=a->
cast<std::map<int, int>>();
16901 size_t item_size1key=
sizeof(int);
16902 size_t item_size1val=
sizeof(int);
16903 size_t total_item_size0=item_size1key+item_size1val;
16910 hvl_t buf0 = VLValToBuf(val0);
16917void Hdf5Back::WriteToBuf<MAP_INT_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16918 std::map<int, float> val0=a->
cast<std::map<int, float>>();
16919 size_t item_size0=((
sizeof(int)+
sizeof(
float))*shape[0]);
16920 size_t length0=shape[0];
16921 size_t item_size1key=
sizeof(int);
16922 size_t item_size1val=
sizeof(float);
16923 size_t total_item_size0=item_size1key+item_size1val;
16924 if(total_item_size0*val0.size()>column){
16925 std::map<int, float>::iterator eraseit=val0.begin();
16926 std::advance(eraseit, column/total_item_size0);
16927 val0.erase(eraseit,val0.end());
16930 unsigned int count0=0;
16931 std::map<int, float>::iterator it0=val0.begin();
16932 for(;it0!=val0.end();++it0){
16933 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
16934 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
16938 if(total_item_size0*length0<column){
16939 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16944void Hdf5Back::WriteToBuf<VL_MAP_INT_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16945 std::map<int, float> val0=a->
cast<std::map<int, float>>();
16947 size_t item_size1key=
sizeof(int);
16948 size_t item_size1val=
sizeof(float);
16949 size_t total_item_size0=item_size1key+item_size1val;
16956 hvl_t buf0 = VLValToBuf(val0);
16963void Hdf5Back::WriteToBuf<MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16964 std::map<int, double> val0=a->
cast<std::map<int, double>>();
16965 size_t item_size0=((
sizeof(int)+
sizeof(
double))*shape[0]);
16966 size_t length0=shape[0];
16967 size_t item_size1key=
sizeof(int);
16968 size_t item_size1val=
sizeof(double);
16969 size_t total_item_size0=item_size1key+item_size1val;
16970 if(total_item_size0*val0.size()>column){
16971 std::map<int, double>::iterator eraseit=val0.begin();
16972 std::advance(eraseit, column/total_item_size0);
16973 val0.erase(eraseit,val0.end());
16976 unsigned int count0=0;
16977 std::map<int, double>::iterator it0=val0.begin();
16978 for(;it0!=val0.end();++it0){
16979 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
16980 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
16984 if(total_item_size0*length0<column){
16985 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
16990void Hdf5Back::WriteToBuf<VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
16991 std::map<int, double> val0=a->
cast<std::map<int, double>>();
16993 size_t item_size1key=
sizeof(int);
16994 size_t item_size1val=
sizeof(double);
16995 size_t total_item_size0=item_size1key+item_size1val;
17002 hvl_t buf0 = VLValToBuf(val0);
17009void Hdf5Back::WriteToBuf<MAP_INT_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17010 std::map<int, std::string> val0=a->
cast<std::map<int, std::string>>();
17011 size_t item_size0=((
sizeof(int)+shape[2])*shape[0]);
17012 size_t length0=shape[0];
17013 size_t item_size1key=
sizeof(int);
17014 size_t item_size1val=shape[2];
17015 size_t valuelen1val;
17016 size_t total_item_size0=item_size1key+item_size1val;
17017 if(total_item_size0*val0.size()>column){
17018 std::map<int, std::string>::iterator eraseit=val0.begin();
17019 std::advance(eraseit, column/total_item_size0);
17020 val0.erase(eraseit,val0.end());
17023 unsigned int count0=0;
17024 std::map<int, std::string>::iterator it0=val0.begin();
17025 for(;it0!=val0.end();++it0){
17026 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
17027 valuelen1val=std::min(it0->second.size(), item_size1val);
17028 memcpy(buf+(count0*total_item_size0)+0+item_size1key, it0->second.c_str(), valuelen1val);
17029 memset(buf+(count0*total_item_size0)+0+item_size1key+valuelen1val, 0, item_size1val-valuelen1val);
17033 if(total_item_size0*length0<column){
17034 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17039void Hdf5Back::WriteToBuf<VL_MAP_INT_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17040 std::map<int, std::string> val0=a->
cast<std::map<int, std::string>>();
17042 size_t item_size1key=
sizeof(int);
17043 size_t item_size1val=shape[2];
17044 size_t valuelen1val;
17045 size_t total_item_size0=item_size1key+item_size1val;
17046 unsigned int count0=0;
17047 std::map<int, std::string>::iterator it0=val0.begin();
17048 std::map<int, std::string> fixed_val0;
17049 unsigned int pad_count0=0;
17050 for(;it0!=val0.end();++it0){
17051 std::string child1val=std::string(it0->second,0,item_size1val);
17052 fixed_val0[it0->first] = child1val;
17057 hasher_.
Update(fixed_val0);
17062 hvl_t buf0 = VLValToBuf(fixed_val0);
17069void Hdf5Back::WriteToBuf<MAP_INT_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17070 std::map<int, std::string> val0=a->
cast<std::map<int, std::string>>();
17072 size_t length0=shape[0];
17073 size_t item_size1key=
sizeof(int);
17075 size_t total_item_size0=item_size1key+item_size1val;
17076 if(total_item_size0*val0.size()>column){
17077 std::map<int, std::string>::iterator eraseit=val0.begin();
17078 std::advance(eraseit, column/total_item_size0);
17079 val0.erase(eraseit,val0.end());
17082 unsigned int count0=0;
17083 std::map<int, std::string>::iterator it0=val0.begin();
17084 for(;it0!=val0.end();++it0){
17085 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
17087 hasher_.
Update(it0->second);
17089 hid_t keysds1val = VLDataset(
VL_STRING,
true);
17090 hid_t valsds1val = VLDataset(
VL_STRING,
false);
17091 if (vlkeys_[
VL_STRING].count(key1val) != 1) {
17092 AppendVLKey(keysds1val,
VL_STRING, key1val);
17093 InsertVLVal(valsds1val,
VL_STRING, key1val, it0->second);
17099 if(total_item_size0*length0<column){
17100 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17105void Hdf5Back::WriteToBuf<VL_MAP_INT_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17106 std::map<int, std::string> val0=a->
cast<std::map<int, std::string>>();
17108 size_t item_size1key=
sizeof(int);
17110 size_t total_item_size0=item_size1key+item_size1val;
17117 hvl_t buf0 = VLValToBuf(val0);
17124void Hdf5Back::WriteToBuf<MAP_INT_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17125 std::map<int, cyclus::Blob> val0=a->
cast<std::map<int, cyclus::Blob>>();
17127 size_t length0=shape[0];
17128 size_t item_size1key=
sizeof(int);
17130 size_t total_item_size0=item_size1key+item_size1val;
17131 if(total_item_size0*val0.size()>column){
17132 std::map<int, cyclus::Blob>::iterator eraseit=val0.begin();
17133 std::advance(eraseit, column/total_item_size0);
17134 val0.erase(eraseit,val0.end());
17137 unsigned int count0=0;
17138 std::map<int, cyclus::Blob>::iterator it0=val0.begin();
17139 for(;it0!=val0.end();++it0){
17140 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
17142 hasher_.
Update(it0->second);
17144 hid_t keysds1val = VLDataset(
BLOB,
true);
17145 hid_t valsds1val = VLDataset(
BLOB,
false);
17146 if (vlkeys_[
BLOB].count(key1val) != 1) {
17147 AppendVLKey(keysds1val,
BLOB, key1val);
17148 InsertVLVal(valsds1val,
BLOB, key1val, (it0->second).str());
17154 if(total_item_size0*length0<column){
17155 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17160void Hdf5Back::WriteToBuf<VL_MAP_INT_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17161 std::map<int, cyclus::Blob> val0=a->
cast<std::map<int, cyclus::Blob>>();
17163 size_t item_size1key=
sizeof(int);
17165 size_t total_item_size0=item_size1key+item_size1val;
17172 hvl_t buf0 = VLValToBuf(val0);
17179void Hdf5Back::WriteToBuf<MAP_INT_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17180 std::map<int, boost::uuids::uuid> val0=a->
cast<std::map<int, boost::uuids::uuid>>();
17182 size_t length0=shape[0];
17183 size_t item_size1key=
sizeof(int);
17185 size_t total_item_size0=item_size1key+item_size1val;
17186 if(total_item_size0*val0.size()>column){
17187 std::map<int, boost::uuids::uuid>::iterator eraseit=val0.begin();
17188 std::advance(eraseit, column/total_item_size0);
17189 val0.erase(eraseit,val0.end());
17192 unsigned int count0=0;
17193 std::map<int, boost::uuids::uuid>::iterator it0=val0.begin();
17194 for(;it0!=val0.end();++it0){
17195 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
17196 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17200 if(total_item_size0*length0<column){
17201 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17206void Hdf5Back::WriteToBuf<VL_MAP_INT_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17207 std::map<int, boost::uuids::uuid> val0=a->
cast<std::map<int, boost::uuids::uuid>>();
17209 size_t item_size1key=
sizeof(int);
17211 size_t total_item_size0=item_size1key+item_size1val;
17218 hvl_t buf0 = VLValToBuf(val0);
17225void Hdf5Back::WriteToBuf<MAP_STRING_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17226 std::map<std::string, bool> val0=a->
cast<std::map<std::string, bool>>();
17227 size_t item_size0=((shape[1]+
sizeof(char))*shape[0]);
17228 size_t length0=shape[0];
17229 size_t item_size1key=shape[1];
17230 size_t valuelen1key;
17231 size_t item_size1val=
sizeof(char);
17232 size_t total_item_size0=item_size1key+item_size1val;
17233 if(total_item_size0*val0.size()>column){
17234 std::map<std::string, bool>::iterator eraseit=val0.begin();
17235 std::advance(eraseit, column/total_item_size0);
17236 val0.erase(eraseit,val0.end());
17239 unsigned int count0=0;
17240 std::map<std::string, bool>::iterator it0=val0.begin();
17241 for(;it0!=val0.end();++it0){
17242 valuelen1key=std::min(it0->first.size(), item_size1key);
17243 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17244 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17245 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17249 if(total_item_size0*length0<column){
17250 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17255void Hdf5Back::WriteToBuf<VL_MAP_STRING_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17256 std::map<std::string, bool> val0=a->
cast<std::map<std::string, bool>>();
17258 size_t item_size1key=shape[1];
17259 size_t valuelen1key;
17260 size_t item_size1val=
sizeof(char);
17261 size_t total_item_size0=item_size1key+item_size1val;
17262 unsigned int count0=0;
17263 std::map<std::string, bool>::iterator it0=val0.begin();
17264 std::map<std::string, bool> fixed_val0;
17265 unsigned int pad_count0=0;
17266 for(;it0!=val0.end();++it0){
17267 std::string child1key=std::string(it0->first,0,item_size1key);
17268 fixed_val0[child1key] = it0->second;
17273 hasher_.
Update(fixed_val0);
17278 hvl_t buf0 = VLValToBuf(fixed_val0);
17285void Hdf5Back::WriteToBuf<MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17286 std::map<std::string, int> val0=a->
cast<std::map<std::string, int>>();
17287 size_t item_size0=((shape[1]+
sizeof(int))*shape[0]);
17288 size_t length0=shape[0];
17289 size_t item_size1key=shape[1];
17290 size_t valuelen1key;
17291 size_t item_size1val=
sizeof(int);
17292 size_t total_item_size0=item_size1key+item_size1val;
17293 if(total_item_size0*val0.size()>column){
17294 std::map<std::string, int>::iterator eraseit=val0.begin();
17295 std::advance(eraseit, column/total_item_size0);
17296 val0.erase(eraseit,val0.end());
17299 unsigned int count0=0;
17300 std::map<std::string, int>::iterator it0=val0.begin();
17301 for(;it0!=val0.end();++it0){
17302 valuelen1key=std::min(it0->first.size(), item_size1key);
17303 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17304 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17305 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17309 if(total_item_size0*length0<column){
17310 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17315void Hdf5Back::WriteToBuf<VL_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17316 std::map<std::string, int> val0=a->
cast<std::map<std::string, int>>();
17318 size_t item_size1key=shape[1];
17319 size_t valuelen1key;
17320 size_t item_size1val=
sizeof(int);
17321 size_t total_item_size0=item_size1key+item_size1val;
17322 unsigned int count0=0;
17323 std::map<std::string, int>::iterator it0=val0.begin();
17324 std::map<std::string, int> fixed_val0;
17325 unsigned int pad_count0=0;
17326 for(;it0!=val0.end();++it0){
17327 std::string child1key=std::string(it0->first,0,item_size1key);
17328 fixed_val0[child1key] = it0->second;
17333 hasher_.
Update(fixed_val0);
17338 hvl_t buf0 = VLValToBuf(fixed_val0);
17345void Hdf5Back::WriteToBuf<MAP_STRING_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17346 std::map<std::string, float> val0=a->
cast<std::map<std::string, float>>();
17347 size_t item_size0=((shape[1]+
sizeof(float))*shape[0]);
17348 size_t length0=shape[0];
17349 size_t item_size1key=shape[1];
17350 size_t valuelen1key;
17351 size_t item_size1val=
sizeof(float);
17352 size_t total_item_size0=item_size1key+item_size1val;
17353 if(total_item_size0*val0.size()>column){
17354 std::map<std::string, float>::iterator eraseit=val0.begin();
17355 std::advance(eraseit, column/total_item_size0);
17356 val0.erase(eraseit,val0.end());
17359 unsigned int count0=0;
17360 std::map<std::string, float>::iterator it0=val0.begin();
17361 for(;it0!=val0.end();++it0){
17362 valuelen1key=std::min(it0->first.size(), item_size1key);
17363 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17364 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17365 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17369 if(total_item_size0*length0<column){
17370 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17375void Hdf5Back::WriteToBuf<VL_MAP_STRING_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17376 std::map<std::string, float> val0=a->
cast<std::map<std::string, float>>();
17378 size_t item_size1key=shape[1];
17379 size_t valuelen1key;
17380 size_t item_size1val=
sizeof(float);
17381 size_t total_item_size0=item_size1key+item_size1val;
17382 unsigned int count0=0;
17383 std::map<std::string, float>::iterator it0=val0.begin();
17384 std::map<std::string, float> fixed_val0;
17385 unsigned int pad_count0=0;
17386 for(;it0!=val0.end();++it0){
17387 std::string child1key=std::string(it0->first,0,item_size1key);
17388 fixed_val0[child1key] = it0->second;
17393 hasher_.
Update(fixed_val0);
17398 hvl_t buf0 = VLValToBuf(fixed_val0);
17405void Hdf5Back::WriteToBuf<MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17406 std::map<std::string, double> val0=a->
cast<std::map<std::string, double>>();
17407 size_t item_size0=((shape[1]+
sizeof(double))*shape[0]);
17408 size_t length0=shape[0];
17409 size_t item_size1key=shape[1];
17410 size_t valuelen1key;
17411 size_t item_size1val=
sizeof(double);
17412 size_t total_item_size0=item_size1key+item_size1val;
17413 if(total_item_size0*val0.size()>column){
17414 std::map<std::string, double>::iterator eraseit=val0.begin();
17415 std::advance(eraseit, column/total_item_size0);
17416 val0.erase(eraseit,val0.end());
17419 unsigned int count0=0;
17420 std::map<std::string, double>::iterator it0=val0.begin();
17421 for(;it0!=val0.end();++it0){
17422 valuelen1key=std::min(it0->first.size(), item_size1key);
17423 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17424 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17425 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17429 if(total_item_size0*length0<column){
17430 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17435void Hdf5Back::WriteToBuf<VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17436 std::map<std::string, double> val0=a->
cast<std::map<std::string, double>>();
17438 size_t item_size1key=shape[1];
17439 size_t valuelen1key;
17440 size_t item_size1val=
sizeof(double);
17441 size_t total_item_size0=item_size1key+item_size1val;
17442 unsigned int count0=0;
17443 std::map<std::string, double>::iterator it0=val0.begin();
17444 std::map<std::string, double> fixed_val0;
17445 unsigned int pad_count0=0;
17446 for(;it0!=val0.end();++it0){
17447 std::string child1key=std::string(it0->first,0,item_size1key);
17448 fixed_val0[child1key] = it0->second;
17453 hasher_.
Update(fixed_val0);
17458 hvl_t buf0 = VLValToBuf(fixed_val0);
17465void Hdf5Back::WriteToBuf<MAP_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17466 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
17467 size_t item_size0=((shape[1]+shape[2])*shape[0]);
17468 size_t length0=shape[0];
17469 size_t item_size1key=shape[1];
17470 size_t valuelen1key;
17471 size_t item_size1val=shape[2];
17472 size_t valuelen1val;
17473 size_t total_item_size0=item_size1key+item_size1val;
17474 if(total_item_size0*val0.size()>column){
17475 std::map<std::string, std::string>::iterator eraseit=val0.begin();
17476 std::advance(eraseit, column/total_item_size0);
17477 val0.erase(eraseit,val0.end());
17480 unsigned int count0=0;
17481 std::map<std::string, std::string>::iterator it0=val0.begin();
17482 for(;it0!=val0.end();++it0){
17483 valuelen1key=std::min(it0->first.size(), item_size1key);
17484 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17485 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17486 valuelen1val=std::min(it0->second.size(), item_size1val);
17487 memcpy(buf+(count0*total_item_size0)+0+item_size1key, it0->second.c_str(), valuelen1val);
17488 memset(buf+(count0*total_item_size0)+0+item_size1key+valuelen1val, 0, item_size1val-valuelen1val);
17492 if(total_item_size0*length0<column){
17493 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17498void Hdf5Back::WriteToBuf<VL_MAP_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17499 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
17501 size_t item_size1key=shape[1];
17502 size_t valuelen1key;
17503 size_t item_size1val=shape[2];
17504 size_t valuelen1val;
17505 size_t total_item_size0=item_size1key+item_size1val;
17506 unsigned int count0=0;
17507 std::map<std::string, std::string>::iterator it0=val0.begin();
17508 std::map<std::string, std::string> fixed_val0;
17509 unsigned int pad_count0=0;
17510 for(;it0!=val0.end();++it0){
17511 std::string child1key=std::string(it0->first,0,item_size1key);
17512 std::string child1val=std::string(it0->second,0,item_size1val);
17513 fixed_val0[child1key] = child1val;
17518 hasher_.
Update(fixed_val0);
17523 hvl_t buf0 = VLValToBuf(fixed_val0);
17530void Hdf5Back::WriteToBuf<MAP_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17531 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
17533 size_t length0=shape[0];
17534 size_t item_size1key=shape[1];
17535 size_t valuelen1key;
17537 size_t total_item_size0=item_size1key+item_size1val;
17538 if(total_item_size0*val0.size()>column){
17539 std::map<std::string, std::string>::iterator eraseit=val0.begin();
17540 std::advance(eraseit, column/total_item_size0);
17541 val0.erase(eraseit,val0.end());
17544 unsigned int count0=0;
17545 std::map<std::string, std::string>::iterator it0=val0.begin();
17546 for(;it0!=val0.end();++it0){
17547 valuelen1key=std::min(it0->first.size(), item_size1key);
17548 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17549 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17551 hasher_.
Update(it0->second);
17553 hid_t keysds1val = VLDataset(
VL_STRING,
true);
17554 hid_t valsds1val = VLDataset(
VL_STRING,
false);
17555 if (vlkeys_[
VL_STRING].count(key1val) != 1) {
17556 AppendVLKey(keysds1val,
VL_STRING, key1val);
17557 InsertVLVal(valsds1val,
VL_STRING, key1val, it0->second);
17563 if(total_item_size0*length0<column){
17564 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17569void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17570 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
17572 size_t item_size1key=shape[1];
17573 size_t valuelen1key;
17575 size_t total_item_size0=item_size1key+item_size1val;
17576 unsigned int count0=0;
17577 std::map<std::string, std::string>::iterator it0=val0.begin();
17578 std::map<std::string, std::string> fixed_val0;
17579 unsigned int pad_count0=0;
17580 for(;it0!=val0.end();++it0){
17581 std::string child1key=std::string(it0->first,0,item_size1key);
17582 fixed_val0[child1key] = it0->second;
17587 hasher_.
Update(fixed_val0);
17592 hvl_t buf0 = VLValToBuf(fixed_val0);
17599void Hdf5Back::WriteToBuf<MAP_STRING_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17600 std::map<std::string, cyclus::Blob> val0=a->
cast<std::map<std::string, cyclus::Blob>>();
17602 size_t length0=shape[0];
17603 size_t item_size1key=shape[1];
17604 size_t valuelen1key;
17606 size_t total_item_size0=item_size1key+item_size1val;
17607 if(total_item_size0*val0.size()>column){
17608 std::map<std::string, cyclus::Blob>::iterator eraseit=val0.begin();
17609 std::advance(eraseit, column/total_item_size0);
17610 val0.erase(eraseit,val0.end());
17613 unsigned int count0=0;
17614 std::map<std::string, cyclus::Blob>::iterator it0=val0.begin();
17615 for(;it0!=val0.end();++it0){
17616 valuelen1key=std::min(it0->first.size(), item_size1key);
17617 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17618 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17620 hasher_.
Update(it0->second);
17622 hid_t keysds1val = VLDataset(
BLOB,
true);
17623 hid_t valsds1val = VLDataset(
BLOB,
false);
17624 if (vlkeys_[
BLOB].count(key1val) != 1) {
17625 AppendVLKey(keysds1val,
BLOB, key1val);
17626 InsertVLVal(valsds1val,
BLOB, key1val, (it0->second).str());
17632 if(total_item_size0*length0<column){
17633 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17638void Hdf5Back::WriteToBuf<VL_MAP_STRING_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17639 std::map<std::string, cyclus::Blob> val0=a->
cast<std::map<std::string, cyclus::Blob>>();
17641 size_t item_size1key=shape[1];
17642 size_t valuelen1key;
17644 size_t total_item_size0=item_size1key+item_size1val;
17645 unsigned int count0=0;
17646 std::map<std::string, cyclus::Blob>::iterator it0=val0.begin();
17647 std::map<std::string, cyclus::Blob> fixed_val0;
17648 unsigned int pad_count0=0;
17649 for(;it0!=val0.end();++it0){
17650 std::string child1key=std::string(it0->first,0,item_size1key);
17651 fixed_val0[child1key] = it0->second;
17656 hasher_.
Update(fixed_val0);
17661 hvl_t buf0 = VLValToBuf(fixed_val0);
17668void Hdf5Back::WriteToBuf<MAP_STRING_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17669 std::map<std::string, boost::uuids::uuid> val0=a->
cast<std::map<std::string, boost::uuids::uuid>>();
17671 size_t length0=shape[0];
17672 size_t item_size1key=shape[1];
17673 size_t valuelen1key;
17675 size_t total_item_size0=item_size1key+item_size1val;
17676 if(total_item_size0*val0.size()>column){
17677 std::map<std::string, boost::uuids::uuid>::iterator eraseit=val0.begin();
17678 std::advance(eraseit, column/total_item_size0);
17679 val0.erase(eraseit,val0.end());
17682 unsigned int count0=0;
17683 std::map<std::string, boost::uuids::uuid>::iterator it0=val0.begin();
17684 for(;it0!=val0.end();++it0){
17685 valuelen1key=std::min(it0->first.size(), item_size1key);
17686 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
17687 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
17688 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17692 if(total_item_size0*length0<column){
17693 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17698void Hdf5Back::WriteToBuf<VL_MAP_STRING_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17699 std::map<std::string, boost::uuids::uuid> val0=a->
cast<std::map<std::string, boost::uuids::uuid>>();
17701 size_t item_size1key=shape[1];
17702 size_t valuelen1key;
17704 size_t total_item_size0=item_size1key+item_size1val;
17705 unsigned int count0=0;
17706 std::map<std::string, boost::uuids::uuid>::iterator it0=val0.begin();
17707 std::map<std::string, boost::uuids::uuid> fixed_val0;
17708 unsigned int pad_count0=0;
17709 for(;it0!=val0.end();++it0){
17710 std::string child1key=std::string(it0->first,0,item_size1key);
17711 fixed_val0[child1key] = it0->second;
17716 hasher_.
Update(fixed_val0);
17721 hvl_t buf0 = VLValToBuf(fixed_val0);
17728void Hdf5Back::WriteToBuf<MAP_VL_STRING_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17729 std::map<std::string, bool> val0=a->
cast<std::map<std::string, bool>>();
17731 size_t length0=shape[0];
17733 size_t item_size1val=
sizeof(char);
17734 size_t total_item_size0=item_size1key+item_size1val;
17735 if(total_item_size0*val0.size()>column){
17736 std::map<std::string, bool>::iterator eraseit=val0.begin();
17737 std::advance(eraseit, column/total_item_size0);
17738 val0.erase(eraseit,val0.end());
17741 unsigned int count0=0;
17742 std::map<std::string, bool>::iterator it0=val0.begin();
17743 for(;it0!=val0.end();++it0){
17745 hasher_.
Update(it0->first);
17747 hid_t keysds1key = VLDataset(
VL_STRING,
true);
17748 hid_t valsds1key = VLDataset(
VL_STRING,
false);
17749 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
17750 AppendVLKey(keysds1key,
VL_STRING, key1key);
17751 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
17754 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17758 if(total_item_size0*length0<column){
17759 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17764void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_BOOL>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17765 std::map<std::string, bool> val0=a->
cast<std::map<std::string, bool>>();
17768 size_t item_size1val=
sizeof(char);
17769 size_t total_item_size0=item_size1key+item_size1val;
17776 hvl_t buf0 = VLValToBuf(val0);
17783void Hdf5Back::WriteToBuf<MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17784 std::map<std::string, int> val0=a->
cast<std::map<std::string, int>>();
17786 size_t length0=shape[0];
17788 size_t item_size1val=
sizeof(int);
17789 size_t total_item_size0=item_size1key+item_size1val;
17790 if(total_item_size0*val0.size()>column){
17791 std::map<std::string, int>::iterator eraseit=val0.begin();
17792 std::advance(eraseit, column/total_item_size0);
17793 val0.erase(eraseit,val0.end());
17796 unsigned int count0=0;
17797 std::map<std::string, int>::iterator it0=val0.begin();
17798 for(;it0!=val0.end();++it0){
17800 hasher_.
Update(it0->first);
17802 hid_t keysds1key = VLDataset(
VL_STRING,
true);
17803 hid_t valsds1key = VLDataset(
VL_STRING,
false);
17804 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
17805 AppendVLKey(keysds1key,
VL_STRING, key1key);
17806 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
17809 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17813 if(total_item_size0*length0<column){
17814 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17819void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17820 std::map<std::string, int> val0=a->
cast<std::map<std::string, int>>();
17823 size_t item_size1val=
sizeof(int);
17824 size_t total_item_size0=item_size1key+item_size1val;
17831 hvl_t buf0 = VLValToBuf(val0);
17838void Hdf5Back::WriteToBuf<MAP_VL_STRING_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17839 std::map<std::string, float> val0=a->
cast<std::map<std::string, float>>();
17841 size_t length0=shape[0];
17843 size_t item_size1val=
sizeof(float);
17844 size_t total_item_size0=item_size1key+item_size1val;
17845 if(total_item_size0*val0.size()>column){
17846 std::map<std::string, float>::iterator eraseit=val0.begin();
17847 std::advance(eraseit, column/total_item_size0);
17848 val0.erase(eraseit,val0.end());
17851 unsigned int count0=0;
17852 std::map<std::string, float>::iterator it0=val0.begin();
17853 for(;it0!=val0.end();++it0){
17855 hasher_.
Update(it0->first);
17857 hid_t keysds1key = VLDataset(
VL_STRING,
true);
17858 hid_t valsds1key = VLDataset(
VL_STRING,
false);
17859 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
17860 AppendVLKey(keysds1key,
VL_STRING, key1key);
17861 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
17864 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17868 if(total_item_size0*length0<column){
17869 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17874void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_FLOAT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17875 std::map<std::string, float> val0=a->
cast<std::map<std::string, float>>();
17878 size_t item_size1val=
sizeof(float);
17879 size_t total_item_size0=item_size1key+item_size1val;
17886 hvl_t buf0 = VLValToBuf(val0);
17893void Hdf5Back::WriteToBuf<MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17894 std::map<std::string, double> val0=a->
cast<std::map<std::string, double>>();
17896 size_t length0=shape[0];
17898 size_t item_size1val=
sizeof(double);
17899 size_t total_item_size0=item_size1key+item_size1val;
17900 if(total_item_size0*val0.size()>column){
17901 std::map<std::string, double>::iterator eraseit=val0.begin();
17902 std::advance(eraseit, column/total_item_size0);
17903 val0.erase(eraseit,val0.end());
17906 unsigned int count0=0;
17907 std::map<std::string, double>::iterator it0=val0.begin();
17908 for(;it0!=val0.end();++it0){
17910 hasher_.
Update(it0->first);
17912 hid_t keysds1key = VLDataset(
VL_STRING,
true);
17913 hid_t valsds1key = VLDataset(
VL_STRING,
false);
17914 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
17915 AppendVLKey(keysds1key,
VL_STRING, key1key);
17916 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
17919 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
17923 if(total_item_size0*length0<column){
17924 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17929void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17930 std::map<std::string, double> val0=a->
cast<std::map<std::string, double>>();
17933 size_t item_size1val=
sizeof(double);
17934 size_t total_item_size0=item_size1key+item_size1val;
17941 hvl_t buf0 = VLValToBuf(val0);
17948void Hdf5Back::WriteToBuf<MAP_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17949 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
17951 size_t length0=shape[0];
17953 size_t item_size1val=shape[2];
17954 size_t valuelen1val;
17955 size_t total_item_size0=item_size1key+item_size1val;
17956 if(total_item_size0*val0.size()>column){
17957 std::map<std::string, std::string>::iterator eraseit=val0.begin();
17958 std::advance(eraseit, column/total_item_size0);
17959 val0.erase(eraseit,val0.end());
17962 unsigned int count0=0;
17963 std::map<std::string, std::string>::iterator it0=val0.begin();
17964 for(;it0!=val0.end();++it0){
17966 hasher_.
Update(it0->first);
17968 hid_t keysds1key = VLDataset(
VL_STRING,
true);
17969 hid_t valsds1key = VLDataset(
VL_STRING,
false);
17970 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
17971 AppendVLKey(keysds1key,
VL_STRING, key1key);
17972 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
17975 valuelen1val=std::min(it0->second.size(), item_size1val);
17976 memcpy(buf+(count0*total_item_size0)+0+item_size1key, it0->second.c_str(), valuelen1val);
17977 memset(buf+(count0*total_item_size0)+0+item_size1key+valuelen1val, 0, item_size1val-valuelen1val);
17981 if(total_item_size0*length0<column){
17982 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
17987void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
17988 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
17991 size_t item_size1val=shape[2];
17992 size_t valuelen1val;
17993 size_t total_item_size0=item_size1key+item_size1val;
17994 unsigned int count0=0;
17995 std::map<std::string, std::string>::iterator it0=val0.begin();
17996 std::map<std::string, std::string> fixed_val0;
17997 unsigned int pad_count0=0;
17998 for(;it0!=val0.end();++it0){
17999 std::string child1val=std::string(it0->second,0,item_size1val);
18000 fixed_val0[it0->first] = child1val;
18005 hasher_.
Update(fixed_val0);
18010 hvl_t buf0 = VLValToBuf(fixed_val0);
18017void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18018 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
18020 size_t length0=shape[0];
18023 size_t total_item_size0=item_size1key+item_size1val;
18024 if(total_item_size0*val0.size()>column){
18025 std::map<std::string, std::string>::iterator eraseit=val0.begin();
18026 std::advance(eraseit, column/total_item_size0);
18027 val0.erase(eraseit,val0.end());
18030 unsigned int count0=0;
18031 std::map<std::string, std::string>::iterator it0=val0.begin();
18032 for(;it0!=val0.end();++it0){
18034 hasher_.
Update(it0->first);
18036 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18037 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18038 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18039 AppendVLKey(keysds1key,
VL_STRING, key1key);
18040 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18044 hasher_.
Update(it0->second);
18046 hid_t keysds1val = VLDataset(
VL_STRING,
true);
18047 hid_t valsds1val = VLDataset(
VL_STRING,
false);
18048 if (vlkeys_[
VL_STRING].count(key1val) != 1) {
18049 AppendVLKey(keysds1val,
VL_STRING, key1val);
18050 InsertVLVal(valsds1val,
VL_STRING, key1val, it0->second);
18056 if(total_item_size0*length0<column){
18057 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18062void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18063 std::map<std::string, std::string> val0=a->
cast<std::map<std::string, std::string>>();
18067 size_t total_item_size0=item_size1key+item_size1val;
18074 hvl_t buf0 = VLValToBuf(val0);
18081void Hdf5Back::WriteToBuf<MAP_VL_STRING_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18082 std::map<std::string, cyclus::Blob> val0=a->
cast<std::map<std::string, cyclus::Blob>>();
18084 size_t length0=shape[0];
18087 size_t total_item_size0=item_size1key+item_size1val;
18088 if(total_item_size0*val0.size()>column){
18089 std::map<std::string, cyclus::Blob>::iterator eraseit=val0.begin();
18090 std::advance(eraseit, column/total_item_size0);
18091 val0.erase(eraseit,val0.end());
18094 unsigned int count0=0;
18095 std::map<std::string, cyclus::Blob>::iterator it0=val0.begin();
18096 for(;it0!=val0.end();++it0){
18098 hasher_.
Update(it0->first);
18100 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18101 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18102 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18103 AppendVLKey(keysds1key,
VL_STRING, key1key);
18104 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18108 hasher_.
Update(it0->second);
18110 hid_t keysds1val = VLDataset(
BLOB,
true);
18111 hid_t valsds1val = VLDataset(
BLOB,
false);
18112 if (vlkeys_[
BLOB].count(key1val) != 1) {
18113 AppendVLKey(keysds1val,
BLOB, key1val);
18114 InsertVLVal(valsds1val,
BLOB, key1val, (it0->second).str());
18120 if(total_item_size0*length0<column){
18121 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18126void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_BLOB>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18127 std::map<std::string, cyclus::Blob> val0=a->
cast<std::map<std::string, cyclus::Blob>>();
18131 size_t total_item_size0=item_size1key+item_size1val;
18138 hvl_t buf0 = VLValToBuf(val0);
18145void Hdf5Back::WriteToBuf<MAP_VL_STRING_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18146 std::map<std::string, boost::uuids::uuid> val0=a->
cast<std::map<std::string, boost::uuids::uuid>>();
18148 size_t length0=shape[0];
18151 size_t total_item_size0=item_size1key+item_size1val;
18152 if(total_item_size0*val0.size()>column){
18153 std::map<std::string, boost::uuids::uuid>::iterator eraseit=val0.begin();
18154 std::advance(eraseit, column/total_item_size0);
18155 val0.erase(eraseit,val0.end());
18158 unsigned int count0=0;
18159 std::map<std::string, boost::uuids::uuid>::iterator it0=val0.begin();
18160 for(;it0!=val0.end();++it0){
18162 hasher_.
Update(it0->first);
18164 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18165 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18166 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18167 AppendVLKey(keysds1key,
VL_STRING, key1key);
18168 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18171 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
18175 if(total_item_size0*length0<column){
18176 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18181void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_UUID>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18182 std::map<std::string, boost::uuids::uuid> val0=a->
cast<std::map<std::string, boost::uuids::uuid>>();
18186 size_t total_item_size0=item_size1key+item_size1val;
18193 hvl_t buf0 = VLValToBuf(val0);
18200void Hdf5Back::WriteToBuf<MAP_PAIR_INT_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18201 std::map<std::pair<int, std::string>,
double> val0=a->
cast<std::map<std::pair<int, std::string>,
double>>();
18202 size_t item_size0=((((
sizeof(int)+shape[3]))+
sizeof(
double))*shape[0]);
18203 size_t length0=shape[0];
18204 size_t item_size1key=((
sizeof(int)+shape[3]));
18205 size_t item_size2keyfirst=
sizeof(int);
18206 size_t item_size2keysecond=shape[3];
18207 size_t valuelen2keysecond;
18208 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
18209 size_t item_size1val=
sizeof(double);
18210 size_t total_item_size0=item_size1key+item_size1val;
18211 if(total_item_size0*val0.size()>column){
18212 std::map<std::pair<int, std::string>,
double>::iterator eraseit=val0.begin();
18213 std::advance(eraseit, column/total_item_size0);
18214 val0.erase(eraseit,val0.end());
18217 unsigned int count0=0;
18218 std::map<std::pair<int, std::string>,
double>::iterator it0=val0.begin();
18219 for(;it0!=val0.end();++it0){
18220 unsigned int count1key=0;
18221 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0, &(it0->first.first), item_size2keyfirst);
18222 valuelen2keysecond=std::min(it0->first.second.size(), item_size2keysecond);
18223 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst, it0->first.second.c_str(), valuelen2keysecond);
18224 memset(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst+valuelen2keysecond, 0, item_size2keysecond-valuelen2keysecond);
18225 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
18229 if(total_item_size0*length0<column){
18230 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18235void Hdf5Back::WriteToBuf<VL_MAP_PAIR_INT_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18236 std::map<std::pair<int, std::string>,
double> val0=a->
cast<std::map<std::pair<int, std::string>,
double>>();
18238 size_t item_size1key=((
sizeof(int)+shape[3]));
18239 size_t item_size2keyfirst=
sizeof(int);
18240 size_t item_size2keysecond=shape[3];
18241 size_t valuelen2keysecond;
18242 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
18243 size_t item_size1val=
sizeof(double);
18244 size_t total_item_size0=item_size1key+item_size1val;
18245 unsigned int count0=0;
18246 std::map<std::pair<int, std::string>,
double>::iterator it0=val0.begin();
18247 std::map<std::pair<int, std::string>,
double> fixed_val0;
18248 unsigned int pad_count0=0;
18249 for(;it0!=val0.end();++it0){
18250 std::pair<int, std::string> child1key;
18251 unsigned int pad_count1key=0;
18252 std::string child2keysecond=std::string(it0->first.second,0,item_size2keysecond);
18253 child1key = std::make_pair(it0->first.first,child2keysecond);
18254 fixed_val0[child1key] = it0->second;
18259 hasher_.
Update(fixed_val0);
18264 hvl_t buf0 = VLValToBuf(fixed_val0);
18271void Hdf5Back::WriteToBuf<MAP_PAIR_INT_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18272 std::map<std::pair<int, std::string>,
double> val0=a->
cast<std::map<std::pair<int, std::string>,
double>>();
18273 size_t item_size0=((((
sizeof(int)+
CYCLUS_SHA1_SIZE))+
sizeof(
double))*shape[0]);
18274 size_t length0=shape[0];
18276 size_t item_size2keyfirst=
sizeof(int);
18278 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
18279 size_t item_size1val=
sizeof(double);
18280 size_t total_item_size0=item_size1key+item_size1val;
18281 if(total_item_size0*val0.size()>column){
18282 std::map<std::pair<int, std::string>,
double>::iterator eraseit=val0.begin();
18283 std::advance(eraseit, column/total_item_size0);
18284 val0.erase(eraseit,val0.end());
18287 unsigned int count0=0;
18288 std::map<std::pair<int, std::string>,
double>::iterator it0=val0.begin();
18289 for(;it0!=val0.end();++it0){
18290 unsigned int count1key=0;
18291 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0, &(it0->first.first), item_size2keyfirst);
18293 hasher_.
Update(it0->first.second);
18295 hid_t keysds2keysecond = VLDataset(
VL_STRING,
true);
18296 hid_t valsds2keysecond = VLDataset(
VL_STRING,
false);
18297 if (vlkeys_[
VL_STRING].count(key2keysecond) != 1) {
18298 AppendVLKey(keysds2keysecond,
VL_STRING, key2keysecond);
18299 InsertVLVal(valsds2keysecond,
VL_STRING, key2keysecond, it0->first.second);
18301 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst, key2keysecond.data(),
CYCLUS_SHA1_SIZE);
18302 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
18306 if(total_item_size0*length0<column){
18307 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18312void Hdf5Back::WriteToBuf<VL_MAP_PAIR_INT_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18313 std::map<std::pair<int, std::string>,
double> val0=a->
cast<std::map<std::pair<int, std::string>,
double>>();
18316 size_t item_size2keyfirst=
sizeof(int);
18318 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
18319 size_t item_size1val=
sizeof(double);
18320 size_t total_item_size0=item_size1key+item_size1val;
18327 hvl_t buf0 = VLValToBuf(val0);
18334void Hdf5Back::WriteToBuf<MAP_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18335 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18336 size_t item_size0=((shape[1]+((
sizeof(double))*shape[2]))*shape[0]);
18337 size_t length0=shape[0];
18338 size_t item_size1key=shape[1];
18339 size_t valuelen1key;
18340 size_t item_size1val=((
sizeof(double))*shape[2]);
18341 size_t length1val=shape[2];
18342 size_t item_size2valelem=
sizeof(double);
18343 size_t total_item_size1val=item_size2valelem;
18344 size_t total_item_size0=item_size1key+item_size1val;
18345 if(total_item_size0*val0.size()>column){
18346 std::map<std::string, std::vector<double>>::iterator eraseit=val0.begin();
18347 std::advance(eraseit, column/total_item_size0);
18348 val0.erase(eraseit,val0.end());
18351 unsigned int count0=0;
18352 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18353 for(;it0!=val0.end();++it0){
18354 valuelen1key=std::min(it0->first.size(), item_size1key);
18355 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
18356 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
18357 unsigned int count1val=0;
18358 std::vector<double>::iterator it1val=it0->second.begin();
18359 for(;it1val!=it0->second.end();++it1val){
18360 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val, &(*it1val), item_size2valelem);
18364 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
18368 if(total_item_size0*length0<column){
18369 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18374void Hdf5Back::WriteToBuf<MAP_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18375 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18377 size_t length0=shape[0];
18378 size_t item_size1key=shape[1];
18379 size_t valuelen1key;
18381 size_t item_size2valelem=
sizeof(double);
18382 size_t total_item_size1val=item_size2valelem;
18383 size_t total_item_size0=item_size1key+item_size1val;
18384 if(total_item_size0*val0.size()>column){
18385 std::map<std::string, std::vector<double>>::iterator eraseit=val0.begin();
18386 std::advance(eraseit, column/total_item_size0);
18387 val0.erase(eraseit,val0.end());
18390 unsigned int count0=0;
18391 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18392 for(;it0!=val0.end();++it0){
18393 valuelen1key=std::min(it0->first.size(), item_size1key);
18394 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
18395 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
18397 hasher_.
Update(it0->second);
18402 hvl_t buf1val = VLValToBuf(it0->second);
18410 if(total_item_size0*length0<column){
18411 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18416void Hdf5Back::WriteToBuf<VL_MAP_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18417 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18419 size_t item_size1key=shape[1];
18420 size_t valuelen1key;
18421 size_t item_size1val=((
sizeof(double))*shape[2]);
18422 size_t length1val=shape[2];
18423 size_t item_size2valelem=
sizeof(double);
18424 size_t total_item_size1val=item_size2valelem;
18425 size_t total_item_size0=item_size1key+item_size1val;
18426 unsigned int count0=0;
18427 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18428 std::map<std::string, std::vector<double>> fixed_val0;
18429 unsigned int pad_count0=0;
18430 for(;it0!=val0.end();++it0){
18431 std::string child1key=std::string(it0->first,0,item_size1key);
18432 std::vector<double> child1val;
18433 unsigned int pad_count1val=0;
18434 std::vector<double>::iterator it1val=it0->second.begin();
18435 for(;it1val!=it0->second.end();++it1val){
18436 child1val.push_back((*it1val));
18440 child1val.resize(length1val);
18441 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
18442 fixed_val0[child1key] = child1val;
18447 hasher_.
Update(fixed_val0);
18452 hvl_t buf0 = VLValToBuf(fixed_val0);
18459void Hdf5Back::WriteToBuf<MAP_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18460 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18461 size_t item_size0=((
CYCLUS_SHA1_SIZE+((
sizeof(double))*shape[2]))*shape[0]);
18462 size_t length0=shape[0];
18464 size_t item_size1val=((
sizeof(double))*shape[2]);
18465 size_t length1val=shape[2];
18466 size_t item_size2valelem=
sizeof(double);
18467 size_t total_item_size1val=item_size2valelem;
18468 size_t total_item_size0=item_size1key+item_size1val;
18469 if(total_item_size0*val0.size()>column){
18470 std::map<std::string, std::vector<double>>::iterator eraseit=val0.begin();
18471 std::advance(eraseit, column/total_item_size0);
18472 val0.erase(eraseit,val0.end());
18475 unsigned int count0=0;
18476 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18477 for(;it0!=val0.end();++it0){
18479 hasher_.
Update(it0->first);
18481 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18482 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18483 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18484 AppendVLKey(keysds1key,
VL_STRING, key1key);
18485 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18488 unsigned int count1val=0;
18489 std::vector<double>::iterator it1val=it0->second.begin();
18490 for(;it1val!=it0->second.end();++it1val){
18491 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val, &(*it1val), item_size2valelem);
18495 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
18499 if(total_item_size0*length0<column){
18500 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18505void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18506 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18508 size_t length0=shape[0];
18511 size_t item_size2valelem=
sizeof(double);
18512 size_t total_item_size1val=item_size2valelem;
18513 size_t total_item_size0=item_size1key+item_size1val;
18514 if(total_item_size0*val0.size()>column){
18515 std::map<std::string, std::vector<double>>::iterator eraseit=val0.begin();
18516 std::advance(eraseit, column/total_item_size0);
18517 val0.erase(eraseit,val0.end());
18520 unsigned int count0=0;
18521 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18522 for(;it0!=val0.end();++it0){
18524 hasher_.
Update(it0->first);
18526 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18527 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18528 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18529 AppendVLKey(keysds1key,
VL_STRING, key1key);
18530 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18534 hasher_.
Update(it0->second);
18539 hvl_t buf1val = VLValToBuf(it0->second);
18547 if(total_item_size0*length0<column){
18548 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18553void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18554 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18556 size_t item_size1key=shape[1];
18557 size_t valuelen1key;
18559 size_t item_size2valelem=
sizeof(double);
18560 size_t total_item_size1val=item_size2valelem;
18561 size_t total_item_size0=item_size1key+item_size1val;
18562 unsigned int count0=0;
18563 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18564 std::map<std::string, std::vector<double>> fixed_val0;
18565 unsigned int pad_count0=0;
18566 for(;it0!=val0.end();++it0){
18567 std::string child1key=std::string(it0->first,0,item_size1key);
18568 fixed_val0[child1key] = it0->second;
18573 hasher_.
Update(fixed_val0);
18578 hvl_t buf0 = VLValToBuf(fixed_val0);
18585void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18586 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18589 size_t item_size1val=((
sizeof(double))*shape[2]);
18590 size_t length1val=shape[2];
18591 size_t item_size2valelem=
sizeof(double);
18592 size_t total_item_size1val=item_size2valelem;
18593 size_t total_item_size0=item_size1key+item_size1val;
18594 unsigned int count0=0;
18595 std::map<std::string, std::vector<double>>::iterator it0=val0.begin();
18596 std::map<std::string, std::vector<double>> fixed_val0;
18597 unsigned int pad_count0=0;
18598 for(;it0!=val0.end();++it0){
18599 std::vector<double> child1val;
18600 unsigned int pad_count1val=0;
18601 std::vector<double>::iterator it1val=it0->second.begin();
18602 for(;it1val!=it0->second.end();++it1val){
18603 child1val.push_back((*it1val));
18607 child1val.resize(length1val);
18608 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
18609 fixed_val0[it0->first] = child1val;
18614 hasher_.
Update(fixed_val0);
18619 hvl_t buf0 = VLValToBuf(fixed_val0);
18626void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18627 std::map<std::string, std::vector<double>> val0=a->
cast<std::map<std::string, std::vector<double>>>();
18631 size_t item_size2valelem=
sizeof(double);
18632 size_t total_item_size1val=item_size2valelem;
18633 size_t total_item_size0=item_size1key+item_size1val;
18640 hvl_t buf0 = VLValToBuf(val0);
18647void Hdf5Back::WriteToBuf<MAP_STRING_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18648 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18649 size_t item_size0=((shape[1]+((
sizeof(int)+
sizeof(
double))*shape[2]))*shape[0]);
18650 size_t length0=shape[0];
18651 size_t item_size1key=shape[1];
18652 size_t valuelen1key;
18653 size_t item_size1val=((
sizeof(int)+
sizeof(
double))*shape[2]);
18654 size_t length1val=shape[2];
18655 size_t item_size2valkey=
sizeof(int);
18656 size_t item_size2valval=
sizeof(double);
18657 size_t total_item_size1val=item_size2valkey+item_size2valval;
18658 size_t total_item_size0=item_size1key+item_size1val;
18659 if(total_item_size0*val0.size()>column){
18660 std::map<std::string, std::map<int, double>>::iterator eraseit=val0.begin();
18661 std::advance(eraseit, column/total_item_size0);
18662 val0.erase(eraseit,val0.end());
18665 unsigned int count0=0;
18666 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18667 for(;it0!=val0.end();++it0){
18668 valuelen1key=std::min(it0->first.size(), item_size1key);
18669 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
18670 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
18671 unsigned int count1val=0;
18672 std::map<int, double>::iterator it1val=it0->second.begin();
18673 for(;it1val!=it0->second.end();++it1val){
18674 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, &(it1val->first), item_size2valkey);
18675 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
18679 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
18683 if(total_item_size0*length0<column){
18684 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18689void Hdf5Back::WriteToBuf<MAP_STRING_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18690 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18692 size_t length0=shape[0];
18693 size_t item_size1key=shape[1];
18694 size_t valuelen1key;
18696 size_t item_size2valkey=
sizeof(int);
18697 size_t item_size2valval=
sizeof(double);
18698 size_t total_item_size1val=item_size2valkey+item_size2valval;
18699 size_t total_item_size0=item_size1key+item_size1val;
18700 if(total_item_size0*val0.size()>column){
18701 std::map<std::string, std::map<int, double>>::iterator eraseit=val0.begin();
18702 std::advance(eraseit, column/total_item_size0);
18703 val0.erase(eraseit,val0.end());
18706 unsigned int count0=0;
18707 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18708 for(;it0!=val0.end();++it0){
18709 valuelen1key=std::min(it0->first.size(), item_size1key);
18710 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
18711 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
18713 hasher_.
Update(it0->second);
18718 hvl_t buf1val = VLValToBuf(it0->second);
18726 if(total_item_size0*length0<column){
18727 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18732void Hdf5Back::WriteToBuf<VL_MAP_STRING_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18733 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18735 size_t item_size1key=shape[1];
18736 size_t valuelen1key;
18737 size_t item_size1val=((
sizeof(int)+
sizeof(
double))*shape[2]);
18738 size_t length1val=shape[2];
18739 size_t item_size2valkey=
sizeof(int);
18740 size_t item_size2valval=
sizeof(double);
18741 size_t total_item_size1val=item_size2valkey+item_size2valval;
18742 size_t total_item_size0=item_size1key+item_size1val;
18743 unsigned int count0=0;
18744 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18745 std::map<std::string, std::map<int, double>> fixed_val0;
18746 unsigned int pad_count0=0;
18747 for(;it0!=val0.end();++it0){
18748 std::string child1key=std::string(it0->first,0,item_size1key);
18749 std::map<int, double> child1val;
18750 unsigned int pad_count1val=0;
18751 std::map<int, double>::iterator it1val=it0->second.begin();
18752 for(;it1val!=it0->second.end();++it1val){
18753 child1val[it1val->first] = it1val->second;
18757 fixed_val0[child1key] = child1val;
18762 hasher_.
Update(fixed_val0);
18767 hvl_t buf0 = VLValToBuf(fixed_val0);
18774void Hdf5Back::WriteToBuf<MAP_VL_STRING_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18775 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18776 size_t item_size0=((
CYCLUS_SHA1_SIZE+((
sizeof(int)+
sizeof(
double))*shape[2]))*shape[0]);
18777 size_t length0=shape[0];
18779 size_t item_size1val=((
sizeof(int)+
sizeof(
double))*shape[2]);
18780 size_t length1val=shape[2];
18781 size_t item_size2valkey=
sizeof(int);
18782 size_t item_size2valval=
sizeof(double);
18783 size_t total_item_size1val=item_size2valkey+item_size2valval;
18784 size_t total_item_size0=item_size1key+item_size1val;
18785 if(total_item_size0*val0.size()>column){
18786 std::map<std::string, std::map<int, double>>::iterator eraseit=val0.begin();
18787 std::advance(eraseit, column/total_item_size0);
18788 val0.erase(eraseit,val0.end());
18791 unsigned int count0=0;
18792 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18793 for(;it0!=val0.end();++it0){
18795 hasher_.
Update(it0->first);
18797 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18798 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18799 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18800 AppendVLKey(keysds1key,
VL_STRING, key1key);
18801 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18804 unsigned int count1val=0;
18805 std::map<int, double>::iterator it1val=it0->second.begin();
18806 for(;it1val!=it0->second.end();++it1val){
18807 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, &(it1val->first), item_size2valkey);
18808 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
18812 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
18816 if(total_item_size0*length0<column){
18817 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18822void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18823 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18825 size_t length0=shape[0];
18828 size_t item_size2valkey=
sizeof(int);
18829 size_t item_size2valval=
sizeof(double);
18830 size_t total_item_size1val=item_size2valkey+item_size2valval;
18831 size_t total_item_size0=item_size1key+item_size1val;
18832 if(total_item_size0*val0.size()>column){
18833 std::map<std::string, std::map<int, double>>::iterator eraseit=val0.begin();
18834 std::advance(eraseit, column/total_item_size0);
18835 val0.erase(eraseit,val0.end());
18838 unsigned int count0=0;
18839 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18840 for(;it0!=val0.end();++it0){
18842 hasher_.
Update(it0->first);
18844 hid_t keysds1key = VLDataset(
VL_STRING,
true);
18845 hid_t valsds1key = VLDataset(
VL_STRING,
false);
18846 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
18847 AppendVLKey(keysds1key,
VL_STRING, key1key);
18848 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
18852 hasher_.
Update(it0->second);
18857 hvl_t buf1val = VLValToBuf(it0->second);
18865 if(total_item_size0*length0<column){
18866 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
18871void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18872 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18874 size_t item_size1key=shape[1];
18875 size_t valuelen1key;
18877 size_t item_size2valkey=
sizeof(int);
18878 size_t item_size2valval=
sizeof(double);
18879 size_t total_item_size1val=item_size2valkey+item_size2valval;
18880 size_t total_item_size0=item_size1key+item_size1val;
18881 unsigned int count0=0;
18882 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18883 std::map<std::string, std::map<int, double>> fixed_val0;
18884 unsigned int pad_count0=0;
18885 for(;it0!=val0.end();++it0){
18886 std::string child1key=std::string(it0->first,0,item_size1key);
18887 fixed_val0[child1key] = it0->second;
18892 hasher_.
Update(fixed_val0);
18897 hvl_t buf0 = VLValToBuf(fixed_val0);
18904void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18905 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18908 size_t item_size1val=((
sizeof(int)+
sizeof(
double))*shape[2]);
18909 size_t length1val=shape[2];
18910 size_t item_size2valkey=
sizeof(int);
18911 size_t item_size2valval=
sizeof(double);
18912 size_t total_item_size1val=item_size2valkey+item_size2valval;
18913 size_t total_item_size0=item_size1key+item_size1val;
18914 unsigned int count0=0;
18915 std::map<std::string, std::map<int, double>>::iterator it0=val0.begin();
18916 std::map<std::string, std::map<int, double>> fixed_val0;
18917 unsigned int pad_count0=0;
18918 for(;it0!=val0.end();++it0){
18919 std::map<int, double> child1val;
18920 unsigned int pad_count1val=0;
18921 std::map<int, double>::iterator it1val=it0->second.begin();
18922 for(;it1val!=it0->second.end();++it1val){
18923 child1val[it1val->first] = it1val->second;
18927 fixed_val0[it0->first] = child1val;
18932 hasher_.
Update(fixed_val0);
18937 hvl_t buf0 = VLValToBuf(fixed_val0);
18944void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18945 std::map<std::string, std::map<int, double>> val0=a->
cast<std::map<std::string, std::map<int, double>>>();
18949 size_t item_size2valkey=
sizeof(int);
18950 size_t item_size2valval=
sizeof(double);
18951 size_t total_item_size1val=item_size2valkey+item_size2valval;
18952 size_t total_item_size0=item_size1key+item_size1val;
18959 hvl_t buf0 = VLValToBuf(val0);
18966void Hdf5Back::WriteToBuf<MAP_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
18967 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
18968 size_t item_size0=((shape[1]+((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[4]))))*shape[0]);
18969 size_t length0=shape[0];
18970 size_t item_size1key=shape[1];
18971 size_t valuelen1key;
18972 size_t item_size1val=((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[4])));
18973 size_t item_size2valfirst=
sizeof(double);
18974 size_t item_size2valsecond=((
sizeof(int)+
sizeof(
double))*shape[4]);
18975 size_t length2valsecond=shape[4];
18976 size_t item_size3valsecondkey=
sizeof(int);
18977 size_t item_size3valsecondval=
sizeof(double);
18978 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
18979 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
18980 size_t total_item_size0=item_size1key+item_size1val;
18981 if(total_item_size0*val0.size()>column){
18982 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator eraseit=val0.begin();
18983 std::advance(eraseit, column/total_item_size0);
18984 val0.erase(eraseit,val0.end());
18987 unsigned int count0=0;
18988 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
18989 for(;it0!=val0.end();++it0){
18990 valuelen1key=std::min(it0->first.size(), item_size1key);
18991 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
18992 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
18993 unsigned int count1val=0;
18994 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, &(it0->second.first), item_size2valfirst);
18995 unsigned int count2valsecond=0;
18996 std::map<int, double>::iterator it2valsecond=it0->second.second.begin();
18997 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
18998 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+(count2valsecond*total_item_size2valsecond)+0, &(it2valsecond->first), item_size3valsecondkey);
18999 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+(count2valsecond*total_item_size2valsecond)+0+item_size3valsecondkey, &(it2valsecond->second), item_size3valsecondval);
19003 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+total_item_size2valsecond*count2valsecond, 0, total_item_size2valsecond*(length2valsecond-count2valsecond));
19007 if(total_item_size0*length0<column){
19008 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19013void Hdf5Back::WriteToBuf<VL_MAP_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19014 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19016 size_t item_size1key=shape[1];
19017 size_t valuelen1key;
19018 size_t item_size1val=((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[4])));
19019 size_t item_size2valfirst=
sizeof(double);
19020 size_t item_size2valsecond=((
sizeof(int)+
sizeof(
double))*shape[4]);
19021 size_t length2valsecond=shape[4];
19022 size_t item_size3valsecondkey=
sizeof(int);
19023 size_t item_size3valsecondval=
sizeof(double);
19024 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19025 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19026 size_t total_item_size0=item_size1key+item_size1val;
19027 unsigned int count0=0;
19028 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
19029 std::map<std::string, std::pair<double, std::map<int, double>>> fixed_val0;
19030 unsigned int pad_count0=0;
19031 for(;it0!=val0.end();++it0){
19032 std::string child1key=std::string(it0->first,0,item_size1key);
19033 std::pair<double, std::map<int, double>> child1val;
19034 unsigned int pad_count1val=0;
19035 std::map<int, double> child2valsecond;
19036 unsigned int pad_count2valsecond=0;
19037 std::map<int, double>::iterator it2valsecond=it0->second.second.begin();
19038 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
19039 child2valsecond[it2valsecond->first] = it2valsecond->second;
19040 ++pad_count2valsecond;
19043 child1val = std::make_pair(it0->second.first,child2valsecond);
19044 fixed_val0[child1key] = child1val;
19049 hasher_.
Update(fixed_val0);
19054 hvl_t buf0 = VLValToBuf(fixed_val0);
19061void Hdf5Back::WriteToBuf<MAP_VL_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19062 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19063 size_t item_size0=((
CYCLUS_SHA1_SIZE+((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[4]))))*shape[0]);
19064 size_t length0=shape[0];
19066 size_t item_size1val=((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[4])));
19067 size_t item_size2valfirst=
sizeof(double);
19068 size_t item_size2valsecond=((
sizeof(int)+
sizeof(
double))*shape[4]);
19069 size_t length2valsecond=shape[4];
19070 size_t item_size3valsecondkey=
sizeof(int);
19071 size_t item_size3valsecondval=
sizeof(double);
19072 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19073 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19074 size_t total_item_size0=item_size1key+item_size1val;
19075 if(total_item_size0*val0.size()>column){
19076 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator eraseit=val0.begin();
19077 std::advance(eraseit, column/total_item_size0);
19078 val0.erase(eraseit,val0.end());
19081 unsigned int count0=0;
19082 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
19083 for(;it0!=val0.end();++it0){
19085 hasher_.
Update(it0->first);
19087 hid_t keysds1key = VLDataset(
VL_STRING,
true);
19088 hid_t valsds1key = VLDataset(
VL_STRING,
false);
19089 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
19090 AppendVLKey(keysds1key,
VL_STRING, key1key);
19091 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
19094 unsigned int count1val=0;
19095 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, &(it0->second.first), item_size2valfirst);
19096 unsigned int count2valsecond=0;
19097 std::map<int, double>::iterator it2valsecond=it0->second.second.begin();
19098 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
19099 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+(count2valsecond*total_item_size2valsecond)+0, &(it2valsecond->first), item_size3valsecondkey);
19100 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+(count2valsecond*total_item_size2valsecond)+0+item_size3valsecondkey, &(it2valsecond->second), item_size3valsecondval);
19104 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+total_item_size2valsecond*count2valsecond, 0, total_item_size2valsecond*(length2valsecond-count2valsecond));
19108 if(total_item_size0*length0<column){
19109 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19114void Hdf5Back::WriteToBuf<MAP_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19115 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19116 size_t item_size0=((shape[1]+((
sizeof(double)+(
CYCLUS_SHA1_SIZE))))*shape[0]);
19117 size_t length0=shape[0];
19118 size_t item_size1key=shape[1];
19119 size_t valuelen1key;
19121 size_t item_size2valfirst=
sizeof(double);
19123 size_t item_size3valsecondkey=
sizeof(int);
19124 size_t item_size3valsecondval=
sizeof(double);
19125 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19126 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19127 size_t total_item_size0=item_size1key+item_size1val;
19128 if(total_item_size0*val0.size()>column){
19129 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator eraseit=val0.begin();
19130 std::advance(eraseit, column/total_item_size0);
19131 val0.erase(eraseit,val0.end());
19134 unsigned int count0=0;
19135 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
19136 for(;it0!=val0.end();++it0){
19137 valuelen1key=std::min(it0->first.size(), item_size1key);
19138 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19139 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19140 unsigned int count1val=0;
19141 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, &(it0->second.first), item_size2valfirst);
19143 hasher_.
Update(it0->second.second);
19148 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
19150 InsertVLVal(valsds2valsecond,
VL_MAP_INT_DOUBLE, key2valsecond, buf2valsecond);
19152 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst, key2valsecond.data(),
CYCLUS_SHA1_SIZE);
19156 if(total_item_size0*length0<column){
19157 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19162void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19163 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19166 size_t item_size1val=((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[4])));
19167 size_t item_size2valfirst=
sizeof(double);
19168 size_t item_size2valsecond=((
sizeof(int)+
sizeof(
double))*shape[4]);
19169 size_t length2valsecond=shape[4];
19170 size_t item_size3valsecondkey=
sizeof(int);
19171 size_t item_size3valsecondval=
sizeof(double);
19172 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19173 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19174 size_t total_item_size0=item_size1key+item_size1val;
19175 unsigned int count0=0;
19176 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
19177 std::map<std::string, std::pair<double, std::map<int, double>>> fixed_val0;
19178 unsigned int pad_count0=0;
19179 for(;it0!=val0.end();++it0){
19180 std::pair<double, std::map<int, double>> child1val;
19181 unsigned int pad_count1val=0;
19182 std::map<int, double> child2valsecond;
19183 unsigned int pad_count2valsecond=0;
19184 std::map<int, double>::iterator it2valsecond=it0->second.second.begin();
19185 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
19186 child2valsecond[it2valsecond->first] = it2valsecond->second;
19187 ++pad_count2valsecond;
19190 child1val = std::make_pair(it0->second.first,child2valsecond);
19191 fixed_val0[it0->first] = child1val;
19196 hasher_.
Update(fixed_val0);
19201 hvl_t buf0 = VLValToBuf(fixed_val0);
19208void Hdf5Back::WriteToBuf<VL_MAP_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19209 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19211 size_t item_size1key=shape[1];
19212 size_t valuelen1key;
19214 size_t item_size2valfirst=
sizeof(double);
19216 size_t item_size3valsecondkey=
sizeof(int);
19217 size_t item_size3valsecondval=
sizeof(double);
19218 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19219 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19220 size_t total_item_size0=item_size1key+item_size1val;
19221 unsigned int count0=0;
19222 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
19223 std::map<std::string, std::pair<double, std::map<int, double>>> fixed_val0;
19224 unsigned int pad_count0=0;
19225 for(;it0!=val0.end();++it0){
19226 std::string child1key=std::string(it0->first,0,item_size1key);
19227 std::pair<double, std::map<int, double>> child1val;
19228 unsigned int pad_count1val=0;
19229 child1val = std::make_pair(it0->second.first,it0->second.second);
19230 fixed_val0[child1key] = child1val;
19235 hasher_.
Update(fixed_val0);
19240 hvl_t buf0 = VLValToBuf(fixed_val0);
19247void Hdf5Back::WriteToBuf<MAP_VL_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19248 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19250 size_t length0=shape[0];
19253 size_t item_size2valfirst=
sizeof(double);
19255 size_t item_size3valsecondkey=
sizeof(int);
19256 size_t item_size3valsecondval=
sizeof(double);
19257 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19258 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19259 size_t total_item_size0=item_size1key+item_size1val;
19260 if(total_item_size0*val0.size()>column){
19261 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator eraseit=val0.begin();
19262 std::advance(eraseit, column/total_item_size0);
19263 val0.erase(eraseit,val0.end());
19266 unsigned int count0=0;
19267 std::map<std::string, std::pair<double, std::map<int, double>>>::iterator it0=val0.begin();
19268 for(;it0!=val0.end();++it0){
19270 hasher_.
Update(it0->first);
19272 hid_t keysds1key = VLDataset(
VL_STRING,
true);
19273 hid_t valsds1key = VLDataset(
VL_STRING,
false);
19274 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
19275 AppendVLKey(keysds1key,
VL_STRING, key1key);
19276 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
19279 unsigned int count1val=0;
19280 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, &(it0->second.first), item_size2valfirst);
19282 hasher_.
Update(it0->second.second);
19287 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
19289 InsertVLVal(valsds2valsecond,
VL_MAP_INT_DOUBLE, key2valsecond, buf2valsecond);
19291 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst, key2valsecond.data(),
CYCLUS_SHA1_SIZE);
19295 if(total_item_size0*length0<column){
19296 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19301void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19302 std::map<std::string, std::pair<double, std::map<int, double>>> val0=a->
cast<std::map<std::string, std::pair<double, std::map<int, double>>>>();
19306 size_t item_size2valfirst=
sizeof(double);
19308 size_t item_size3valsecondkey=
sizeof(int);
19309 size_t item_size3valsecondval=
sizeof(double);
19310 size_t total_item_size2valsecond=item_size3valsecondkey+item_size3valsecondval;
19311 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
19312 size_t total_item_size0=item_size1key+item_size1val;
19319 hvl_t buf0 = VLValToBuf(val0);
19326void Hdf5Back::WriteToBuf<MAP_INT_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19327 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19328 size_t item_size0=((
sizeof(int)+((shape[3]+
sizeof(
double))*shape[2]))*shape[0]);
19329 size_t length0=shape[0];
19330 size_t item_size1key=
sizeof(int);
19331 size_t item_size1val=((shape[3]+
sizeof(double))*shape[2]);
19332 size_t length1val=shape[2];
19333 size_t item_size2valkey=shape[3];
19334 size_t valuelen2valkey;
19335 size_t item_size2valval=
sizeof(double);
19336 size_t total_item_size1val=item_size2valkey+item_size2valval;
19337 size_t total_item_size0=item_size1key+item_size1val;
19338 if(total_item_size0*val0.size()>column){
19339 std::map<int, std::map<std::string, double>>::iterator eraseit=val0.begin();
19340 std::advance(eraseit, column/total_item_size0);
19341 val0.erase(eraseit,val0.end());
19344 unsigned int count0=0;
19345 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19346 for(;it0!=val0.end();++it0){
19347 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
19348 unsigned int count1val=0;
19349 std::map<std::string, double>::iterator it1val=it0->second.begin();
19350 for(;it1val!=it0->second.end();++it1val){
19351 valuelen2valkey=std::min(it1val->first.size(), item_size2valkey);
19352 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it1val->first.c_str(), valuelen2valkey);
19353 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valkey, 0, item_size2valkey-valuelen2valkey);
19354 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
19358 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
19362 if(total_item_size0*length0<column){
19363 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19368void Hdf5Back::WriteToBuf<MAP_INT_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19369 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19370 size_t item_size0=((
sizeof(int)+((
CYCLUS_SHA1_SIZE+
sizeof(
double))*shape[2]))*shape[0]);
19371 size_t length0=shape[0];
19372 size_t item_size1key=
sizeof(int);
19374 size_t length1val=shape[2];
19376 size_t item_size2valval=
sizeof(double);
19377 size_t total_item_size1val=item_size2valkey+item_size2valval;
19378 size_t total_item_size0=item_size1key+item_size1val;
19379 if(total_item_size0*val0.size()>column){
19380 std::map<int, std::map<std::string, double>>::iterator eraseit=val0.begin();
19381 std::advance(eraseit, column/total_item_size0);
19382 val0.erase(eraseit,val0.end());
19385 unsigned int count0=0;
19386 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19387 for(;it0!=val0.end();++it0){
19388 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
19389 unsigned int count1val=0;
19390 std::map<std::string, double>::iterator it1val=it0->second.begin();
19391 for(;it1val!=it0->second.end();++it1val){
19393 hasher_.
Update(it1val->first);
19395 hid_t keysds2valkey = VLDataset(
VL_STRING,
true);
19396 hid_t valsds2valkey = VLDataset(
VL_STRING,
false);
19397 if (vlkeys_[
VL_STRING].count(key2valkey) != 1) {
19398 AppendVLKey(keysds2valkey,
VL_STRING, key2valkey);
19399 InsertVLVal(valsds2valkey,
VL_STRING, key2valkey, it1val->first);
19401 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valkey.data(),
CYCLUS_SHA1_SIZE);
19402 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
19406 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
19410 if(total_item_size0*length0<column){
19411 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19416void Hdf5Back::WriteToBuf<VL_MAP_INT_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19417 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19419 size_t item_size1key=
sizeof(int);
19420 size_t item_size1val=((shape[3]+
sizeof(double))*shape[2]);
19421 size_t length1val=shape[2];
19422 size_t item_size2valkey=shape[3];
19423 size_t valuelen2valkey;
19424 size_t item_size2valval=
sizeof(double);
19425 size_t total_item_size1val=item_size2valkey+item_size2valval;
19426 size_t total_item_size0=item_size1key+item_size1val;
19427 unsigned int count0=0;
19428 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19429 std::map<int, std::map<std::string, double>> fixed_val0;
19430 unsigned int pad_count0=0;
19431 for(;it0!=val0.end();++it0){
19432 std::map<std::string, double> child1val;
19433 unsigned int pad_count1val=0;
19434 std::map<std::string, double>::iterator it1val=it0->second.begin();
19435 for(;it1val!=it0->second.end();++it1val){
19436 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
19437 child1val[child2valkey] = it1val->second;
19441 fixed_val0[it0->first] = child1val;
19446 hasher_.
Update(fixed_val0);
19451 hvl_t buf0 = VLValToBuf(fixed_val0);
19458void Hdf5Back::WriteToBuf<VL_MAP_INT_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19459 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19461 size_t item_size1key=
sizeof(int);
19463 size_t length1val=shape[2];
19465 size_t item_size2valval=
sizeof(double);
19466 size_t total_item_size1val=item_size2valkey+item_size2valval;
19467 size_t total_item_size0=item_size1key+item_size1val;
19468 unsigned int count0=0;
19469 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19470 std::map<int, std::map<std::string, double>> fixed_val0;
19471 unsigned int pad_count0=0;
19472 for(;it0!=val0.end();++it0){
19473 std::map<std::string, double> child1val;
19474 unsigned int pad_count1val=0;
19475 std::map<std::string, double>::iterator it1val=it0->second.begin();
19476 for(;it1val!=it0->second.end();++it1val){
19477 child1val[it1val->first] = it1val->second;
19481 fixed_val0[it0->first] = child1val;
19486 hasher_.
Update(fixed_val0);
19491 hvl_t buf0 = VLValToBuf(fixed_val0);
19498void Hdf5Back::WriteToBuf<MAP_INT_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19499 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19501 size_t length0=shape[0];
19502 size_t item_size1key=
sizeof(int);
19504 size_t item_size2valkey=shape[3];
19505 size_t valuelen2valkey;
19506 size_t item_size2valval=
sizeof(double);
19507 size_t total_item_size1val=item_size2valkey+item_size2valval;
19508 size_t total_item_size0=item_size1key+item_size1val;
19509 if(total_item_size0*val0.size()>column){
19510 std::map<int, std::map<std::string, double>>::iterator eraseit=val0.begin();
19511 std::advance(eraseit, column/total_item_size0);
19512 val0.erase(eraseit,val0.end());
19515 unsigned int count0=0;
19516 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19517 for(;it0!=val0.end();++it0){
19518 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
19519 unsigned int count1val=0;
19520 std::map<std::string, double>::iterator it1val=it0->second.begin();
19521 std::map<std::string, double> fixed_val1val;
19522 unsigned int pad_count1val=0;
19523 for(;it1val!=it0->second.end();++it1val){
19524 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
19525 fixed_val1val[child2valkey] = it1val->second;
19530 hasher_.
Update(fixed_val1val);
19535 hvl_t buf1val = VLValToBuf(fixed_val1val);
19543 if(total_item_size0*length0<column){
19544 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19549void Hdf5Back::WriteToBuf<MAP_INT_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19550 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19552 size_t length0=shape[0];
19553 size_t item_size1key=
sizeof(int);
19556 size_t item_size2valval=
sizeof(double);
19557 size_t total_item_size1val=item_size2valkey+item_size2valval;
19558 size_t total_item_size0=item_size1key+item_size1val;
19559 if(total_item_size0*val0.size()>column){
19560 std::map<int, std::map<std::string, double>>::iterator eraseit=val0.begin();
19561 std::advance(eraseit, column/total_item_size0);
19562 val0.erase(eraseit,val0.end());
19565 unsigned int count0=0;
19566 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19567 for(;it0!=val0.end();++it0){
19568 memcpy(buf+(count0*total_item_size0)+0, &(it0->first), item_size1key);
19570 hasher_.
Update(it0->second);
19575 hvl_t buf1val = VLValToBuf(it0->second);
19583 if(total_item_size0*length0<column){
19584 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19589void Hdf5Back::WriteToBuf<VL_MAP_INT_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19590 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19592 size_t item_size1key=
sizeof(int);
19594 size_t item_size2valkey=shape[3];
19595 size_t valuelen2valkey;
19596 size_t item_size2valval=
sizeof(double);
19597 size_t total_item_size1val=item_size2valkey+item_size2valval;
19598 size_t total_item_size0=item_size1key+item_size1val;
19599 unsigned int count0=0;
19600 std::map<int, std::map<std::string, double>>::iterator it0=val0.begin();
19601 std::map<int, std::map<std::string, double>> fixed_val0;
19602 unsigned int pad_count0=0;
19603 for(;it0!=val0.end();++it0){
19604 std::map<std::string, double> child1val;
19605 unsigned int pad_count1val=0;
19606 std::map<std::string, double>::iterator it1val=it0->second.begin();
19607 for(;it1val!=it0->second.end();++it1val){
19608 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
19609 child1val[child2valkey] = it1val->second;
19613 fixed_val0[it0->first] = child1val;
19618 hasher_.
Update(fixed_val0);
19623 hvl_t buf0 = VLValToBuf(fixed_val0);
19630void Hdf5Back::WriteToBuf<VL_MAP_INT_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19631 std::map<int, std::map<std::string, double>> val0=a->
cast<std::map<int, std::map<std::string, double>>>();
19633 size_t item_size1key=
sizeof(int);
19636 size_t item_size2valval=
sizeof(double);
19637 size_t total_item_size1val=item_size2valkey+item_size2valval;
19638 size_t total_item_size0=item_size1key+item_size1val;
19645 hvl_t buf0 = VLValToBuf(val0);
19652void Hdf5Back::WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19653 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
19654 size_t item_size0=((shape[1]+((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]))*shape[0]);
19655 size_t length0=shape[0];
19656 size_t item_size1key=shape[1];
19657 size_t valuelen1key;
19658 size_t item_size1val=((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]);
19659 size_t length1val=shape[2];
19660 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
19661 size_t item_size3valelemfirst=
sizeof(int);
19662 size_t item_size3valelemsecond=((shape[6]+shape[7]));
19663 size_t item_size4valelemsecondfirst=shape[6];
19664 size_t valuelen4valelemsecondfirst;
19665 size_t item_size4valelemsecondsecond=shape[7];
19666 size_t valuelen4valelemsecondsecond;
19667 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
19668 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
19669 size_t total_item_size1val=item_size2valelem;
19670 size_t total_item_size0=item_size1key+item_size1val;
19671 if(total_item_size0*val0.size()>column){
19672 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
19673 std::advance(eraseit, column/total_item_size0);
19674 val0.erase(eraseit,val0.end());
19677 unsigned int count0=0;
19678 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
19679 for(;it0!=val0.end();++it0){
19680 valuelen1key=std::min(it0->first.size(), item_size1key);
19681 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19682 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19683 unsigned int count1val=0;
19684 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
19685 for(;it1val!=it0->second.end();++it1val){
19686 unsigned int count2valelem=0;
19687 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
19688 unsigned int count3valelemsecond=0;
19689 valuelen4valelemsecondfirst=std::min(it1val->second.first.size(), item_size4valelemsecondfirst);
19690 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, it1val->second.first.c_str(), valuelen4valelemsecondfirst);
19691 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+valuelen4valelemsecondfirst, 0, item_size4valelemsecondfirst-valuelen4valelemsecondfirst);
19692 valuelen4valelemsecondsecond=std::min(it1val->second.second.size(), item_size4valelemsecondsecond);
19693 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, it1val->second.second.c_str(), valuelen4valelemsecondsecond);
19694 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst+valuelen4valelemsecondsecond, 0, item_size4valelemsecondsecond-valuelen4valelemsecondsecond);
19698 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
19702 if(total_item_size0*length0<column){
19703 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19708void Hdf5Back::WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19709 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
19710 size_t item_size0=((shape[1]+((((
sizeof(int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]))*shape[0]);
19711 size_t length0=shape[0];
19712 size_t item_size1key=shape[1];
19713 size_t valuelen1key;
19714 size_t item_size1val=((((
sizeof(int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]);
19715 size_t length1val=shape[2];
19717 size_t item_size3valelemfirst=
sizeof(int);
19719 size_t item_size4valelemsecondfirst=shape[6];
19720 size_t valuelen4valelemsecondfirst;
19722 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
19723 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
19724 size_t total_item_size1val=item_size2valelem;
19725 size_t total_item_size0=item_size1key+item_size1val;
19726 if(total_item_size0*val0.size()>column){
19727 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
19728 std::advance(eraseit, column/total_item_size0);
19729 val0.erase(eraseit,val0.end());
19732 unsigned int count0=0;
19733 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
19734 for(;it0!=val0.end();++it0){
19735 valuelen1key=std::min(it0->first.size(), item_size1key);
19736 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19737 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19738 unsigned int count1val=0;
19739 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
19740 for(;it1val!=it0->second.end();++it1val){
19741 unsigned int count2valelem=0;
19742 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
19743 unsigned int count3valelemsecond=0;
19744 valuelen4valelemsecondfirst=std::min(it1val->second.first.size(), item_size4valelemsecondfirst);
19745 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, it1val->second.first.c_str(), valuelen4valelemsecondfirst);
19746 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+valuelen4valelemsecondfirst, 0, item_size4valelemsecondfirst-valuelen4valelemsecondfirst);
19748 hasher_.
Update(it1val->second.second);
19750 hid_t keysds4valelemsecondsecond = VLDataset(
VL_STRING,
true);
19751 hid_t valsds4valelemsecondsecond = VLDataset(
VL_STRING,
false);
19752 if (vlkeys_[
VL_STRING].count(key4valelemsecondsecond) != 1) {
19753 AppendVLKey(keysds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond);
19754 InsertVLVal(valsds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond, it1val->second.second);
19756 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, key4valelemsecondsecond.data(),
CYCLUS_SHA1_SIZE);
19760 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
19764 if(total_item_size0*length0<column){
19765 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19770void Hdf5Back::WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19771 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
19772 size_t item_size0=((shape[1]+((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]))*shape[0]);
19773 size_t length0=shape[0];
19774 size_t item_size1key=shape[1];
19775 size_t valuelen1key;
19776 size_t item_size1val=((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]);
19777 size_t length1val=shape[2];
19779 size_t item_size3valelemfirst=
sizeof(int);
19782 size_t item_size4valelemsecondsecond=shape[7];
19783 size_t valuelen4valelemsecondsecond;
19784 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
19785 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
19786 size_t total_item_size1val=item_size2valelem;
19787 size_t total_item_size0=item_size1key+item_size1val;
19788 if(total_item_size0*val0.size()>column){
19789 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
19790 std::advance(eraseit, column/total_item_size0);
19791 val0.erase(eraseit,val0.end());
19794 unsigned int count0=0;
19795 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
19796 for(;it0!=val0.end();++it0){
19797 valuelen1key=std::min(it0->first.size(), item_size1key);
19798 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19799 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19800 unsigned int count1val=0;
19801 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
19802 for(;it1val!=it0->second.end();++it1val){
19803 unsigned int count2valelem=0;
19804 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
19805 unsigned int count3valelemsecond=0;
19807 hasher_.
Update(it1val->second.first);
19809 hid_t keysds4valelemsecondfirst = VLDataset(
VL_STRING,
true);
19810 hid_t valsds4valelemsecondfirst = VLDataset(
VL_STRING,
false);
19811 if (vlkeys_[
VL_STRING].count(key4valelemsecondfirst) != 1) {
19812 AppendVLKey(keysds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst);
19813 InsertVLVal(valsds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst, it1val->second.first);
19815 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, key4valelemsecondfirst.data(),
CYCLUS_SHA1_SIZE);
19816 valuelen4valelemsecondsecond=std::min(it1val->second.second.size(), item_size4valelemsecondsecond);
19817 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, it1val->second.second.c_str(), valuelen4valelemsecondsecond);
19818 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst+valuelen4valelemsecondsecond, 0, item_size4valelemsecondsecond-valuelen4valelemsecondsecond);
19822 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
19826 if(total_item_size0*length0<column){
19827 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19832void Hdf5Back::WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19833 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
19835 size_t length0=shape[0];
19836 size_t item_size1key=shape[1];
19837 size_t valuelen1key;
19839 size_t length1val=shape[2];
19841 size_t item_size3valelemfirst=
sizeof(int);
19845 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
19846 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
19847 size_t total_item_size1val=item_size2valelem;
19848 size_t total_item_size0=item_size1key+item_size1val;
19849 if(total_item_size0*val0.size()>column){
19850 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
19851 std::advance(eraseit, column/total_item_size0);
19852 val0.erase(eraseit,val0.end());
19855 unsigned int count0=0;
19856 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
19857 for(;it0!=val0.end();++it0){
19858 valuelen1key=std::min(it0->first.size(), item_size1key);
19859 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19860 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19861 unsigned int count1val=0;
19862 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
19863 for(;it1val!=it0->second.end();++it1val){
19864 unsigned int count2valelem=0;
19865 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
19866 unsigned int count3valelemsecond=0;
19868 hasher_.
Update(it1val->second.first);
19870 hid_t keysds4valelemsecondfirst = VLDataset(
VL_STRING,
true);
19871 hid_t valsds4valelemsecondfirst = VLDataset(
VL_STRING,
false);
19872 if (vlkeys_[
VL_STRING].count(key4valelemsecondfirst) != 1) {
19873 AppendVLKey(keysds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst);
19874 InsertVLVal(valsds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst, it1val->second.first);
19876 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, key4valelemsecondfirst.data(),
CYCLUS_SHA1_SIZE);
19878 hasher_.
Update(it1val->second.second);
19880 hid_t keysds4valelemsecondsecond = VLDataset(
VL_STRING,
true);
19881 hid_t valsds4valelemsecondsecond = VLDataset(
VL_STRING,
false);
19882 if (vlkeys_[
VL_STRING].count(key4valelemsecondsecond) != 1) {
19883 AppendVLKey(keysds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond);
19884 InsertVLVal(valsds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond, it1val->second.second);
19886 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, key4valelemsecondsecond.data(),
CYCLUS_SHA1_SIZE);
19890 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
19894 if(total_item_size0*length0<column){
19895 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19900void Hdf5Back::WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19901 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
19903 size_t length0=shape[0];
19904 size_t item_size1key=shape[1];
19905 size_t valuelen1key;
19907 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
19908 size_t item_size3valelemfirst=
sizeof(int);
19909 size_t item_size3valelemsecond=((shape[6]+shape[7]));
19910 size_t item_size4valelemsecondfirst=shape[6];
19911 size_t valuelen4valelemsecondfirst;
19912 size_t item_size4valelemsecondsecond=shape[7];
19913 size_t valuelen4valelemsecondsecond;
19914 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
19915 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
19916 size_t total_item_size1val=item_size2valelem;
19917 size_t total_item_size0=item_size1key+item_size1val;
19918 if(total_item_size0*val0.size()>column){
19919 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
19920 std::advance(eraseit, column/total_item_size0);
19921 val0.erase(eraseit,val0.end());
19924 unsigned int count0=0;
19925 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
19926 for(;it0!=val0.end();++it0){
19927 valuelen1key=std::min(it0->first.size(), item_size1key);
19928 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19929 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19930 unsigned int count1val=0;
19931 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
19932 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val1val;
19933 unsigned int pad_count1val=0;
19934 for(;it1val!=it0->second.end();++it1val){
19935 std::pair<int, std::pair<std::string, std::string>> child2valelem;
19936 unsigned int pad_count2valelem=0;
19937 std::pair<std::string, std::string> child3valelemsecond;
19938 unsigned int pad_count3valelemsecond=0;
19939 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
19940 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
19941 child3valelemsecond = std::make_pair(child4valelemsecondfirst,child4valelemsecondsecond);
19942 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
19943 fixed_val1val.push_back(child2valelem);
19948 hasher_.
Update(fixed_val1val);
19953 hvl_t buf1val = VLValToBuf(fixed_val1val);
19961 if(total_item_size0*length0<column){
19962 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
19967void Hdf5Back::WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
19968 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
19970 size_t length0=shape[0];
19971 size_t item_size1key=shape[1];
19972 size_t valuelen1key;
19975 size_t item_size3valelemfirst=
sizeof(int);
19977 size_t item_size4valelemsecondfirst=shape[6];
19978 size_t valuelen4valelemsecondfirst;
19980 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
19981 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
19982 size_t total_item_size1val=item_size2valelem;
19983 size_t total_item_size0=item_size1key+item_size1val;
19984 if(total_item_size0*val0.size()>column){
19985 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
19986 std::advance(eraseit, column/total_item_size0);
19987 val0.erase(eraseit,val0.end());
19990 unsigned int count0=0;
19991 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
19992 for(;it0!=val0.end();++it0){
19993 valuelen1key=std::min(it0->first.size(), item_size1key);
19994 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
19995 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
19996 unsigned int count1val=0;
19997 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
19998 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val1val;
19999 unsigned int pad_count1val=0;
20000 for(;it1val!=it0->second.end();++it1val){
20001 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20002 unsigned int pad_count2valelem=0;
20003 std::pair<std::string, std::string> child3valelemsecond;
20004 unsigned int pad_count3valelemsecond=0;
20005 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
20006 child3valelemsecond = std::make_pair(child4valelemsecondfirst,(*it1val).second.second);
20007 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20008 fixed_val1val.push_back(child2valelem);
20013 hasher_.
Update(fixed_val1val);
20018 hvl_t buf1val = VLValToBuf(fixed_val1val);
20026 if(total_item_size0*length0<column){
20027 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20032void Hdf5Back::WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20033 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20035 size_t length0=shape[0];
20036 size_t item_size1key=shape[1];
20037 size_t valuelen1key;
20040 size_t item_size3valelemfirst=
sizeof(int);
20043 size_t item_size4valelemsecondsecond=shape[7];
20044 size_t valuelen4valelemsecondsecond;
20045 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20046 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20047 size_t total_item_size1val=item_size2valelem;
20048 size_t total_item_size0=item_size1key+item_size1val;
20049 if(total_item_size0*val0.size()>column){
20050 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20051 std::advance(eraseit, column/total_item_size0);
20052 val0.erase(eraseit,val0.end());
20055 unsigned int count0=0;
20056 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20057 for(;it0!=val0.end();++it0){
20058 valuelen1key=std::min(it0->first.size(), item_size1key);
20059 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
20060 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
20061 unsigned int count1val=0;
20062 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20063 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val1val;
20064 unsigned int pad_count1val=0;
20065 for(;it1val!=it0->second.end();++it1val){
20066 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20067 unsigned int pad_count2valelem=0;
20068 std::pair<std::string, std::string> child3valelemsecond;
20069 unsigned int pad_count3valelemsecond=0;
20070 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
20071 child3valelemsecond = std::make_pair((*it1val).second.first,child4valelemsecondsecond);
20072 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20073 fixed_val1val.push_back(child2valelem);
20078 hasher_.
Update(fixed_val1val);
20083 hvl_t buf1val = VLValToBuf(fixed_val1val);
20091 if(total_item_size0*length0<column){
20092 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20097void Hdf5Back::WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20098 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20100 size_t length0=shape[0];
20101 size_t item_size1key=shape[1];
20102 size_t valuelen1key;
20105 size_t item_size3valelemfirst=
sizeof(int);
20109 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20110 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20111 size_t total_item_size1val=item_size2valelem;
20112 size_t total_item_size0=item_size1key+item_size1val;
20113 if(total_item_size0*val0.size()>column){
20114 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20115 std::advance(eraseit, column/total_item_size0);
20116 val0.erase(eraseit,val0.end());
20119 unsigned int count0=0;
20120 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20121 for(;it0!=val0.end();++it0){
20122 valuelen1key=std::min(it0->first.size(), item_size1key);
20123 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
20124 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
20126 hasher_.
Update(it0->second);
20131 hvl_t buf1val = VLValToBuf(it0->second);
20139 if(total_item_size0*length0<column){
20140 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20145void Hdf5Back::WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20146 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20147 size_t item_size0=((
CYCLUS_SHA1_SIZE+((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]))*shape[0]);
20148 size_t length0=shape[0];
20150 size_t item_size1val=((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]);
20151 size_t length1val=shape[2];
20152 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
20153 size_t item_size3valelemfirst=
sizeof(int);
20154 size_t item_size3valelemsecond=((shape[6]+shape[7]));
20155 size_t item_size4valelemsecondfirst=shape[6];
20156 size_t valuelen4valelemsecondfirst;
20157 size_t item_size4valelemsecondsecond=shape[7];
20158 size_t valuelen4valelemsecondsecond;
20159 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20160 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20161 size_t total_item_size1val=item_size2valelem;
20162 size_t total_item_size0=item_size1key+item_size1val;
20163 if(total_item_size0*val0.size()>column){
20164 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20165 std::advance(eraseit, column/total_item_size0);
20166 val0.erase(eraseit,val0.end());
20169 unsigned int count0=0;
20170 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20171 for(;it0!=val0.end();++it0){
20173 hasher_.
Update(it0->first);
20175 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20176 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20177 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20178 AppendVLKey(keysds1key,
VL_STRING, key1key);
20179 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20182 unsigned int count1val=0;
20183 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20184 for(;it1val!=it0->second.end();++it1val){
20185 unsigned int count2valelem=0;
20186 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
20187 unsigned int count3valelemsecond=0;
20188 valuelen4valelemsecondfirst=std::min(it1val->second.first.size(), item_size4valelemsecondfirst);
20189 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, it1val->second.first.c_str(), valuelen4valelemsecondfirst);
20190 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+valuelen4valelemsecondfirst, 0, item_size4valelemsecondfirst-valuelen4valelemsecondfirst);
20191 valuelen4valelemsecondsecond=std::min(it1val->second.second.size(), item_size4valelemsecondsecond);
20192 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, it1val->second.second.c_str(), valuelen4valelemsecondsecond);
20193 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst+valuelen4valelemsecondsecond, 0, item_size4valelemsecondsecond-valuelen4valelemsecondsecond);
20197 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
20201 if(total_item_size0*length0<column){
20202 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20207void Hdf5Back::WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20208 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20210 size_t length0=shape[0];
20212 size_t item_size1val=((((
sizeof(int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]);
20213 size_t length1val=shape[2];
20215 size_t item_size3valelemfirst=
sizeof(int);
20217 size_t item_size4valelemsecondfirst=shape[6];
20218 size_t valuelen4valelemsecondfirst;
20220 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20221 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20222 size_t total_item_size1val=item_size2valelem;
20223 size_t total_item_size0=item_size1key+item_size1val;
20224 if(total_item_size0*val0.size()>column){
20225 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20226 std::advance(eraseit, column/total_item_size0);
20227 val0.erase(eraseit,val0.end());
20230 unsigned int count0=0;
20231 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20232 for(;it0!=val0.end();++it0){
20234 hasher_.
Update(it0->first);
20236 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20237 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20238 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20239 AppendVLKey(keysds1key,
VL_STRING, key1key);
20240 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20243 unsigned int count1val=0;
20244 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20245 for(;it1val!=it0->second.end();++it1val){
20246 unsigned int count2valelem=0;
20247 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
20248 unsigned int count3valelemsecond=0;
20249 valuelen4valelemsecondfirst=std::min(it1val->second.first.size(), item_size4valelemsecondfirst);
20250 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, it1val->second.first.c_str(), valuelen4valelemsecondfirst);
20251 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+valuelen4valelemsecondfirst, 0, item_size4valelemsecondfirst-valuelen4valelemsecondfirst);
20253 hasher_.
Update(it1val->second.second);
20255 hid_t keysds4valelemsecondsecond = VLDataset(
VL_STRING,
true);
20256 hid_t valsds4valelemsecondsecond = VLDataset(
VL_STRING,
false);
20257 if (vlkeys_[
VL_STRING].count(key4valelemsecondsecond) != 1) {
20258 AppendVLKey(keysds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond);
20259 InsertVLVal(valsds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond, it1val->second.second);
20261 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, key4valelemsecondsecond.data(),
CYCLUS_SHA1_SIZE);
20265 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
20269 if(total_item_size0*length0<column){
20270 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20275void Hdf5Back::WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20276 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20278 size_t length0=shape[0];
20280 size_t item_size1val=((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]);
20281 size_t length1val=shape[2];
20283 size_t item_size3valelemfirst=
sizeof(int);
20286 size_t item_size4valelemsecondsecond=shape[7];
20287 size_t valuelen4valelemsecondsecond;
20288 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20289 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20290 size_t total_item_size1val=item_size2valelem;
20291 size_t total_item_size0=item_size1key+item_size1val;
20292 if(total_item_size0*val0.size()>column){
20293 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20294 std::advance(eraseit, column/total_item_size0);
20295 val0.erase(eraseit,val0.end());
20298 unsigned int count0=0;
20299 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20300 for(;it0!=val0.end();++it0){
20302 hasher_.
Update(it0->first);
20304 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20305 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20306 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20307 AppendVLKey(keysds1key,
VL_STRING, key1key);
20308 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20311 unsigned int count1val=0;
20312 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20313 for(;it1val!=it0->second.end();++it1val){
20314 unsigned int count2valelem=0;
20315 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
20316 unsigned int count3valelemsecond=0;
20318 hasher_.
Update(it1val->second.first);
20320 hid_t keysds4valelemsecondfirst = VLDataset(
VL_STRING,
true);
20321 hid_t valsds4valelemsecondfirst = VLDataset(
VL_STRING,
false);
20322 if (vlkeys_[
VL_STRING].count(key4valelemsecondfirst) != 1) {
20323 AppendVLKey(keysds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst);
20324 InsertVLVal(valsds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst, it1val->second.first);
20326 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, key4valelemsecondfirst.data(),
CYCLUS_SHA1_SIZE);
20327 valuelen4valelemsecondsecond=std::min(it1val->second.second.size(), item_size4valelemsecondsecond);
20328 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, it1val->second.second.c_str(), valuelen4valelemsecondsecond);
20329 memset(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst+valuelen4valelemsecondsecond, 0, item_size4valelemsecondsecond-valuelen4valelemsecondsecond);
20333 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
20337 if(total_item_size0*length0<column){
20338 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20343void Hdf5Back::WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20344 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20346 size_t length0=shape[0];
20349 size_t length1val=shape[2];
20351 size_t item_size3valelemfirst=
sizeof(int);
20355 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20356 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20357 size_t total_item_size1val=item_size2valelem;
20358 size_t total_item_size0=item_size1key+item_size1val;
20359 if(total_item_size0*val0.size()>column){
20360 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20361 std::advance(eraseit, column/total_item_size0);
20362 val0.erase(eraseit,val0.end());
20365 unsigned int count0=0;
20366 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20367 for(;it0!=val0.end();++it0){
20369 hasher_.
Update(it0->first);
20371 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20372 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20373 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20374 AppendVLKey(keysds1key,
VL_STRING, key1key);
20375 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20378 unsigned int count1val=0;
20379 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20380 for(;it1val!=it0->second.end();++it1val){
20381 unsigned int count2valelem=0;
20382 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0, &(it1val->first), item_size3valelemfirst);
20383 unsigned int count3valelemsecond=0;
20385 hasher_.
Update(it1val->second.first);
20387 hid_t keysds4valelemsecondfirst = VLDataset(
VL_STRING,
true);
20388 hid_t valsds4valelemsecondfirst = VLDataset(
VL_STRING,
false);
20389 if (vlkeys_[
VL_STRING].count(key4valelemsecondfirst) != 1) {
20390 AppendVLKey(keysds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst);
20391 InsertVLVal(valsds4valelemsecondfirst,
VL_STRING, key4valelemsecondfirst, it1val->second.first);
20393 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0, key4valelemsecondfirst.data(),
CYCLUS_SHA1_SIZE);
20395 hasher_.
Update(it1val->second.second);
20397 hid_t keysds4valelemsecondsecond = VLDataset(
VL_STRING,
true);
20398 hid_t valsds4valelemsecondsecond = VLDataset(
VL_STRING,
false);
20399 if (vlkeys_[
VL_STRING].count(key4valelemsecondsecond) != 1) {
20400 AppendVLKey(keysds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond);
20401 InsertVLVal(valsds4valelemsecondsecond,
VL_STRING, key4valelemsecondsecond, it1val->second.second);
20403 memcpy(buf+(count0*total_item_size0)+0+item_size1key+item_size2valelem*count1val+(count2valelem*total_item_size2valelem)+0+item_size3valelemfirst+(count3valelemsecond*total_item_size3valelemsecond)+0+item_size4valelemsecondfirst, key4valelemsecondsecond.data(),
CYCLUS_SHA1_SIZE);
20407 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
20411 if(total_item_size0*length0<column){
20412 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20417void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20418 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20420 size_t length0=shape[0];
20423 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
20424 size_t item_size3valelemfirst=
sizeof(int);
20425 size_t item_size3valelemsecond=((shape[6]+shape[7]));
20426 size_t item_size4valelemsecondfirst=shape[6];
20427 size_t valuelen4valelemsecondfirst;
20428 size_t item_size4valelemsecondsecond=shape[7];
20429 size_t valuelen4valelemsecondsecond;
20430 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20431 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20432 size_t total_item_size1val=item_size2valelem;
20433 size_t total_item_size0=item_size1key+item_size1val;
20434 if(total_item_size0*val0.size()>column){
20435 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20436 std::advance(eraseit, column/total_item_size0);
20437 val0.erase(eraseit,val0.end());
20440 unsigned int count0=0;
20441 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20442 for(;it0!=val0.end();++it0){
20444 hasher_.
Update(it0->first);
20446 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20447 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20448 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20449 AppendVLKey(keysds1key,
VL_STRING, key1key);
20450 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20453 unsigned int count1val=0;
20454 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20455 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val1val;
20456 unsigned int pad_count1val=0;
20457 for(;it1val!=it0->second.end();++it1val){
20458 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20459 unsigned int pad_count2valelem=0;
20460 std::pair<std::string, std::string> child3valelemsecond;
20461 unsigned int pad_count3valelemsecond=0;
20462 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
20463 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
20464 child3valelemsecond = std::make_pair(child4valelemsecondfirst,child4valelemsecondsecond);
20465 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20466 fixed_val1val.push_back(child2valelem);
20471 hasher_.
Update(fixed_val1val);
20476 hvl_t buf1val = VLValToBuf(fixed_val1val);
20484 if(total_item_size0*length0<column){
20485 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20490void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20491 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20493 size_t length0=shape[0];
20497 size_t item_size3valelemfirst=
sizeof(int);
20499 size_t item_size4valelemsecondfirst=shape[6];
20500 size_t valuelen4valelemsecondfirst;
20502 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20503 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20504 size_t total_item_size1val=item_size2valelem;
20505 size_t total_item_size0=item_size1key+item_size1val;
20506 if(total_item_size0*val0.size()>column){
20507 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20508 std::advance(eraseit, column/total_item_size0);
20509 val0.erase(eraseit,val0.end());
20512 unsigned int count0=0;
20513 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20514 for(;it0!=val0.end();++it0){
20516 hasher_.
Update(it0->first);
20518 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20519 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20520 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20521 AppendVLKey(keysds1key,
VL_STRING, key1key);
20522 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20525 unsigned int count1val=0;
20526 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20527 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val1val;
20528 unsigned int pad_count1val=0;
20529 for(;it1val!=it0->second.end();++it1val){
20530 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20531 unsigned int pad_count2valelem=0;
20532 std::pair<std::string, std::string> child3valelemsecond;
20533 unsigned int pad_count3valelemsecond=0;
20534 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
20535 child3valelemsecond = std::make_pair(child4valelemsecondfirst,(*it1val).second.second);
20536 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20537 fixed_val1val.push_back(child2valelem);
20542 hasher_.
Update(fixed_val1val);
20547 hvl_t buf1val = VLValToBuf(fixed_val1val);
20555 if(total_item_size0*length0<column){
20556 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20561void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20562 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20564 size_t length0=shape[0];
20568 size_t item_size3valelemfirst=
sizeof(int);
20571 size_t item_size4valelemsecondsecond=shape[7];
20572 size_t valuelen4valelemsecondsecond;
20573 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20574 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20575 size_t total_item_size1val=item_size2valelem;
20576 size_t total_item_size0=item_size1key+item_size1val;
20577 if(total_item_size0*val0.size()>column){
20578 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20579 std::advance(eraseit, column/total_item_size0);
20580 val0.erase(eraseit,val0.end());
20583 unsigned int count0=0;
20584 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20585 for(;it0!=val0.end();++it0){
20587 hasher_.
Update(it0->first);
20589 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20590 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20591 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20592 AppendVLKey(keysds1key,
VL_STRING, key1key);
20593 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20596 unsigned int count1val=0;
20597 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20598 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val1val;
20599 unsigned int pad_count1val=0;
20600 for(;it1val!=it0->second.end();++it1val){
20601 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20602 unsigned int pad_count2valelem=0;
20603 std::pair<std::string, std::string> child3valelemsecond;
20604 unsigned int pad_count3valelemsecond=0;
20605 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
20606 child3valelemsecond = std::make_pair((*it1val).second.first,child4valelemsecondsecond);
20607 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20608 fixed_val1val.push_back(child2valelem);
20613 hasher_.
Update(fixed_val1val);
20618 hvl_t buf1val = VLValToBuf(fixed_val1val);
20626 if(total_item_size0*length0<column){
20627 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20632void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20633 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20635 size_t length0=shape[0];
20639 size_t item_size3valelemfirst=
sizeof(int);
20643 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20644 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20645 size_t total_item_size1val=item_size2valelem;
20646 size_t total_item_size0=item_size1key+item_size1val;
20647 if(total_item_size0*val0.size()>column){
20648 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator eraseit=val0.begin();
20649 std::advance(eraseit, column/total_item_size0);
20650 val0.erase(eraseit,val0.end());
20653 unsigned int count0=0;
20654 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20655 for(;it0!=val0.end();++it0){
20657 hasher_.
Update(it0->first);
20659 hid_t keysds1key = VLDataset(
VL_STRING,
true);
20660 hid_t valsds1key = VLDataset(
VL_STRING,
false);
20661 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
20662 AppendVLKey(keysds1key,
VL_STRING, key1key);
20663 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
20667 hasher_.
Update(it0->second);
20672 hvl_t buf1val = VLValToBuf(it0->second);
20680 if(total_item_size0*length0<column){
20681 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
20686void Hdf5Back::WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20687 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20689 size_t item_size1key=shape[1];
20690 size_t valuelen1key;
20691 size_t item_size1val=((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]);
20692 size_t length1val=shape[2];
20693 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
20694 size_t item_size3valelemfirst=
sizeof(int);
20695 size_t item_size3valelemsecond=((shape[6]+shape[7]));
20696 size_t item_size4valelemsecondfirst=shape[6];
20697 size_t valuelen4valelemsecondfirst;
20698 size_t item_size4valelemsecondsecond=shape[7];
20699 size_t valuelen4valelemsecondsecond;
20700 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20701 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20702 size_t total_item_size1val=item_size2valelem;
20703 size_t total_item_size0=item_size1key+item_size1val;
20704 unsigned int count0=0;
20705 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20706 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
20707 unsigned int pad_count0=0;
20708 for(;it0!=val0.end();++it0){
20709 std::string child1key=std::string(it0->first,0,item_size1key);
20710 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
20711 unsigned int pad_count1val=0;
20712 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20713 for(;it1val!=it0->second.end();++it1val){
20714 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20715 unsigned int pad_count2valelem=0;
20716 std::pair<std::string, std::string> child3valelemsecond;
20717 unsigned int pad_count3valelemsecond=0;
20718 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
20719 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
20720 child3valelemsecond = std::make_pair(child4valelemsecondfirst,child4valelemsecondsecond);
20721 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20722 child1val.push_back(child2valelem);
20726 child1val.resize(length1val);
20727 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
20728 fixed_val0[child1key] = child1val;
20733 hasher_.
Update(fixed_val0);
20738 hvl_t buf0 = VLValToBuf(fixed_val0);
20745void Hdf5Back::WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20746 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20748 size_t item_size1key=shape[1];
20749 size_t valuelen1key;
20750 size_t item_size1val=((((
sizeof(int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]);
20751 size_t length1val=shape[2];
20753 size_t item_size3valelemfirst=
sizeof(int);
20755 size_t item_size4valelemsecondfirst=shape[6];
20756 size_t valuelen4valelemsecondfirst;
20758 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20759 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20760 size_t total_item_size1val=item_size2valelem;
20761 size_t total_item_size0=item_size1key+item_size1val;
20762 unsigned int count0=0;
20763 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20764 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
20765 unsigned int pad_count0=0;
20766 for(;it0!=val0.end();++it0){
20767 std::string child1key=std::string(it0->first,0,item_size1key);
20768 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
20769 unsigned int pad_count1val=0;
20770 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20771 for(;it1val!=it0->second.end();++it1val){
20772 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20773 unsigned int pad_count2valelem=0;
20774 std::pair<std::string, std::string> child3valelemsecond;
20775 unsigned int pad_count3valelemsecond=0;
20776 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
20777 child3valelemsecond = std::make_pair(child4valelemsecondfirst,(*it1val).second.second);
20778 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20779 child1val.push_back(child2valelem);
20783 child1val.resize(length1val);
20784 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
20785 fixed_val0[child1key] = child1val;
20790 hasher_.
Update(fixed_val0);
20795 hvl_t buf0 = VLValToBuf(fixed_val0);
20802void Hdf5Back::WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20803 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20805 size_t item_size1key=shape[1];
20806 size_t valuelen1key;
20807 size_t item_size1val=((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]);
20808 size_t length1val=shape[2];
20810 size_t item_size3valelemfirst=
sizeof(int);
20813 size_t item_size4valelemsecondsecond=shape[7];
20814 size_t valuelen4valelemsecondsecond;
20815 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20816 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20817 size_t total_item_size1val=item_size2valelem;
20818 size_t total_item_size0=item_size1key+item_size1val;
20819 unsigned int count0=0;
20820 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20821 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
20822 unsigned int pad_count0=0;
20823 for(;it0!=val0.end();++it0){
20824 std::string child1key=std::string(it0->first,0,item_size1key);
20825 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
20826 unsigned int pad_count1val=0;
20827 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20828 for(;it1val!=it0->second.end();++it1val){
20829 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20830 unsigned int pad_count2valelem=0;
20831 std::pair<std::string, std::string> child3valelemsecond;
20832 unsigned int pad_count3valelemsecond=0;
20833 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
20834 child3valelemsecond = std::make_pair((*it1val).second.first,child4valelemsecondsecond);
20835 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20836 child1val.push_back(child2valelem);
20840 child1val.resize(length1val);
20841 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
20842 fixed_val0[child1key] = child1val;
20847 hasher_.
Update(fixed_val0);
20852 hvl_t buf0 = VLValToBuf(fixed_val0);
20859void Hdf5Back::WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20860 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20862 size_t item_size1key=shape[1];
20863 size_t valuelen1key;
20865 size_t length1val=shape[2];
20867 size_t item_size3valelemfirst=
sizeof(int);
20871 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20872 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20873 size_t total_item_size1val=item_size2valelem;
20874 size_t total_item_size0=item_size1key+item_size1val;
20875 unsigned int count0=0;
20876 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20877 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
20878 unsigned int pad_count0=0;
20879 for(;it0!=val0.end();++it0){
20880 std::string child1key=std::string(it0->first,0,item_size1key);
20881 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
20882 unsigned int pad_count1val=0;
20883 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20884 for(;it1val!=it0->second.end();++it1val){
20885 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20886 unsigned int pad_count2valelem=0;
20887 std::pair<std::string, std::string> child3valelemsecond;
20888 unsigned int pad_count3valelemsecond=0;
20889 child3valelemsecond = std::make_pair((*it1val).second.first,(*it1val).second.second);
20890 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20891 child1val.push_back(child2valelem);
20895 child1val.resize(length1val);
20896 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
20897 fixed_val0[child1key] = child1val;
20902 hasher_.
Update(fixed_val0);
20907 hvl_t buf0 = VLValToBuf(fixed_val0);
20914void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20915 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20917 size_t item_size1key=shape[1];
20918 size_t valuelen1key;
20920 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
20921 size_t item_size3valelemfirst=
sizeof(int);
20922 size_t item_size3valelemsecond=((shape[6]+shape[7]));
20923 size_t item_size4valelemsecondfirst=shape[6];
20924 size_t valuelen4valelemsecondfirst;
20925 size_t item_size4valelemsecondsecond=shape[7];
20926 size_t valuelen4valelemsecondsecond;
20927 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20928 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20929 size_t total_item_size1val=item_size2valelem;
20930 size_t total_item_size0=item_size1key+item_size1val;
20931 unsigned int count0=0;
20932 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20933 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
20934 unsigned int pad_count0=0;
20935 for(;it0!=val0.end();++it0){
20936 std::string child1key=std::string(it0->first,0,item_size1key);
20937 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
20938 unsigned int pad_count1val=0;
20939 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20940 for(;it1val!=it0->second.end();++it1val){
20941 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20942 unsigned int pad_count2valelem=0;
20943 std::pair<std::string, std::string> child3valelemsecond;
20944 unsigned int pad_count3valelemsecond=0;
20945 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
20946 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
20947 child3valelemsecond = std::make_pair(child4valelemsecondfirst,child4valelemsecondsecond);
20948 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
20949 child1val.push_back(child2valelem);
20953 fixed_val0[child1key] = child1val;
20958 hasher_.
Update(fixed_val0);
20963 hvl_t buf0 = VLValToBuf(fixed_val0);
20970void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
20971 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
20973 size_t item_size1key=shape[1];
20974 size_t valuelen1key;
20977 size_t item_size3valelemfirst=
sizeof(int);
20979 size_t item_size4valelemsecondfirst=shape[6];
20980 size_t valuelen4valelemsecondfirst;
20982 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
20983 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
20984 size_t total_item_size1val=item_size2valelem;
20985 size_t total_item_size0=item_size1key+item_size1val;
20986 unsigned int count0=0;
20987 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
20988 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
20989 unsigned int pad_count0=0;
20990 for(;it0!=val0.end();++it0){
20991 std::string child1key=std::string(it0->first,0,item_size1key);
20992 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
20993 unsigned int pad_count1val=0;
20994 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
20995 for(;it1val!=it0->second.end();++it1val){
20996 std::pair<int, std::pair<std::string, std::string>> child2valelem;
20997 unsigned int pad_count2valelem=0;
20998 std::pair<std::string, std::string> child3valelemsecond;
20999 unsigned int pad_count3valelemsecond=0;
21000 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
21001 child3valelemsecond = std::make_pair(child4valelemsecondfirst,(*it1val).second.second);
21002 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21003 child1val.push_back(child2valelem);
21007 fixed_val0[child1key] = child1val;
21012 hasher_.
Update(fixed_val0);
21017 hvl_t buf0 = VLValToBuf(fixed_val0);
21024void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21025 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21027 size_t item_size1key=shape[1];
21028 size_t valuelen1key;
21031 size_t item_size3valelemfirst=
sizeof(int);
21034 size_t item_size4valelemsecondsecond=shape[7];
21035 size_t valuelen4valelemsecondsecond;
21036 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21037 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21038 size_t total_item_size1val=item_size2valelem;
21039 size_t total_item_size0=item_size1key+item_size1val;
21040 unsigned int count0=0;
21041 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21042 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21043 unsigned int pad_count0=0;
21044 for(;it0!=val0.end();++it0){
21045 std::string child1key=std::string(it0->first,0,item_size1key);
21046 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21047 unsigned int pad_count1val=0;
21048 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21049 for(;it1val!=it0->second.end();++it1val){
21050 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21051 unsigned int pad_count2valelem=0;
21052 std::pair<std::string, std::string> child3valelemsecond;
21053 unsigned int pad_count3valelemsecond=0;
21054 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
21055 child3valelemsecond = std::make_pair((*it1val).second.first,child4valelemsecondsecond);
21056 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21057 child1val.push_back(child2valelem);
21061 fixed_val0[child1key] = child1val;
21066 hasher_.
Update(fixed_val0);
21071 hvl_t buf0 = VLValToBuf(fixed_val0);
21078void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21079 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21081 size_t item_size1key=shape[1];
21082 size_t valuelen1key;
21085 size_t item_size3valelemfirst=
sizeof(int);
21089 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21090 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21091 size_t total_item_size1val=item_size2valelem;
21092 size_t total_item_size0=item_size1key+item_size1val;
21093 unsigned int count0=0;
21094 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21095 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21096 unsigned int pad_count0=0;
21097 for(;it0!=val0.end();++it0){
21098 std::string child1key=std::string(it0->first,0,item_size1key);
21099 fixed_val0[child1key] = it0->second;
21104 hasher_.
Update(fixed_val0);
21109 hvl_t buf0 = VLValToBuf(fixed_val0);
21116void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21117 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21120 size_t item_size1val=((((
sizeof(int)+((shape[6]+shape[7])))))*shape[2]);
21121 size_t length1val=shape[2];
21122 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
21123 size_t item_size3valelemfirst=
sizeof(int);
21124 size_t item_size3valelemsecond=((shape[6]+shape[7]));
21125 size_t item_size4valelemsecondfirst=shape[6];
21126 size_t valuelen4valelemsecondfirst;
21127 size_t item_size4valelemsecondsecond=shape[7];
21128 size_t valuelen4valelemsecondsecond;
21129 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21130 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21131 size_t total_item_size1val=item_size2valelem;
21132 size_t total_item_size0=item_size1key+item_size1val;
21133 unsigned int count0=0;
21134 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21135 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21136 unsigned int pad_count0=0;
21137 for(;it0!=val0.end();++it0){
21138 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21139 unsigned int pad_count1val=0;
21140 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21141 for(;it1val!=it0->second.end();++it1val){
21142 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21143 unsigned int pad_count2valelem=0;
21144 std::pair<std::string, std::string> child3valelemsecond;
21145 unsigned int pad_count3valelemsecond=0;
21146 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
21147 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
21148 child3valelemsecond = std::make_pair(child4valelemsecondfirst,child4valelemsecondsecond);
21149 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21150 child1val.push_back(child2valelem);
21154 child1val.resize(length1val);
21155 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
21156 fixed_val0[it0->first] = child1val;
21161 hasher_.
Update(fixed_val0);
21166 hvl_t buf0 = VLValToBuf(fixed_val0);
21173void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21174 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21177 size_t item_size1val=((((
sizeof(int)+((shape[6]+
CYCLUS_SHA1_SIZE)))))*shape[2]);
21178 size_t length1val=shape[2];
21180 size_t item_size3valelemfirst=
sizeof(int);
21182 size_t item_size4valelemsecondfirst=shape[6];
21183 size_t valuelen4valelemsecondfirst;
21185 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21186 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21187 size_t total_item_size1val=item_size2valelem;
21188 size_t total_item_size0=item_size1key+item_size1val;
21189 unsigned int count0=0;
21190 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21191 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21192 unsigned int pad_count0=0;
21193 for(;it0!=val0.end();++it0){
21194 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21195 unsigned int pad_count1val=0;
21196 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21197 for(;it1val!=it0->second.end();++it1val){
21198 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21199 unsigned int pad_count2valelem=0;
21200 std::pair<std::string, std::string> child3valelemsecond;
21201 unsigned int pad_count3valelemsecond=0;
21202 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
21203 child3valelemsecond = std::make_pair(child4valelemsecondfirst,(*it1val).second.second);
21204 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21205 child1val.push_back(child2valelem);
21209 child1val.resize(length1val);
21210 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
21211 fixed_val0[it0->first] = child1val;
21216 hasher_.
Update(fixed_val0);
21221 hvl_t buf0 = VLValToBuf(fixed_val0);
21228void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21229 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21232 size_t item_size1val=((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[7])))))*shape[2]);
21233 size_t length1val=shape[2];
21235 size_t item_size3valelemfirst=
sizeof(int);
21238 size_t item_size4valelemsecondsecond=shape[7];
21239 size_t valuelen4valelemsecondsecond;
21240 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21241 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21242 size_t total_item_size1val=item_size2valelem;
21243 size_t total_item_size0=item_size1key+item_size1val;
21244 unsigned int count0=0;
21245 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21246 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21247 unsigned int pad_count0=0;
21248 for(;it0!=val0.end();++it0){
21249 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21250 unsigned int pad_count1val=0;
21251 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21252 for(;it1val!=it0->second.end();++it1val){
21253 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21254 unsigned int pad_count2valelem=0;
21255 std::pair<std::string, std::string> child3valelemsecond;
21256 unsigned int pad_count3valelemsecond=0;
21257 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
21258 child3valelemsecond = std::make_pair((*it1val).second.first,child4valelemsecondsecond);
21259 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21260 child1val.push_back(child2valelem);
21264 child1val.resize(length1val);
21265 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
21266 fixed_val0[it0->first] = child1val;
21271 hasher_.
Update(fixed_val0);
21276 hvl_t buf0 = VLValToBuf(fixed_val0);
21283void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21284 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21288 size_t length1val=shape[2];
21290 size_t item_size3valelemfirst=
sizeof(int);
21294 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21295 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21296 size_t total_item_size1val=item_size2valelem;
21297 size_t total_item_size0=item_size1key+item_size1val;
21298 unsigned int count0=0;
21299 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21300 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21301 unsigned int pad_count0=0;
21302 for(;it0!=val0.end();++it0){
21303 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21304 unsigned int pad_count1val=0;
21305 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21306 for(;it1val!=it0->second.end();++it1val){
21307 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21308 unsigned int pad_count2valelem=0;
21309 std::pair<std::string, std::string> child3valelemsecond;
21310 unsigned int pad_count3valelemsecond=0;
21311 child3valelemsecond = std::make_pair((*it1val).second.first,(*it1val).second.second);
21312 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21313 child1val.push_back(child2valelem);
21317 child1val.resize(length1val);
21318 memset(&child1val, 0, (length1val-pad_count1val)*item_size1key);
21319 fixed_val0[it0->first] = child1val;
21324 hasher_.
Update(fixed_val0);
21329 hvl_t buf0 = VLValToBuf(fixed_val0);
21336void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21337 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21341 size_t item_size2valelem=((
sizeof(int)+((shape[6]+shape[7]))));
21342 size_t item_size3valelemfirst=
sizeof(int);
21343 size_t item_size3valelemsecond=((shape[6]+shape[7]));
21344 size_t item_size4valelemsecondfirst=shape[6];
21345 size_t valuelen4valelemsecondfirst;
21346 size_t item_size4valelemsecondsecond=shape[7];
21347 size_t valuelen4valelemsecondsecond;
21348 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21349 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21350 size_t total_item_size1val=item_size2valelem;
21351 size_t total_item_size0=item_size1key+item_size1val;
21352 unsigned int count0=0;
21353 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21354 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21355 unsigned int pad_count0=0;
21356 for(;it0!=val0.end();++it0){
21357 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21358 unsigned int pad_count1val=0;
21359 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21360 for(;it1val!=it0->second.end();++it1val){
21361 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21362 unsigned int pad_count2valelem=0;
21363 std::pair<std::string, std::string> child3valelemsecond;
21364 unsigned int pad_count3valelemsecond=0;
21365 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
21366 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
21367 child3valelemsecond = std::make_pair(child4valelemsecondfirst,child4valelemsecondsecond);
21368 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21369 child1val.push_back(child2valelem);
21373 fixed_val0[it0->first] = child1val;
21378 hasher_.
Update(fixed_val0);
21383 hvl_t buf0 = VLValToBuf(fixed_val0);
21390void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21391 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21396 size_t item_size3valelemfirst=
sizeof(int);
21398 size_t item_size4valelemsecondfirst=shape[6];
21399 size_t valuelen4valelemsecondfirst;
21401 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21402 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21403 size_t total_item_size1val=item_size2valelem;
21404 size_t total_item_size0=item_size1key+item_size1val;
21405 unsigned int count0=0;
21406 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21407 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21408 unsigned int pad_count0=0;
21409 for(;it0!=val0.end();++it0){
21410 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21411 unsigned int pad_count1val=0;
21412 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21413 for(;it1val!=it0->second.end();++it1val){
21414 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21415 unsigned int pad_count2valelem=0;
21416 std::pair<std::string, std::string> child3valelemsecond;
21417 unsigned int pad_count3valelemsecond=0;
21418 std::string child4valelemsecondfirst=std::string((*it1val).second.first,0,item_size4valelemsecondfirst);
21419 child3valelemsecond = std::make_pair(child4valelemsecondfirst,(*it1val).second.second);
21420 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21421 child1val.push_back(child2valelem);
21425 fixed_val0[it0->first] = child1val;
21430 hasher_.
Update(fixed_val0);
21435 hvl_t buf0 = VLValToBuf(fixed_val0);
21442void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21443 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21448 size_t item_size3valelemfirst=
sizeof(int);
21451 size_t item_size4valelemsecondsecond=shape[7];
21452 size_t valuelen4valelemsecondsecond;
21453 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21454 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21455 size_t total_item_size1val=item_size2valelem;
21456 size_t total_item_size0=item_size1key+item_size1val;
21457 unsigned int count0=0;
21458 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::iterator it0=val0.begin();
21459 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> fixed_val0;
21460 unsigned int pad_count0=0;
21461 for(;it0!=val0.end();++it0){
21462 std::vector<std::pair<int, std::pair<std::string, std::string>>> child1val;
21463 unsigned int pad_count1val=0;
21464 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it1val=it0->second.begin();
21465 for(;it1val!=it0->second.end();++it1val){
21466 std::pair<int, std::pair<std::string, std::string>> child2valelem;
21467 unsigned int pad_count2valelem=0;
21468 std::pair<std::string, std::string> child3valelemsecond;
21469 unsigned int pad_count3valelemsecond=0;
21470 std::string child4valelemsecondsecond=std::string((*it1val).second.second,0,item_size4valelemsecondsecond);
21471 child3valelemsecond = std::make_pair((*it1val).second.first,child4valelemsecondsecond);
21472 child2valelem = std::make_pair((*it1val).first,child3valelemsecond);
21473 child1val.push_back(child2valelem);
21477 fixed_val0[it0->first] = child1val;
21482 hasher_.
Update(fixed_val0);
21487 hvl_t buf0 = VLValToBuf(fixed_val0);
21494void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21495 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> val0=a->
cast<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>();
21500 size_t item_size3valelemfirst=
sizeof(int);
21504 size_t total_item_size3valelemsecond=item_size4valelemsecondfirst+item_size4valelemsecondsecond;
21505 size_t total_item_size2valelem=item_size3valelemfirst+item_size3valelemsecond;
21506 size_t total_item_size1val=item_size2valelem;
21507 size_t total_item_size0=item_size1key+item_size1val;
21514 hvl_t buf0 = VLValToBuf(val0);
21521void Hdf5Back::WriteToBuf<LIST_PAIR_INT_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21522 std::list<std::pair<int, int>> val0=a->
cast<std::list<std::pair<int, int>>>();
21523 size_t item_size0=((((
sizeof(int)+
sizeof(
int))))*shape[0]);
21524 size_t length0=shape[0];
21525 size_t item_size1elem=((
sizeof(int)+
sizeof(
int)));
21526 size_t item_size2elemfirst=
sizeof(int);
21527 size_t item_size2elemsecond=
sizeof(int);
21528 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
21529 size_t total_item_size0=item_size1elem;
21530 if(total_item_size0*val0.size()>column){
21531 std::list<std::pair<int, int>>::iterator eraseit=val0.begin();
21532 std::advance(eraseit, column/total_item_size0);
21533 val0.erase(eraseit,val0.end());
21536 unsigned int count0=0;
21537 std::list<std::pair<int, int>>::iterator it0=val0.begin();
21538 for(;it0!=val0.end();++it0){
21539 unsigned int count1elem=0;
21540 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0, &(it0->first), item_size2elemfirst);
21541 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst, &(it0->second), item_size2elemsecond);
21545 if(total_item_size0*length0<column){
21546 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21551void Hdf5Back::WriteToBuf<VL_LIST_PAIR_INT_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21552 std::list<std::pair<int, int>> val0=a->
cast<std::list<std::pair<int, int>>>();
21554 size_t item_size1elem=((
sizeof(int)+
sizeof(
int)));
21555 size_t item_size2elemfirst=
sizeof(int);
21556 size_t item_size2elemsecond=
sizeof(int);
21557 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
21558 size_t total_item_size0=item_size1elem;
21565 hvl_t buf0 = VLValToBuf(val0);
21572void Hdf5Back::WriteToBuf<MAP_STRING_PAIR_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21573 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21574 size_t item_size0=((shape[1]+((shape[3]+((
sizeof(double))*shape[4]))))*shape[0]);
21575 size_t length0=shape[0];
21576 size_t item_size1key=shape[1];
21577 size_t valuelen1key;
21578 size_t item_size1val=((shape[3]+((
sizeof(double))*shape[4])));
21579 size_t item_size2valfirst=shape[3];
21580 size_t valuelen2valfirst;
21581 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
21582 size_t length2valsecond=shape[4];
21583 size_t item_size3valsecondelem=
sizeof(double);
21584 size_t total_item_size2valsecond=item_size3valsecondelem;
21585 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21586 size_t total_item_size0=item_size1key+item_size1val;
21587 if(total_item_size0*val0.size()>column){
21588 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21589 std::advance(eraseit, column/total_item_size0);
21590 val0.erase(eraseit,val0.end());
21593 unsigned int count0=0;
21594 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21595 for(;it0!=val0.end();++it0){
21596 valuelen1key=std::min(it0->first.size(), item_size1key);
21597 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
21598 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
21599 unsigned int count1val=0;
21600 valuelen2valfirst=std::min(it0->second.first.size(), item_size2valfirst);
21601 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it0->second.first.c_str(), valuelen2valfirst);
21602 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valfirst, 0, item_size2valfirst-valuelen2valfirst);
21603 unsigned int count2valsecond=0;
21604 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
21605 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
21606 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+item_size3valsecondelem*count2valsecond, &(*it2valsecond), item_size3valsecondelem);
21610 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+total_item_size2valsecond*count2valsecond, 0, total_item_size2valsecond*(length2valsecond-count2valsecond));
21614 if(total_item_size0*length0<column){
21615 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21620void Hdf5Back::WriteToBuf<MAP_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21621 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21623 size_t length0=shape[0];
21624 size_t item_size1key=shape[1];
21625 size_t valuelen1key;
21627 size_t item_size2valfirst=shape[3];
21628 size_t valuelen2valfirst;
21630 size_t item_size3valsecondelem=
sizeof(double);
21631 size_t total_item_size2valsecond=item_size3valsecondelem;
21632 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21633 size_t total_item_size0=item_size1key+item_size1val;
21634 if(total_item_size0*val0.size()>column){
21635 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21636 std::advance(eraseit, column/total_item_size0);
21637 val0.erase(eraseit,val0.end());
21640 unsigned int count0=0;
21641 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21642 for(;it0!=val0.end();++it0){
21643 valuelen1key=std::min(it0->first.size(), item_size1key);
21644 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
21645 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
21646 unsigned int count1val=0;
21647 valuelen2valfirst=std::min(it0->second.first.size(), item_size2valfirst);
21648 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it0->second.first.c_str(), valuelen2valfirst);
21649 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valfirst, 0, item_size2valfirst-valuelen2valfirst);
21651 hasher_.
Update(it0->second.second);
21656 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
21658 InsertVLVal(valsds2valsecond,
VL_VECTOR_DOUBLE, key2valsecond, buf2valsecond);
21660 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst, key2valsecond.data(),
CYCLUS_SHA1_SIZE);
21664 if(total_item_size0*length0<column){
21665 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21670void Hdf5Back::WriteToBuf<MAP_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21671 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21672 size_t item_size0=((shape[1]+((
CYCLUS_SHA1_SIZE+((
sizeof(double))*shape[4]))))*shape[0]);
21673 size_t length0=shape[0];
21674 size_t item_size1key=shape[1];
21675 size_t valuelen1key;
21678 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
21679 size_t length2valsecond=shape[4];
21680 size_t item_size3valsecondelem=
sizeof(double);
21681 size_t total_item_size2valsecond=item_size3valsecondelem;
21682 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21683 size_t total_item_size0=item_size1key+item_size1val;
21684 if(total_item_size0*val0.size()>column){
21685 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21686 std::advance(eraseit, column/total_item_size0);
21687 val0.erase(eraseit,val0.end());
21690 unsigned int count0=0;
21691 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21692 for(;it0!=val0.end();++it0){
21693 valuelen1key=std::min(it0->first.size(), item_size1key);
21694 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
21695 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
21696 unsigned int count1val=0;
21698 hasher_.
Update(it0->second.first);
21700 hid_t keysds2valfirst = VLDataset(
VL_STRING,
true);
21701 hid_t valsds2valfirst = VLDataset(
VL_STRING,
false);
21702 if (vlkeys_[
VL_STRING].count(key2valfirst) != 1) {
21703 AppendVLKey(keysds2valfirst,
VL_STRING, key2valfirst);
21704 InsertVLVal(valsds2valfirst,
VL_STRING, key2valfirst, it0->second.first);
21706 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valfirst.data(),
CYCLUS_SHA1_SIZE);
21707 unsigned int count2valsecond=0;
21708 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
21709 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
21710 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+item_size3valsecondelem*count2valsecond, &(*it2valsecond), item_size3valsecondelem);
21714 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+total_item_size2valsecond*count2valsecond, 0, total_item_size2valsecond*(length2valsecond-count2valsecond));
21718 if(total_item_size0*length0<column){
21719 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21724void Hdf5Back::WriteToBuf<MAP_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21725 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21727 size_t length0=shape[0];
21728 size_t item_size1key=shape[1];
21729 size_t valuelen1key;
21733 size_t item_size3valsecondelem=
sizeof(double);
21734 size_t total_item_size2valsecond=item_size3valsecondelem;
21735 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21736 size_t total_item_size0=item_size1key+item_size1val;
21737 if(total_item_size0*val0.size()>column){
21738 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21739 std::advance(eraseit, column/total_item_size0);
21740 val0.erase(eraseit,val0.end());
21743 unsigned int count0=0;
21744 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21745 for(;it0!=val0.end();++it0){
21746 valuelen1key=std::min(it0->first.size(), item_size1key);
21747 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
21748 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
21749 unsigned int count1val=0;
21751 hasher_.
Update(it0->second.first);
21753 hid_t keysds2valfirst = VLDataset(
VL_STRING,
true);
21754 hid_t valsds2valfirst = VLDataset(
VL_STRING,
false);
21755 if (vlkeys_[
VL_STRING].count(key2valfirst) != 1) {
21756 AppendVLKey(keysds2valfirst,
VL_STRING, key2valfirst);
21757 InsertVLVal(valsds2valfirst,
VL_STRING, key2valfirst, it0->second.first);
21759 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valfirst.data(),
CYCLUS_SHA1_SIZE);
21761 hasher_.
Update(it0->second.second);
21766 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
21768 InsertVLVal(valsds2valsecond,
VL_VECTOR_DOUBLE, key2valsecond, buf2valsecond);
21770 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst, key2valsecond.data(),
CYCLUS_SHA1_SIZE);
21774 if(total_item_size0*length0<column){
21775 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21780void Hdf5Back::WriteToBuf<MAP_VL_STRING_PAIR_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21781 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21782 size_t item_size0=((
CYCLUS_SHA1_SIZE+((shape[3]+((
sizeof(double))*shape[4]))))*shape[0]);
21783 size_t length0=shape[0];
21785 size_t item_size1val=((shape[3]+((
sizeof(double))*shape[4])));
21786 size_t item_size2valfirst=shape[3];
21787 size_t valuelen2valfirst;
21788 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
21789 size_t length2valsecond=shape[4];
21790 size_t item_size3valsecondelem=
sizeof(double);
21791 size_t total_item_size2valsecond=item_size3valsecondelem;
21792 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21793 size_t total_item_size0=item_size1key+item_size1val;
21794 if(total_item_size0*val0.size()>column){
21795 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21796 std::advance(eraseit, column/total_item_size0);
21797 val0.erase(eraseit,val0.end());
21800 unsigned int count0=0;
21801 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21802 for(;it0!=val0.end();++it0){
21804 hasher_.
Update(it0->first);
21806 hid_t keysds1key = VLDataset(
VL_STRING,
true);
21807 hid_t valsds1key = VLDataset(
VL_STRING,
false);
21808 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
21809 AppendVLKey(keysds1key,
VL_STRING, key1key);
21810 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
21813 unsigned int count1val=0;
21814 valuelen2valfirst=std::min(it0->second.first.size(), item_size2valfirst);
21815 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it0->second.first.c_str(), valuelen2valfirst);
21816 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valfirst, 0, item_size2valfirst-valuelen2valfirst);
21817 unsigned int count2valsecond=0;
21818 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
21819 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
21820 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+item_size3valsecondelem*count2valsecond, &(*it2valsecond), item_size3valsecondelem);
21824 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+total_item_size2valsecond*count2valsecond, 0, total_item_size2valsecond*(length2valsecond-count2valsecond));
21828 if(total_item_size0*length0<column){
21829 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21834void Hdf5Back::WriteToBuf<MAP_VL_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21835 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21837 size_t length0=shape[0];
21841 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
21842 size_t length2valsecond=shape[4];
21843 size_t item_size3valsecondelem=
sizeof(double);
21844 size_t total_item_size2valsecond=item_size3valsecondelem;
21845 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21846 size_t total_item_size0=item_size1key+item_size1val;
21847 if(total_item_size0*val0.size()>column){
21848 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21849 std::advance(eraseit, column/total_item_size0);
21850 val0.erase(eraseit,val0.end());
21853 unsigned int count0=0;
21854 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21855 for(;it0!=val0.end();++it0){
21857 hasher_.
Update(it0->first);
21859 hid_t keysds1key = VLDataset(
VL_STRING,
true);
21860 hid_t valsds1key = VLDataset(
VL_STRING,
false);
21861 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
21862 AppendVLKey(keysds1key,
VL_STRING, key1key);
21863 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
21866 unsigned int count1val=0;
21868 hasher_.
Update(it0->second.first);
21870 hid_t keysds2valfirst = VLDataset(
VL_STRING,
true);
21871 hid_t valsds2valfirst = VLDataset(
VL_STRING,
false);
21872 if (vlkeys_[
VL_STRING].count(key2valfirst) != 1) {
21873 AppendVLKey(keysds2valfirst,
VL_STRING, key2valfirst);
21874 InsertVLVal(valsds2valfirst,
VL_STRING, key2valfirst, it0->second.first);
21876 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valfirst.data(),
CYCLUS_SHA1_SIZE);
21877 unsigned int count2valsecond=0;
21878 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
21879 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
21880 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+item_size3valsecondelem*count2valsecond, &(*it2valsecond), item_size3valsecondelem);
21884 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst+total_item_size2valsecond*count2valsecond, 0, total_item_size2valsecond*(length2valsecond-count2valsecond));
21888 if(total_item_size0*length0<column){
21889 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21894void Hdf5Back::WriteToBuf<MAP_VL_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21895 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21897 size_t length0=shape[0];
21900 size_t item_size2valfirst=shape[3];
21901 size_t valuelen2valfirst;
21903 size_t item_size3valsecondelem=
sizeof(double);
21904 size_t total_item_size2valsecond=item_size3valsecondelem;
21905 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21906 size_t total_item_size0=item_size1key+item_size1val;
21907 if(total_item_size0*val0.size()>column){
21908 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21909 std::advance(eraseit, column/total_item_size0);
21910 val0.erase(eraseit,val0.end());
21913 unsigned int count0=0;
21914 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21915 for(;it0!=val0.end();++it0){
21917 hasher_.
Update(it0->first);
21919 hid_t keysds1key = VLDataset(
VL_STRING,
true);
21920 hid_t valsds1key = VLDataset(
VL_STRING,
false);
21921 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
21922 AppendVLKey(keysds1key,
VL_STRING, key1key);
21923 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
21926 unsigned int count1val=0;
21927 valuelen2valfirst=std::min(it0->second.first.size(), item_size2valfirst);
21928 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it0->second.first.c_str(), valuelen2valfirst);
21929 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valfirst, 0, item_size2valfirst-valuelen2valfirst);
21931 hasher_.
Update(it0->second.second);
21936 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
21938 InsertVLVal(valsds2valsecond,
VL_VECTOR_DOUBLE, key2valsecond, buf2valsecond);
21940 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst, key2valsecond.data(),
CYCLUS_SHA1_SIZE);
21944 if(total_item_size0*length0<column){
21945 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
21950void Hdf5Back::WriteToBuf<MAP_VL_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
21951 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
21953 size_t length0=shape[0];
21958 size_t item_size3valsecondelem=
sizeof(double);
21959 size_t total_item_size2valsecond=item_size3valsecondelem;
21960 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
21961 size_t total_item_size0=item_size1key+item_size1val;
21962 if(total_item_size0*val0.size()>column){
21963 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator eraseit=val0.begin();
21964 std::advance(eraseit, column/total_item_size0);
21965 val0.erase(eraseit,val0.end());
21968 unsigned int count0=0;
21969 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
21970 for(;it0!=val0.end();++it0){
21972 hasher_.
Update(it0->first);
21974 hid_t keysds1key = VLDataset(
VL_STRING,
true);
21975 hid_t valsds1key = VLDataset(
VL_STRING,
false);
21976 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
21977 AppendVLKey(keysds1key,
VL_STRING, key1key);
21978 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
21981 unsigned int count1val=0;
21983 hasher_.
Update(it0->second.first);
21985 hid_t keysds2valfirst = VLDataset(
VL_STRING,
true);
21986 hid_t valsds2valfirst = VLDataset(
VL_STRING,
false);
21987 if (vlkeys_[
VL_STRING].count(key2valfirst) != 1) {
21988 AppendVLKey(keysds2valfirst,
VL_STRING, key2valfirst);
21989 InsertVLVal(valsds2valfirst,
VL_STRING, key2valfirst, it0->second.first);
21991 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valfirst.data(),
CYCLUS_SHA1_SIZE);
21993 hasher_.
Update(it0->second.second);
21998 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
22000 InsertVLVal(valsds2valsecond,
VL_VECTOR_DOUBLE, key2valsecond, buf2valsecond);
22002 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valfirst, key2valsecond.data(),
CYCLUS_SHA1_SIZE);
22006 if(total_item_size0*length0<column){
22007 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22012void Hdf5Back::WriteToBuf<VL_MAP_STRING_PAIR_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22013 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22015 size_t item_size1key=shape[1];
22016 size_t valuelen1key;
22017 size_t item_size1val=((shape[3]+((
sizeof(double))*shape[4])));
22018 size_t item_size2valfirst=shape[3];
22019 size_t valuelen2valfirst;
22020 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
22021 size_t length2valsecond=shape[4];
22022 size_t item_size3valsecondelem=
sizeof(double);
22023 size_t total_item_size2valsecond=item_size3valsecondelem;
22024 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22025 size_t total_item_size0=item_size1key+item_size1val;
22026 unsigned int count0=0;
22027 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22028 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22029 unsigned int pad_count0=0;
22030 for(;it0!=val0.end();++it0){
22031 std::string child1key=std::string(it0->first,0,item_size1key);
22032 std::pair<std::string, std::vector<double>> child1val;
22033 unsigned int pad_count1val=0;
22034 std::string child2valfirst=std::string(it0->second.first,0,item_size2valfirst);
22035 std::vector<double> child2valsecond;
22036 unsigned int pad_count2valsecond=0;
22037 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
22038 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
22039 child2valsecond.push_back((*it2valsecond));
22040 ++pad_count2valsecond;
22043 child2valsecond.resize(length2valsecond);
22044 memset(&child2valsecond, 0, (length2valsecond-pad_count2valsecond)*item_size2valfirst);
22045 child1val = std::make_pair(child2valfirst,child2valsecond);
22046 fixed_val0[child1key] = child1val;
22051 hasher_.
Update(fixed_val0);
22056 hvl_t buf0 = VLValToBuf(fixed_val0);
22063void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_PAIR_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22064 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22067 size_t item_size1val=((shape[3]+((
sizeof(double))*shape[4])));
22068 size_t item_size2valfirst=shape[3];
22069 size_t valuelen2valfirst;
22070 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
22071 size_t length2valsecond=shape[4];
22072 size_t item_size3valsecondelem=
sizeof(double);
22073 size_t total_item_size2valsecond=item_size3valsecondelem;
22074 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22075 size_t total_item_size0=item_size1key+item_size1val;
22076 unsigned int count0=0;
22077 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22078 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22079 unsigned int pad_count0=0;
22080 for(;it0!=val0.end();++it0){
22081 std::pair<std::string, std::vector<double>> child1val;
22082 unsigned int pad_count1val=0;
22083 std::string child2valfirst=std::string(it0->second.first,0,item_size2valfirst);
22084 std::vector<double> child2valsecond;
22085 unsigned int pad_count2valsecond=0;
22086 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
22087 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
22088 child2valsecond.push_back((*it2valsecond));
22089 ++pad_count2valsecond;
22092 child2valsecond.resize(length2valsecond);
22093 memset(&child2valsecond, 0, (length2valsecond-pad_count2valsecond)*item_size2valfirst);
22094 child1val = std::make_pair(child2valfirst,child2valsecond);
22095 fixed_val0[it0->first] = child1val;
22100 hasher_.
Update(fixed_val0);
22105 hvl_t buf0 = VLValToBuf(fixed_val0);
22112void Hdf5Back::WriteToBuf<VL_MAP_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22113 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22115 size_t item_size1key=shape[1];
22116 size_t valuelen1key;
22119 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
22120 size_t length2valsecond=shape[4];
22121 size_t item_size3valsecondelem=
sizeof(double);
22122 size_t total_item_size2valsecond=item_size3valsecondelem;
22123 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22124 size_t total_item_size0=item_size1key+item_size1val;
22125 unsigned int count0=0;
22126 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22127 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22128 unsigned int pad_count0=0;
22129 for(;it0!=val0.end();++it0){
22130 std::string child1key=std::string(it0->first,0,item_size1key);
22131 std::pair<std::string, std::vector<double>> child1val;
22132 unsigned int pad_count1val=0;
22133 std::vector<double> child2valsecond;
22134 unsigned int pad_count2valsecond=0;
22135 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
22136 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
22137 child2valsecond.push_back((*it2valsecond));
22138 ++pad_count2valsecond;
22141 child2valsecond.resize(length2valsecond);
22142 memset(&child2valsecond, 0, (length2valsecond-pad_count2valsecond)*item_size2valfirst);
22143 child1val = std::make_pair(it0->second.first,child2valsecond);
22144 fixed_val0[child1key] = child1val;
22149 hasher_.
Update(fixed_val0);
22154 hvl_t buf0 = VLValToBuf(fixed_val0);
22161void Hdf5Back::WriteToBuf<VL_MAP_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22162 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22164 size_t item_size1key=shape[1];
22165 size_t valuelen1key;
22167 size_t item_size2valfirst=shape[3];
22168 size_t valuelen2valfirst;
22170 size_t item_size3valsecondelem=
sizeof(double);
22171 size_t total_item_size2valsecond=item_size3valsecondelem;
22172 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22173 size_t total_item_size0=item_size1key+item_size1val;
22174 unsigned int count0=0;
22175 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22176 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22177 unsigned int pad_count0=0;
22178 for(;it0!=val0.end();++it0){
22179 std::string child1key=std::string(it0->first,0,item_size1key);
22180 std::pair<std::string, std::vector<double>> child1val;
22181 unsigned int pad_count1val=0;
22182 std::string child2valfirst=std::string(it0->second.first,0,item_size2valfirst);
22183 child1val = std::make_pair(child2valfirst,it0->second.second);
22184 fixed_val0[child1key] = child1val;
22189 hasher_.
Update(fixed_val0);
22194 hvl_t buf0 = VLValToBuf(fixed_val0);
22201void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22202 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22207 size_t item_size2valsecond=((
sizeof(double))*shape[4]);
22208 size_t length2valsecond=shape[4];
22209 size_t item_size3valsecondelem=
sizeof(double);
22210 size_t total_item_size2valsecond=item_size3valsecondelem;
22211 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22212 size_t total_item_size0=item_size1key+item_size1val;
22213 unsigned int count0=0;
22214 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22215 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22216 unsigned int pad_count0=0;
22217 for(;it0!=val0.end();++it0){
22218 std::pair<std::string, std::vector<double>> child1val;
22219 unsigned int pad_count1val=0;
22220 std::vector<double> child2valsecond;
22221 unsigned int pad_count2valsecond=0;
22222 std::vector<double>::iterator it2valsecond=it0->second.second.begin();
22223 for(;it2valsecond!=it0->second.second.end();++it2valsecond){
22224 child2valsecond.push_back((*it2valsecond));
22225 ++pad_count2valsecond;
22228 child2valsecond.resize(length2valsecond);
22229 memset(&child2valsecond, 0, (length2valsecond-pad_count2valsecond)*item_size2valfirst);
22230 child1val = std::make_pair(it0->second.first,child2valsecond);
22231 fixed_val0[it0->first] = child1val;
22236 hasher_.
Update(fixed_val0);
22241 hvl_t buf0 = VLValToBuf(fixed_val0);
22248void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22249 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22253 size_t item_size2valfirst=shape[3];
22254 size_t valuelen2valfirst;
22256 size_t item_size3valsecondelem=
sizeof(double);
22257 size_t total_item_size2valsecond=item_size3valsecondelem;
22258 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22259 size_t total_item_size0=item_size1key+item_size1val;
22260 unsigned int count0=0;
22261 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22262 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22263 unsigned int pad_count0=0;
22264 for(;it0!=val0.end();++it0){
22265 std::pair<std::string, std::vector<double>> child1val;
22266 unsigned int pad_count1val=0;
22267 std::string child2valfirst=std::string(it0->second.first,0,item_size2valfirst);
22268 child1val = std::make_pair(child2valfirst,it0->second.second);
22269 fixed_val0[it0->first] = child1val;
22274 hasher_.
Update(fixed_val0);
22279 hvl_t buf0 = VLValToBuf(fixed_val0);
22286void Hdf5Back::WriteToBuf<VL_MAP_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22287 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22289 size_t item_size1key=shape[1];
22290 size_t valuelen1key;
22294 size_t item_size3valsecondelem=
sizeof(double);
22295 size_t total_item_size2valsecond=item_size3valsecondelem;
22296 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22297 size_t total_item_size0=item_size1key+item_size1val;
22298 unsigned int count0=0;
22299 std::map<std::string, std::pair<std::string, std::vector<double>>>::iterator it0=val0.begin();
22300 std::map<std::string, std::pair<std::string, std::vector<double>>> fixed_val0;
22301 unsigned int pad_count0=0;
22302 for(;it0!=val0.end();++it0){
22303 std::string child1key=std::string(it0->first,0,item_size1key);
22304 std::pair<std::string, std::vector<double>> child1val;
22305 unsigned int pad_count1val=0;
22306 child1val = std::make_pair(it0->second.first,it0->second.second);
22307 fixed_val0[child1key] = child1val;
22312 hasher_.
Update(fixed_val0);
22317 hvl_t buf0 = VLValToBuf(fixed_val0);
22324void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22325 std::map<std::string, std::pair<std::string, std::vector<double>>> val0=a->
cast<std::map<std::string, std::pair<std::string, std::vector<double>>>>();
22331 size_t item_size3valsecondelem=
sizeof(double);
22332 size_t total_item_size2valsecond=item_size3valsecondelem;
22333 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
22334 size_t total_item_size0=item_size1key+item_size1val;
22341 hvl_t buf0 = VLValToBuf(val0);
22348void Hdf5Back::WriteToBuf<MAP_STRING_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22349 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22350 size_t item_size0=((shape[1]+((shape[3]+
sizeof(int))*shape[2]))*shape[0]);
22351 size_t length0=shape[0];
22352 size_t item_size1key=shape[1];
22353 size_t valuelen1key;
22354 size_t item_size1val=((shape[3]+
sizeof(int))*shape[2]);
22355 size_t length1val=shape[2];
22356 size_t item_size2valkey=shape[3];
22357 size_t valuelen2valkey;
22358 size_t item_size2valval=
sizeof(int);
22359 size_t total_item_size1val=item_size2valkey+item_size2valval;
22360 size_t total_item_size0=item_size1key+item_size1val;
22361 if(total_item_size0*val0.size()>column){
22362 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22363 std::advance(eraseit, column/total_item_size0);
22364 val0.erase(eraseit,val0.end());
22367 unsigned int count0=0;
22368 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22369 for(;it0!=val0.end();++it0){
22370 valuelen1key=std::min(it0->first.size(), item_size1key);
22371 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
22372 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
22373 unsigned int count1val=0;
22374 std::map<std::string, int>::iterator it1val=it0->second.begin();
22375 for(;it1val!=it0->second.end();++it1val){
22376 valuelen2valkey=std::min(it1val->first.size(), item_size2valkey);
22377 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it1val->first.c_str(), valuelen2valkey);
22378 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valkey, 0, item_size2valkey-valuelen2valkey);
22379 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
22383 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
22387 if(total_item_size0*length0<column){
22388 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22393void Hdf5Back::WriteToBuf<MAP_STRING_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22394 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22395 size_t item_size0=((shape[1]+((
CYCLUS_SHA1_SIZE+
sizeof(int))*shape[2]))*shape[0]);
22396 size_t length0=shape[0];
22397 size_t item_size1key=shape[1];
22398 size_t valuelen1key;
22400 size_t length1val=shape[2];
22402 size_t item_size2valval=
sizeof(int);
22403 size_t total_item_size1val=item_size2valkey+item_size2valval;
22404 size_t total_item_size0=item_size1key+item_size1val;
22405 if(total_item_size0*val0.size()>column){
22406 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22407 std::advance(eraseit, column/total_item_size0);
22408 val0.erase(eraseit,val0.end());
22411 unsigned int count0=0;
22412 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22413 for(;it0!=val0.end();++it0){
22414 valuelen1key=std::min(it0->first.size(), item_size1key);
22415 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
22416 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
22417 unsigned int count1val=0;
22418 std::map<std::string, int>::iterator it1val=it0->second.begin();
22419 for(;it1val!=it0->second.end();++it1val){
22421 hasher_.
Update(it1val->first);
22423 hid_t keysds2valkey = VLDataset(
VL_STRING,
true);
22424 hid_t valsds2valkey = VLDataset(
VL_STRING,
false);
22425 if (vlkeys_[
VL_STRING].count(key2valkey) != 1) {
22426 AppendVLKey(keysds2valkey,
VL_STRING, key2valkey);
22427 InsertVLVal(valsds2valkey,
VL_STRING, key2valkey, it1val->first);
22429 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valkey.data(),
CYCLUS_SHA1_SIZE);
22430 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
22434 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
22438 if(total_item_size0*length0<column){
22439 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22444void Hdf5Back::WriteToBuf<MAP_STRING_VL_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22445 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22447 size_t length0=shape[0];
22448 size_t item_size1key=shape[1];
22449 size_t valuelen1key;
22451 size_t item_size2valkey=shape[3];
22452 size_t valuelen2valkey;
22453 size_t item_size2valval=
sizeof(int);
22454 size_t total_item_size1val=item_size2valkey+item_size2valval;
22455 size_t total_item_size0=item_size1key+item_size1val;
22456 if(total_item_size0*val0.size()>column){
22457 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22458 std::advance(eraseit, column/total_item_size0);
22459 val0.erase(eraseit,val0.end());
22462 unsigned int count0=0;
22463 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22464 for(;it0!=val0.end();++it0){
22465 valuelen1key=std::min(it0->first.size(), item_size1key);
22466 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
22467 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
22468 unsigned int count1val=0;
22469 std::map<std::string, int>::iterator it1val=it0->second.begin();
22470 std::map<std::string, int> fixed_val1val;
22471 unsigned int pad_count1val=0;
22472 for(;it1val!=it0->second.end();++it1val){
22473 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
22474 fixed_val1val[child2valkey] = it1val->second;
22479 hasher_.
Update(fixed_val1val);
22484 hvl_t buf1val = VLValToBuf(fixed_val1val);
22492 if(total_item_size0*length0<column){
22493 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22498void Hdf5Back::WriteToBuf<MAP_STRING_VL_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22499 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22501 size_t length0=shape[0];
22502 size_t item_size1key=shape[1];
22503 size_t valuelen1key;
22506 size_t item_size2valval=
sizeof(int);
22507 size_t total_item_size1val=item_size2valkey+item_size2valval;
22508 size_t total_item_size0=item_size1key+item_size1val;
22509 if(total_item_size0*val0.size()>column){
22510 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22511 std::advance(eraseit, column/total_item_size0);
22512 val0.erase(eraseit,val0.end());
22515 unsigned int count0=0;
22516 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22517 for(;it0!=val0.end();++it0){
22518 valuelen1key=std::min(it0->first.size(), item_size1key);
22519 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
22520 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
22522 hasher_.
Update(it0->second);
22527 hvl_t buf1val = VLValToBuf(it0->second);
22535 if(total_item_size0*length0<column){
22536 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22541void Hdf5Back::WriteToBuf<MAP_VL_STRING_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22542 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22543 size_t item_size0=((
CYCLUS_SHA1_SIZE+((shape[3]+
sizeof(int))*shape[2]))*shape[0]);
22544 size_t length0=shape[0];
22546 size_t item_size1val=((shape[3]+
sizeof(int))*shape[2]);
22547 size_t length1val=shape[2];
22548 size_t item_size2valkey=shape[3];
22549 size_t valuelen2valkey;
22550 size_t item_size2valval=
sizeof(int);
22551 size_t total_item_size1val=item_size2valkey+item_size2valval;
22552 size_t total_item_size0=item_size1key+item_size1val;
22553 if(total_item_size0*val0.size()>column){
22554 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22555 std::advance(eraseit, column/total_item_size0);
22556 val0.erase(eraseit,val0.end());
22559 unsigned int count0=0;
22560 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22561 for(;it0!=val0.end();++it0){
22563 hasher_.
Update(it0->first);
22565 hid_t keysds1key = VLDataset(
VL_STRING,
true);
22566 hid_t valsds1key = VLDataset(
VL_STRING,
false);
22567 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
22568 AppendVLKey(keysds1key,
VL_STRING, key1key);
22569 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
22572 unsigned int count1val=0;
22573 std::map<std::string, int>::iterator it1val=it0->second.begin();
22574 for(;it1val!=it0->second.end();++it1val){
22575 valuelen2valkey=std::min(it1val->first.size(), item_size2valkey);
22576 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it1val->first.c_str(), valuelen2valkey);
22577 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valkey, 0, item_size2valkey-valuelen2valkey);
22578 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
22582 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
22586 if(total_item_size0*length0<column){
22587 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22592void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22593 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22595 size_t length0=shape[0];
22598 size_t item_size2valkey=shape[3];
22599 size_t valuelen2valkey;
22600 size_t item_size2valval=
sizeof(int);
22601 size_t total_item_size1val=item_size2valkey+item_size2valval;
22602 size_t total_item_size0=item_size1key+item_size1val;
22603 if(total_item_size0*val0.size()>column){
22604 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22605 std::advance(eraseit, column/total_item_size0);
22606 val0.erase(eraseit,val0.end());
22609 unsigned int count0=0;
22610 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22611 for(;it0!=val0.end();++it0){
22613 hasher_.
Update(it0->first);
22615 hid_t keysds1key = VLDataset(
VL_STRING,
true);
22616 hid_t valsds1key = VLDataset(
VL_STRING,
false);
22617 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
22618 AppendVLKey(keysds1key,
VL_STRING, key1key);
22619 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
22622 unsigned int count1val=0;
22623 std::map<std::string, int>::iterator it1val=it0->second.begin();
22624 std::map<std::string, int> fixed_val1val;
22625 unsigned int pad_count1val=0;
22626 for(;it1val!=it0->second.end();++it1val){
22627 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
22628 fixed_val1val[child2valkey] = it1val->second;
22633 hasher_.
Update(fixed_val1val);
22638 hvl_t buf1val = VLValToBuf(fixed_val1val);
22646 if(total_item_size0*length0<column){
22647 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22652void Hdf5Back::WriteToBuf<MAP_VL_STRING_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22653 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22655 size_t length0=shape[0];
22658 size_t length1val=shape[2];
22660 size_t item_size2valval=
sizeof(int);
22661 size_t total_item_size1val=item_size2valkey+item_size2valval;
22662 size_t total_item_size0=item_size1key+item_size1val;
22663 if(total_item_size0*val0.size()>column){
22664 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22665 std::advance(eraseit, column/total_item_size0);
22666 val0.erase(eraseit,val0.end());
22669 unsigned int count0=0;
22670 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22671 for(;it0!=val0.end();++it0){
22673 hasher_.
Update(it0->first);
22675 hid_t keysds1key = VLDataset(
VL_STRING,
true);
22676 hid_t valsds1key = VLDataset(
VL_STRING,
false);
22677 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
22678 AppendVLKey(keysds1key,
VL_STRING, key1key);
22679 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
22682 unsigned int count1val=0;
22683 std::map<std::string, int>::iterator it1val=it0->second.begin();
22684 for(;it1val!=it0->second.end();++it1val){
22686 hasher_.
Update(it1val->first);
22688 hid_t keysds2valkey = VLDataset(
VL_STRING,
true);
22689 hid_t valsds2valkey = VLDataset(
VL_STRING,
false);
22690 if (vlkeys_[
VL_STRING].count(key2valkey) != 1) {
22691 AppendVLKey(keysds2valkey,
VL_STRING, key2valkey);
22692 InsertVLVal(valsds2valkey,
VL_STRING, key2valkey, it1val->first);
22694 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valkey.data(),
CYCLUS_SHA1_SIZE);
22695 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
22699 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
22703 if(total_item_size0*length0<column){
22704 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22709void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22710 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22712 size_t length0=shape[0];
22716 size_t item_size2valval=
sizeof(int);
22717 size_t total_item_size1val=item_size2valkey+item_size2valval;
22718 size_t total_item_size0=item_size1key+item_size1val;
22719 if(total_item_size0*val0.size()>column){
22720 std::map<std::string, std::map<std::string, int>>::iterator eraseit=val0.begin();
22721 std::advance(eraseit, column/total_item_size0);
22722 val0.erase(eraseit,val0.end());
22725 unsigned int count0=0;
22726 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22727 for(;it0!=val0.end();++it0){
22729 hasher_.
Update(it0->first);
22731 hid_t keysds1key = VLDataset(
VL_STRING,
true);
22732 hid_t valsds1key = VLDataset(
VL_STRING,
false);
22733 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
22734 AppendVLKey(keysds1key,
VL_STRING, key1key);
22735 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
22739 hasher_.
Update(it0->second);
22744 hvl_t buf1val = VLValToBuf(it0->second);
22752 if(total_item_size0*length0<column){
22753 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
22758void Hdf5Back::WriteToBuf<VL_MAP_STRING_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22759 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22761 size_t item_size1key=shape[1];
22762 size_t valuelen1key;
22763 size_t item_size1val=((shape[3]+
sizeof(int))*shape[2]);
22764 size_t length1val=shape[2];
22765 size_t item_size2valkey=shape[3];
22766 size_t valuelen2valkey;
22767 size_t item_size2valval=
sizeof(int);
22768 size_t total_item_size1val=item_size2valkey+item_size2valval;
22769 size_t total_item_size0=item_size1key+item_size1val;
22770 unsigned int count0=0;
22771 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22772 std::map<std::string, std::map<std::string, int>> fixed_val0;
22773 unsigned int pad_count0=0;
22774 for(;it0!=val0.end();++it0){
22775 std::string child1key=std::string(it0->first,0,item_size1key);
22776 std::map<std::string, int> child1val;
22777 unsigned int pad_count1val=0;
22778 std::map<std::string, int>::iterator it1val=it0->second.begin();
22779 for(;it1val!=it0->second.end();++it1val){
22780 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
22781 child1val[child2valkey] = it1val->second;
22785 fixed_val0[child1key] = child1val;
22790 hasher_.
Update(fixed_val0);
22795 hvl_t buf0 = VLValToBuf(fixed_val0);
22802void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22803 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22806 size_t item_size1val=((shape[3]+
sizeof(int))*shape[2]);
22807 size_t length1val=shape[2];
22808 size_t item_size2valkey=shape[3];
22809 size_t valuelen2valkey;
22810 size_t item_size2valval=
sizeof(int);
22811 size_t total_item_size1val=item_size2valkey+item_size2valval;
22812 size_t total_item_size0=item_size1key+item_size1val;
22813 unsigned int count0=0;
22814 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22815 std::map<std::string, std::map<std::string, int>> fixed_val0;
22816 unsigned int pad_count0=0;
22817 for(;it0!=val0.end();++it0){
22818 std::map<std::string, int> child1val;
22819 unsigned int pad_count1val=0;
22820 std::map<std::string, int>::iterator it1val=it0->second.begin();
22821 for(;it1val!=it0->second.end();++it1val){
22822 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
22823 child1val[child2valkey] = it1val->second;
22827 fixed_val0[it0->first] = child1val;
22832 hasher_.
Update(fixed_val0);
22837 hvl_t buf0 = VLValToBuf(fixed_val0);
22844void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22845 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22847 size_t item_size1key=shape[1];
22848 size_t valuelen1key;
22850 size_t item_size2valkey=shape[3];
22851 size_t valuelen2valkey;
22852 size_t item_size2valval=
sizeof(int);
22853 size_t total_item_size1val=item_size2valkey+item_size2valval;
22854 size_t total_item_size0=item_size1key+item_size1val;
22855 unsigned int count0=0;
22856 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22857 std::map<std::string, std::map<std::string, int>> fixed_val0;
22858 unsigned int pad_count0=0;
22859 for(;it0!=val0.end();++it0){
22860 std::string child1key=std::string(it0->first,0,item_size1key);
22861 std::map<std::string, int> child1val;
22862 unsigned int pad_count1val=0;
22863 std::map<std::string, int>::iterator it1val=it0->second.begin();
22864 for(;it1val!=it0->second.end();++it1val){
22865 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
22866 child1val[child2valkey] = it1val->second;
22870 fixed_val0[child1key] = child1val;
22875 hasher_.
Update(fixed_val0);
22880 hvl_t buf0 = VLValToBuf(fixed_val0);
22887void Hdf5Back::WriteToBuf<VL_MAP_STRING_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22888 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22890 size_t item_size1key=shape[1];
22891 size_t valuelen1key;
22893 size_t length1val=shape[2];
22895 size_t item_size2valval=
sizeof(int);
22896 size_t total_item_size1val=item_size2valkey+item_size2valval;
22897 size_t total_item_size0=item_size1key+item_size1val;
22898 unsigned int count0=0;
22899 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22900 std::map<std::string, std::map<std::string, int>> fixed_val0;
22901 unsigned int pad_count0=0;
22902 for(;it0!=val0.end();++it0){
22903 std::string child1key=std::string(it0->first,0,item_size1key);
22904 std::map<std::string, int> child1val;
22905 unsigned int pad_count1val=0;
22906 std::map<std::string, int>::iterator it1val=it0->second.begin();
22907 for(;it1val!=it0->second.end();++it1val){
22908 child1val[it1val->first] = it1val->second;
22912 fixed_val0[child1key] = child1val;
22917 hasher_.
Update(fixed_val0);
22922 hvl_t buf0 = VLValToBuf(fixed_val0);
22929void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22930 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22932 size_t item_size1key=shape[1];
22933 size_t valuelen1key;
22936 size_t item_size2valval=
sizeof(int);
22937 size_t total_item_size1val=item_size2valkey+item_size2valval;
22938 size_t total_item_size0=item_size1key+item_size1val;
22939 unsigned int count0=0;
22940 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22941 std::map<std::string, std::map<std::string, int>> fixed_val0;
22942 unsigned int pad_count0=0;
22943 for(;it0!=val0.end();++it0){
22944 std::string child1key=std::string(it0->first,0,item_size1key);
22945 fixed_val0[child1key] = it0->second;
22950 hasher_.
Update(fixed_val0);
22955 hvl_t buf0 = VLValToBuf(fixed_val0);
22962void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
22963 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
22967 size_t length1val=shape[2];
22969 size_t item_size2valval=
sizeof(int);
22970 size_t total_item_size1val=item_size2valkey+item_size2valval;
22971 size_t total_item_size0=item_size1key+item_size1val;
22972 unsigned int count0=0;
22973 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
22974 std::map<std::string, std::map<std::string, int>> fixed_val0;
22975 unsigned int pad_count0=0;
22976 for(;it0!=val0.end();++it0){
22977 std::map<std::string, int> child1val;
22978 unsigned int pad_count1val=0;
22979 std::map<std::string, int>::iterator it1val=it0->second.begin();
22980 for(;it1val!=it0->second.end();++it1val){
22981 child1val[it1val->first] = it1val->second;
22985 fixed_val0[it0->first] = child1val;
22990 hasher_.
Update(fixed_val0);
22995 hvl_t buf0 = VLValToBuf(fixed_val0);
23002void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_MAP_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23003 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
23007 size_t item_size2valkey=shape[3];
23008 size_t valuelen2valkey;
23009 size_t item_size2valval=
sizeof(int);
23010 size_t total_item_size1val=item_size2valkey+item_size2valval;
23011 size_t total_item_size0=item_size1key+item_size1val;
23012 unsigned int count0=0;
23013 std::map<std::string, std::map<std::string, int>>::iterator it0=val0.begin();
23014 std::map<std::string, std::map<std::string, int>> fixed_val0;
23015 unsigned int pad_count0=0;
23016 for(;it0!=val0.end();++it0){
23017 std::map<std::string, int> child1val;
23018 unsigned int pad_count1val=0;
23019 std::map<std::string, int>::iterator it1val=it0->second.begin();
23020 for(;it1val!=it0->second.end();++it1val){
23021 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
23022 child1val[child2valkey] = it1val->second;
23026 fixed_val0[it0->first] = child1val;
23031 hasher_.
Update(fixed_val0);
23036 hvl_t buf0 = VLValToBuf(fixed_val0);
23043void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_MAP_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23044 std::map<std::string, std::map<std::string, int>> val0=a->
cast<std::map<std::string, std::map<std::string, int>>>();
23049 size_t item_size2valval=
sizeof(int);
23050 size_t total_item_size1val=item_size2valkey+item_size2valval;
23051 size_t total_item_size0=item_size1key+item_size1val;
23058 hvl_t buf0 = VLValToBuf(val0);
23065void Hdf5Back::WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23066 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23067 size_t item_size0=((((((
sizeof(double)+
sizeof(
double)))+((shape[6]+
sizeof(double))*shape[5]))))*shape[0]);
23068 size_t length0=shape[0];
23069 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+((shape[6]+
sizeof(double))*shape[5])));
23070 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23071 size_t item_size3elemfirstfirst=
sizeof(double);
23072 size_t item_size3elemfirstsecond=
sizeof(double);
23073 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23074 size_t item_size2elemsecond=((shape[6]+
sizeof(double))*shape[5]);
23075 size_t length2elemsecond=shape[5];
23076 size_t item_size3elemsecondkey=shape[6];
23077 size_t valuelen3elemsecondkey;
23078 size_t item_size3elemsecondval=
sizeof(double);
23079 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23080 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23081 size_t total_item_size0=item_size1elem;
23082 if(total_item_size0*val0.size()>column){
23083 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator eraseit=val0.begin();
23084 std::advance(eraseit, column/total_item_size0);
23085 val0.erase(eraseit,val0.end());
23088 unsigned int count0=0;
23089 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23090 for(;it0!=val0.end();++it0){
23091 unsigned int count1elem=0;
23092 unsigned int count2elemfirst=0;
23093 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0, &(it0->first.first), item_size3elemfirstfirst);
23094 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0+item_size3elemfirstfirst, &(it0->first.second), item_size3elemfirstsecond);
23095 unsigned int count2elemsecond=0;
23096 std::map<std::string, double>::iterator it2elemsecond=it0->second.begin();
23097 for(;it2elemsecond!=it0->second.end();++it2elemsecond){
23098 valuelen3elemsecondkey=std::min(it2elemsecond->first.size(), item_size3elemsecondkey);
23099 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0, it2elemsecond->first.c_str(), valuelen3elemsecondkey);
23100 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+valuelen3elemsecondkey, 0, item_size3elemsecondkey-valuelen3elemsecondkey);
23101 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondkey, &(it2elemsecond->second), item_size3elemsecondval);
23102 ++count2elemsecond;
23105 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+total_item_size2elemsecond*count2elemsecond, 0, total_item_size2elemsecond*(length2elemsecond-count2elemsecond));
23109 if(total_item_size0*length0<column){
23110 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23115void Hdf5Back::WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23116 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23117 size_t item_size0=((((((
sizeof(double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[5]))))*shape[0]);
23118 size_t length0=shape[0];
23119 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[5])));
23120 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23121 size_t item_size3elemfirstfirst=
sizeof(double);
23122 size_t item_size3elemfirstsecond=
sizeof(double);
23123 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23125 size_t length2elemsecond=shape[5];
23127 size_t item_size3elemsecondval=
sizeof(double);
23128 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23129 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23130 size_t total_item_size0=item_size1elem;
23131 if(total_item_size0*val0.size()>column){
23132 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator eraseit=val0.begin();
23133 std::advance(eraseit, column/total_item_size0);
23134 val0.erase(eraseit,val0.end());
23137 unsigned int count0=0;
23138 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23139 for(;it0!=val0.end();++it0){
23140 unsigned int count1elem=0;
23141 unsigned int count2elemfirst=0;
23142 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0, &(it0->first.first), item_size3elemfirstfirst);
23143 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0+item_size3elemfirstfirst, &(it0->first.second), item_size3elemfirstsecond);
23144 unsigned int count2elemsecond=0;
23145 std::map<std::string, double>::iterator it2elemsecond=it0->second.begin();
23146 for(;it2elemsecond!=it0->second.end();++it2elemsecond){
23148 hasher_.
Update(it2elemsecond->first);
23150 hid_t keysds3elemsecondkey = VLDataset(
VL_STRING,
true);
23151 hid_t valsds3elemsecondkey = VLDataset(
VL_STRING,
false);
23152 if (vlkeys_[
VL_STRING].count(key3elemsecondkey) != 1) {
23153 AppendVLKey(keysds3elemsecondkey,
VL_STRING, key3elemsecondkey);
23154 InsertVLVal(valsds3elemsecondkey,
VL_STRING, key3elemsecondkey, it2elemsecond->first);
23156 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0, key3elemsecondkey.data(),
CYCLUS_SHA1_SIZE);
23157 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondkey, &(it2elemsecond->second), item_size3elemsecondval);
23158 ++count2elemsecond;
23161 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+total_item_size2elemsecond*count2elemsecond, 0, total_item_size2elemsecond*(length2elemsecond-count2elemsecond));
23165 if(total_item_size0*length0<column){
23166 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23171void Hdf5Back::WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23172 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23173 size_t item_size0=((((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE))))*shape[0]);
23174 size_t length0=shape[0];
23175 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE)));
23176 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23177 size_t item_size3elemfirstfirst=
sizeof(double);
23178 size_t item_size3elemfirstsecond=
sizeof(double);
23179 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23181 size_t item_size3elemsecondkey=shape[6];
23182 size_t valuelen3elemsecondkey;
23183 size_t item_size3elemsecondval=
sizeof(double);
23184 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23185 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23186 size_t total_item_size0=item_size1elem;
23187 if(total_item_size0*val0.size()>column){
23188 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator eraseit=val0.begin();
23189 std::advance(eraseit, column/total_item_size0);
23190 val0.erase(eraseit,val0.end());
23193 unsigned int count0=0;
23194 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23195 for(;it0!=val0.end();++it0){
23196 unsigned int count1elem=0;
23197 unsigned int count2elemfirst=0;
23198 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0, &(it0->first.first), item_size3elemfirstfirst);
23199 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0+item_size3elemfirstfirst, &(it0->first.second), item_size3elemfirstsecond);
23200 unsigned int count2elemsecond=0;
23201 std::map<std::string, double>::iterator it2elemsecond=it0->second.begin();
23202 std::map<std::string, double> fixed_val2elemsecond;
23203 unsigned int pad_count2elemsecond=0;
23204 for(;it2elemsecond!=it0->second.end();++it2elemsecond){
23205 std::string child3elemsecondkey=std::string(it2elemsecond->first,0,item_size3elemsecondkey);
23206 fixed_val2elemsecond[child3elemsecondkey] = it2elemsecond->second;
23207 ++pad_count2elemsecond;
23211 hasher_.
Update(fixed_val2elemsecond);
23216 hvl_t buf2elemsecond = VLValToBuf(fixed_val2elemsecond);
23220 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst, key2elemsecond.data(),
CYCLUS_SHA1_SIZE);
23224 if(total_item_size0*length0<column){
23225 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23230void Hdf5Back::WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23231 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23232 size_t item_size0=((((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE))))*shape[0]);
23233 size_t length0=shape[0];
23234 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE)));
23235 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23236 size_t item_size3elemfirstfirst=
sizeof(double);
23237 size_t item_size3elemfirstsecond=
sizeof(double);
23238 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23241 size_t item_size3elemsecondval=
sizeof(double);
23242 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23243 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23244 size_t total_item_size0=item_size1elem;
23245 if(total_item_size0*val0.size()>column){
23246 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator eraseit=val0.begin();
23247 std::advance(eraseit, column/total_item_size0);
23248 val0.erase(eraseit,val0.end());
23251 unsigned int count0=0;
23252 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23253 for(;it0!=val0.end();++it0){
23254 unsigned int count1elem=0;
23255 unsigned int count2elemfirst=0;
23256 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0, &(it0->first.first), item_size3elemfirstfirst);
23257 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+(count2elemfirst*total_item_size2elemfirst)+0+item_size3elemfirstfirst, &(it0->first.second), item_size3elemfirstsecond);
23259 hasher_.
Update(it0->second);
23264 hvl_t buf2elemsecond = VLValToBuf(it0->second);
23268 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst, key2elemsecond.data(),
CYCLUS_SHA1_SIZE);
23272 if(total_item_size0*length0<column){
23273 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23278void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23279 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23281 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+((shape[6]+
sizeof(double))*shape[5])));
23282 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23283 size_t item_size3elemfirstfirst=
sizeof(double);
23284 size_t item_size3elemfirstsecond=
sizeof(double);
23285 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23286 size_t item_size2elemsecond=((shape[6]+
sizeof(double))*shape[5]);
23287 size_t length2elemsecond=shape[5];
23288 size_t item_size3elemsecondkey=shape[6];
23289 size_t valuelen3elemsecondkey;
23290 size_t item_size3elemsecondval=
sizeof(double);
23291 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23292 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23293 size_t total_item_size0=item_size1elem;
23294 unsigned int count0=0;
23295 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23296 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> fixed_val0;
23297 unsigned int pad_count0=0;
23298 for(;it0!=val0.end();++it0){
23299 std::pair<std::pair<double, double>, std::map<std::string, double>> child1elem;
23300 unsigned int pad_count1elem=0;
23301 std::pair<double, double> child2elemfirst;
23302 unsigned int pad_count2elemfirst=0;
23303 child2elemfirst = std::make_pair((*it0).first.first,(*it0).first.second);
23304 std::map<std::string, double> child2elemsecond;
23305 unsigned int pad_count2elemsecond=0;
23306 std::map<std::string, double>::iterator it2elemsecond=(*it0).second.begin();
23307 for(;it2elemsecond!=(*it0).second.end();++it2elemsecond){
23308 std::string child3elemsecondkey=std::string(it2elemsecond->first,0,item_size3elemsecondkey);
23309 child2elemsecond[child3elemsecondkey] = it2elemsecond->second;
23310 ++pad_count2elemsecond;
23313 child1elem = std::make_pair(child2elemfirst,child2elemsecond);
23314 fixed_val0.push_back(child1elem);
23319 hasher_.
Update(fixed_val0);
23324 hvl_t buf0 = VLValToBuf(fixed_val0);
23331void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23332 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23334 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[5])));
23335 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23336 size_t item_size3elemfirstfirst=
sizeof(double);
23337 size_t item_size3elemfirstsecond=
sizeof(double);
23338 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23340 size_t length2elemsecond=shape[5];
23342 size_t item_size3elemsecondval=
sizeof(double);
23343 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23344 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23345 size_t total_item_size0=item_size1elem;
23346 unsigned int count0=0;
23347 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23348 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> fixed_val0;
23349 unsigned int pad_count0=0;
23350 for(;it0!=val0.end();++it0){
23351 std::pair<std::pair<double, double>, std::map<std::string, double>> child1elem;
23352 unsigned int pad_count1elem=0;
23353 std::pair<double, double> child2elemfirst;
23354 unsigned int pad_count2elemfirst=0;
23355 child2elemfirst = std::make_pair((*it0).first.first,(*it0).first.second);
23356 std::map<std::string, double> child2elemsecond;
23357 unsigned int pad_count2elemsecond=0;
23358 std::map<std::string, double>::iterator it2elemsecond=(*it0).second.begin();
23359 for(;it2elemsecond!=(*it0).second.end();++it2elemsecond){
23360 child2elemsecond[it2elemsecond->first] = it2elemsecond->second;
23361 ++pad_count2elemsecond;
23364 child1elem = std::make_pair(child2elemfirst,child2elemsecond);
23365 fixed_val0.push_back(child1elem);
23370 hasher_.
Update(fixed_val0);
23375 hvl_t buf0 = VLValToBuf(fixed_val0);
23382void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23383 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23385 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE)));
23386 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23387 size_t item_size3elemfirstfirst=
sizeof(double);
23388 size_t item_size3elemfirstsecond=
sizeof(double);
23389 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23391 size_t item_size3elemsecondkey=shape[6];
23392 size_t valuelen3elemsecondkey;
23393 size_t item_size3elemsecondval=
sizeof(double);
23394 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23395 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23396 size_t total_item_size0=item_size1elem;
23397 unsigned int count0=0;
23398 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::iterator it0=val0.begin();
23399 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> fixed_val0;
23400 unsigned int pad_count0=0;
23401 for(;it0!=val0.end();++it0){
23402 std::pair<std::pair<double, double>, std::map<std::string, double>> child1elem;
23403 unsigned int pad_count1elem=0;
23404 std::pair<double, double> child2elemfirst;
23405 unsigned int pad_count2elemfirst=0;
23406 child2elemfirst = std::make_pair((*it0).first.first,(*it0).first.second);
23407 std::map<std::string, double> child2elemsecond;
23408 unsigned int pad_count2elemsecond=0;
23409 std::map<std::string, double>::iterator it2elemsecond=(*it0).second.begin();
23410 for(;it2elemsecond!=(*it0).second.end();++it2elemsecond){
23411 std::string child3elemsecondkey=std::string(it2elemsecond->first,0,item_size3elemsecondkey);
23412 child2elemsecond[child3elemsecondkey] = it2elemsecond->second;
23413 ++pad_count2elemsecond;
23416 child1elem = std::make_pair(child2elemfirst,child2elemsecond);
23417 fixed_val0.push_back(child1elem);
23422 hasher_.
Update(fixed_val0);
23427 hvl_t buf0 = VLValToBuf(fixed_val0);
23434void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23435 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> val0=a->
cast<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>();
23437 size_t item_size1elem=((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE)));
23438 size_t item_size2elemfirst=((
sizeof(double)+
sizeof(
double)));
23439 size_t item_size3elemfirstfirst=
sizeof(double);
23440 size_t item_size3elemfirstsecond=
sizeof(double);
23441 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
23444 size_t item_size3elemsecondval=
sizeof(double);
23445 size_t total_item_size2elemsecond=item_size3elemsecondkey+item_size3elemsecondval;
23446 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23447 size_t total_item_size0=item_size1elem;
23454 hvl_t buf0 = VLValToBuf(val0);
23461void Hdf5Back::WriteToBuf<PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23462 std::pair<int, std::pair<std::string, std::string>> val0=a->
cast<std::pair<int, std::pair<std::string, std::string>>>();
23463 size_t item_size0=((
sizeof(int)+((shape[3]+shape[4]))));
23464 size_t item_size1first=
sizeof(int);
23465 size_t item_size1second=((shape[3]+shape[4]));
23466 size_t item_size2secondfirst=shape[3];
23467 size_t valuelen2secondfirst;
23468 size_t item_size2secondsecond=shape[4];
23469 size_t valuelen2secondsecond;
23470 size_t total_item_size1second=item_size2secondfirst+item_size2secondsecond;
23471 size_t total_item_size0=item_size1first+item_size1second;
23472 unsigned int count0=0;
23473 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23474 unsigned int count1second=0;
23475 valuelen2secondfirst=std::min(val0.second.first.size(), item_size2secondfirst);
23476 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, val0.second.first.c_str(), valuelen2secondfirst);
23477 memset(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+valuelen2secondfirst, 0, item_size2secondfirst-valuelen2secondfirst);
23478 valuelen2secondsecond=std::min(val0.second.second.size(), item_size2secondsecond);
23479 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondfirst, val0.second.second.c_str(), valuelen2secondsecond);
23480 memset(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondfirst+valuelen2secondsecond, 0, item_size2secondsecond-valuelen2secondsecond);
23483void Hdf5Back::WriteToBuf<PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23484 std::pair<int, std::pair<std::string, std::string>> val0=a->
cast<std::pair<int, std::pair<std::string, std::string>>>();
23486 size_t item_size1first=
sizeof(int);
23489 size_t item_size2secondsecond=shape[4];
23490 size_t valuelen2secondsecond;
23491 size_t total_item_size1second=item_size2secondfirst+item_size2secondsecond;
23492 size_t total_item_size0=item_size1first+item_size1second;
23493 unsigned int count0=0;
23494 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23495 unsigned int count1second=0;
23497 hasher_.
Update(val0.second.first);
23499 hid_t keysds2secondfirst = VLDataset(
VL_STRING,
true);
23500 hid_t valsds2secondfirst = VLDataset(
VL_STRING,
false);
23501 if (vlkeys_[
VL_STRING].count(key2secondfirst) != 1) {
23502 AppendVLKey(keysds2secondfirst,
VL_STRING, key2secondfirst);
23503 InsertVLVal(valsds2secondfirst,
VL_STRING, key2secondfirst, val0.second.first);
23505 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, key2secondfirst.data(),
CYCLUS_SHA1_SIZE);
23506 valuelen2secondsecond=std::min(val0.second.second.size(), item_size2secondsecond);
23507 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondfirst, val0.second.second.c_str(), valuelen2secondsecond);
23508 memset(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondfirst+valuelen2secondsecond, 0, item_size2secondsecond-valuelen2secondsecond);
23511void Hdf5Back::WriteToBuf<PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23512 std::pair<int, std::pair<std::string, std::string>> val0=a->
cast<std::pair<int, std::pair<std::string, std::string>>>();
23514 size_t item_size1first=
sizeof(int);
23516 size_t item_size2secondfirst=shape[3];
23517 size_t valuelen2secondfirst;
23519 size_t total_item_size1second=item_size2secondfirst+item_size2secondsecond;
23520 size_t total_item_size0=item_size1first+item_size1second;
23521 unsigned int count0=0;
23522 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23523 unsigned int count1second=0;
23524 valuelen2secondfirst=std::min(val0.second.first.size(), item_size2secondfirst);
23525 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, val0.second.first.c_str(), valuelen2secondfirst);
23526 memset(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+valuelen2secondfirst, 0, item_size2secondfirst-valuelen2secondfirst);
23528 hasher_.
Update(val0.second.second);
23530 hid_t keysds2secondsecond = VLDataset(
VL_STRING,
true);
23531 hid_t valsds2secondsecond = VLDataset(
VL_STRING,
false);
23532 if (vlkeys_[
VL_STRING].count(key2secondsecond) != 1) {
23533 AppendVLKey(keysds2secondsecond,
VL_STRING, key2secondsecond);
23534 InsertVLVal(valsds2secondsecond,
VL_STRING, key2secondsecond, val0.second.second);
23536 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondfirst, key2secondsecond.data(),
CYCLUS_SHA1_SIZE);
23539void Hdf5Back::WriteToBuf<PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23540 std::pair<int, std::pair<std::string, std::string>> val0=a->
cast<std::pair<int, std::pair<std::string, std::string>>>();
23542 size_t item_size1first=
sizeof(int);
23546 size_t total_item_size1second=item_size2secondfirst+item_size2secondsecond;
23547 size_t total_item_size0=item_size1first+item_size1second;
23548 unsigned int count0=0;
23549 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23550 unsigned int count1second=0;
23552 hasher_.
Update(val0.second.first);
23554 hid_t keysds2secondfirst = VLDataset(
VL_STRING,
true);
23555 hid_t valsds2secondfirst = VLDataset(
VL_STRING,
false);
23556 if (vlkeys_[
VL_STRING].count(key2secondfirst) != 1) {
23557 AppendVLKey(keysds2secondfirst,
VL_STRING, key2secondfirst);
23558 InsertVLVal(valsds2secondfirst,
VL_STRING, key2secondfirst, val0.second.first);
23560 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, key2secondfirst.data(),
CYCLUS_SHA1_SIZE);
23562 hasher_.
Update(val0.second.second);
23564 hid_t keysds2secondsecond = VLDataset(
VL_STRING,
true);
23565 hid_t valsds2secondsecond = VLDataset(
VL_STRING,
false);
23566 if (vlkeys_[
VL_STRING].count(key2secondsecond) != 1) {
23567 AppendVLKey(keysds2secondsecond,
VL_STRING, key2secondsecond);
23568 InsertVLVal(valsds2secondsecond,
VL_STRING, key2secondsecond, val0.second.second);
23570 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondfirst, key2secondsecond.data(),
CYCLUS_SHA1_SIZE);
23573void Hdf5Back::WriteToBuf<PAIR_DOUBLE_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23574 std::pair<double, double> val0=a->
cast<std::pair<double, double>>();
23575 size_t item_size0=((
sizeof(double)+
sizeof(
double)));
23576 size_t item_size1first=
sizeof(double);
23577 size_t item_size1second=
sizeof(double);
23578 size_t total_item_size0=item_size1first+item_size1second;
23579 unsigned int count0=0;
23580 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23581 memcpy(buf+(count0*total_item_size0)+0+item_size1first, &(val0.second), item_size1second);
23584void Hdf5Back::WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23585 std::pair<std::pair<double, double>, std::map<std::string, double>> val0=a->
cast<std::pair<std::pair<double, double>, std::map<std::string, double>>>();
23586 size_t item_size0=((((
sizeof(double)+
sizeof(
double)))+((shape[5]+
sizeof(double))*shape[4])));
23587 size_t item_size1first=((
sizeof(double)+
sizeof(
double)));
23588 size_t item_size2firstfirst=
sizeof(double);
23589 size_t item_size2firstsecond=
sizeof(double);
23590 size_t total_item_size1first=item_size2firstfirst+item_size2firstsecond;
23591 size_t item_size1second=((shape[5]+
sizeof(double))*shape[4]);
23592 size_t length1second=shape[4];
23593 size_t item_size2secondkey=shape[5];
23594 size_t valuelen2secondkey;
23595 size_t item_size2secondval=
sizeof(double);
23596 size_t total_item_size1second=item_size2secondkey+item_size2secondval;
23597 size_t total_item_size0=item_size1first+item_size1second;
23598 unsigned int count0=0;
23599 unsigned int count1first=0;
23600 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0, &(val0.first.first), item_size2firstfirst);
23601 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0+item_size2firstfirst, &(val0.first.second), item_size2firstsecond);
23602 unsigned int count1second=0;
23603 std::map<std::string, double>::iterator it1second=val0.second.begin();
23604 for(;it1second!=val0.second.end();++it1second){
23605 valuelen2secondkey=std::min(it1second->first.size(), item_size2secondkey);
23606 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, it1second->first.c_str(), valuelen2secondkey);
23607 memset(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+valuelen2secondkey, 0, item_size2secondkey-valuelen2secondkey);
23608 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondkey, &(it1second->second), item_size2secondval);
23612 memset(buf+(count0*total_item_size0)+0+item_size1first+total_item_size1second*count1second, 0, total_item_size1second*(length1second-count1second));
23615void Hdf5Back::WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23616 std::pair<std::pair<double, double>, std::map<std::string, double>> val0=a->
cast<std::pair<std::pair<double, double>, std::map<std::string, double>>>();
23617 size_t item_size0=((((
sizeof(double)+
sizeof(
double)))+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[4])));
23618 size_t item_size1first=((
sizeof(double)+
sizeof(
double)));
23619 size_t item_size2firstfirst=
sizeof(double);
23620 size_t item_size2firstsecond=
sizeof(double);
23621 size_t total_item_size1first=item_size2firstfirst+item_size2firstsecond;
23623 size_t length1second=shape[4];
23625 size_t item_size2secondval=
sizeof(double);
23626 size_t total_item_size1second=item_size2secondkey+item_size2secondval;
23627 size_t total_item_size0=item_size1first+item_size1second;
23628 unsigned int count0=0;
23629 unsigned int count1first=0;
23630 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0, &(val0.first.first), item_size2firstfirst);
23631 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0+item_size2firstfirst, &(val0.first.second), item_size2firstsecond);
23632 unsigned int count1second=0;
23633 std::map<std::string, double>::iterator it1second=val0.second.begin();
23634 for(;it1second!=val0.second.end();++it1second){
23636 hasher_.
Update(it1second->first);
23638 hid_t keysds2secondkey = VLDataset(
VL_STRING,
true);
23639 hid_t valsds2secondkey = VLDataset(
VL_STRING,
false);
23640 if (vlkeys_[
VL_STRING].count(key2secondkey) != 1) {
23641 AppendVLKey(keysds2secondkey,
VL_STRING, key2secondkey);
23642 InsertVLVal(valsds2secondkey,
VL_STRING, key2secondkey, it1second->first);
23644 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, key2secondkey.data(),
CYCLUS_SHA1_SIZE);
23645 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondkey, &(it1second->second), item_size2secondval);
23649 memset(buf+(count0*total_item_size0)+0+item_size1first+total_item_size1second*count1second, 0, total_item_size1second*(length1second-count1second));
23652void Hdf5Back::WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23653 std::pair<std::pair<double, double>, std::map<std::string, double>> val0=a->
cast<std::pair<std::pair<double, double>, std::map<std::string, double>>>();
23654 size_t item_size0=((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE)));
23655 size_t item_size1first=((
sizeof(double)+
sizeof(
double)));
23656 size_t item_size2firstfirst=
sizeof(double);
23657 size_t item_size2firstsecond=
sizeof(double);
23658 size_t total_item_size1first=item_size2firstfirst+item_size2firstsecond;
23660 size_t item_size2secondkey=shape[5];
23661 size_t valuelen2secondkey;
23662 size_t item_size2secondval=
sizeof(double);
23663 size_t total_item_size1second=item_size2secondkey+item_size2secondval;
23664 size_t total_item_size0=item_size1first+item_size1second;
23665 unsigned int count0=0;
23666 unsigned int count1first=0;
23667 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0, &(val0.first.first), item_size2firstfirst);
23668 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0+item_size2firstfirst, &(val0.first.second), item_size2firstsecond);
23669 unsigned int count1second=0;
23670 std::map<std::string, double>::iterator it1second=val0.second.begin();
23671 std::map<std::string, double> fixed_val1second;
23672 unsigned int pad_count1second=0;
23673 for(;it1second!=val0.second.end();++it1second){
23674 std::string child2secondkey=std::string(it1second->first,0,item_size2secondkey);
23675 fixed_val1second[child2secondkey] = it1second->second;
23676 ++pad_count1second;
23680 hasher_.
Update(fixed_val1second);
23685 hvl_t buf1second = VLValToBuf(fixed_val1second);
23692void Hdf5Back::WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23693 std::pair<std::pair<double, double>, std::map<std::string, double>> val0=a->
cast<std::pair<std::pair<double, double>, std::map<std::string, double>>>();
23694 size_t item_size0=((((
sizeof(double)+
sizeof(
double)))+(
CYCLUS_SHA1_SIZE)));
23695 size_t item_size1first=((
sizeof(double)+
sizeof(
double)));
23696 size_t item_size2firstfirst=
sizeof(double);
23697 size_t item_size2firstsecond=
sizeof(double);
23698 size_t total_item_size1first=item_size2firstfirst+item_size2firstsecond;
23701 size_t item_size2secondval=
sizeof(double);
23702 size_t total_item_size1second=item_size2secondkey+item_size2secondval;
23703 size_t total_item_size0=item_size1first+item_size1second;
23704 unsigned int count0=0;
23705 unsigned int count1first=0;
23706 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0, &(val0.first.first), item_size2firstfirst);
23707 memcpy(buf+(count0*total_item_size0)+0+(count1first*total_item_size1first)+0+item_size2firstfirst, &(val0.first.second), item_size2firstsecond);
23709 hasher_.
Update(val0.second);
23714 hvl_t buf1second = VLValToBuf(val0.second);
23721void Hdf5Back::WriteToBuf<PAIR_DOUBLE_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23722 std::pair<double, std::map<int, double>> val0=a->
cast<std::pair<double, std::map<int, double>>>();
23723 size_t item_size0=((
sizeof(double)+((
sizeof(
int)+
sizeof(double))*shape[2])));
23724 size_t item_size1first=
sizeof(double);
23725 size_t item_size1second=((
sizeof(int)+
sizeof(
double))*shape[2]);
23726 size_t length1second=shape[2];
23727 size_t item_size2secondkey=
sizeof(int);
23728 size_t item_size2secondval=
sizeof(double);
23729 size_t total_item_size1second=item_size2secondkey+item_size2secondval;
23730 size_t total_item_size0=item_size1first+item_size1second;
23731 unsigned int count0=0;
23732 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23733 unsigned int count1second=0;
23734 std::map<int, double>::iterator it1second=val0.second.begin();
23735 for(;it1second!=val0.second.end();++it1second){
23736 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0, &(it1second->first), item_size2secondkey);
23737 memcpy(buf+(count0*total_item_size0)+0+item_size1first+(count1second*total_item_size1second)+0+item_size2secondkey, &(it1second->second), item_size2secondval);
23741 memset(buf+(count0*total_item_size0)+0+item_size1first+total_item_size1second*count1second, 0, total_item_size1second*(length1second-count1second));
23744void Hdf5Back::WriteToBuf<PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23745 std::pair<double, std::map<int, double>> val0=a->
cast<std::pair<double, std::map<int, double>>>();
23747 size_t item_size1first=
sizeof(double);
23749 size_t item_size2secondkey=
sizeof(int);
23750 size_t item_size2secondval=
sizeof(double);
23751 size_t total_item_size1second=item_size2secondkey+item_size2secondval;
23752 size_t total_item_size0=item_size1first+item_size1second;
23753 unsigned int count0=0;
23754 memcpy(buf+(count0*total_item_size0)+0, &(val0.first), item_size1first);
23756 hasher_.
Update(val0.second);
23761 hvl_t buf1second = VLValToBuf(val0.second);
23768void Hdf5Back::WriteToBuf<VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23769 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
23770 size_t item_size0=((((
sizeof(int)+((shape[4]+shape[5])))))*shape[0]);
23771 size_t length0=shape[0];
23772 size_t item_size1elem=((
sizeof(int)+((shape[4]+shape[5]))));
23773 size_t item_size2elemfirst=
sizeof(int);
23774 size_t item_size2elemsecond=((shape[4]+shape[5]));
23775 size_t item_size3elemsecondfirst=shape[4];
23776 size_t valuelen3elemsecondfirst;
23777 size_t item_size3elemsecondsecond=shape[5];
23778 size_t valuelen3elemsecondsecond;
23779 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
23780 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23781 size_t total_item_size0=item_size1elem;
23782 if(total_item_size0*val0.size()>column){
23783 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator eraseit=val0.begin();
23784 std::advance(eraseit, column/total_item_size0);
23785 val0.erase(eraseit,val0.end());
23788 unsigned int count0=0;
23789 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
23790 for(;it0!=val0.end();++it0){
23791 unsigned int count1elem=0;
23792 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0, &(it0->first), item_size2elemfirst);
23793 unsigned int count2elemsecond=0;
23794 valuelen3elemsecondfirst=std::min(it0->second.first.size(), item_size3elemsecondfirst);
23795 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0, it0->second.first.c_str(), valuelen3elemsecondfirst);
23796 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+valuelen3elemsecondfirst, 0, item_size3elemsecondfirst-valuelen3elemsecondfirst);
23797 valuelen3elemsecondsecond=std::min(it0->second.second.size(), item_size3elemsecondsecond);
23798 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondfirst, it0->second.second.c_str(), valuelen3elemsecondsecond);
23799 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondfirst+valuelen3elemsecondsecond, 0, item_size3elemsecondsecond-valuelen3elemsecondsecond);
23803 if(total_item_size0*length0<column){
23804 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23809void Hdf5Back::WriteToBuf<VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23810 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
23811 size_t item_size0=((((
sizeof(int)+((
CYCLUS_SHA1_SIZE+shape[5])))))*shape[0]);
23812 size_t length0=shape[0];
23814 size_t item_size2elemfirst=
sizeof(int);
23817 size_t item_size3elemsecondsecond=shape[5];
23818 size_t valuelen3elemsecondsecond;
23819 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
23820 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23821 size_t total_item_size0=item_size1elem;
23822 if(total_item_size0*val0.size()>column){
23823 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator eraseit=val0.begin();
23824 std::advance(eraseit, column/total_item_size0);
23825 val0.erase(eraseit,val0.end());
23828 unsigned int count0=0;
23829 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
23830 for(;it0!=val0.end();++it0){
23831 unsigned int count1elem=0;
23832 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0, &(it0->first), item_size2elemfirst);
23833 unsigned int count2elemsecond=0;
23835 hasher_.
Update(it0->second.first);
23837 hid_t keysds3elemsecondfirst = VLDataset(
VL_STRING,
true);
23838 hid_t valsds3elemsecondfirst = VLDataset(
VL_STRING,
false);
23839 if (vlkeys_[
VL_STRING].count(key3elemsecondfirst) != 1) {
23840 AppendVLKey(keysds3elemsecondfirst,
VL_STRING, key3elemsecondfirst);
23841 InsertVLVal(valsds3elemsecondfirst,
VL_STRING, key3elemsecondfirst, it0->second.first);
23843 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0, key3elemsecondfirst.data(),
CYCLUS_SHA1_SIZE);
23844 valuelen3elemsecondsecond=std::min(it0->second.second.size(), item_size3elemsecondsecond);
23845 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondfirst, it0->second.second.c_str(), valuelen3elemsecondsecond);
23846 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondfirst+valuelen3elemsecondsecond, 0, item_size3elemsecondsecond-valuelen3elemsecondsecond);
23850 if(total_item_size0*length0<column){
23851 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23856void Hdf5Back::WriteToBuf<VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23857 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
23858 size_t item_size0=((((
sizeof(int)+((shape[4]+
CYCLUS_SHA1_SIZE)))))*shape[0]);
23859 size_t length0=shape[0];
23861 size_t item_size2elemfirst=
sizeof(int);
23863 size_t item_size3elemsecondfirst=shape[4];
23864 size_t valuelen3elemsecondfirst;
23866 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
23867 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23868 size_t total_item_size0=item_size1elem;
23869 if(total_item_size0*val0.size()>column){
23870 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator eraseit=val0.begin();
23871 std::advance(eraseit, column/total_item_size0);
23872 val0.erase(eraseit,val0.end());
23875 unsigned int count0=0;
23876 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
23877 for(;it0!=val0.end();++it0){
23878 unsigned int count1elem=0;
23879 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0, &(it0->first), item_size2elemfirst);
23880 unsigned int count2elemsecond=0;
23881 valuelen3elemsecondfirst=std::min(it0->second.first.size(), item_size3elemsecondfirst);
23882 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0, it0->second.first.c_str(), valuelen3elemsecondfirst);
23883 memset(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+valuelen3elemsecondfirst, 0, item_size3elemsecondfirst-valuelen3elemsecondfirst);
23885 hasher_.
Update(it0->second.second);
23887 hid_t keysds3elemsecondsecond = VLDataset(
VL_STRING,
true);
23888 hid_t valsds3elemsecondsecond = VLDataset(
VL_STRING,
false);
23889 if (vlkeys_[
VL_STRING].count(key3elemsecondsecond) != 1) {
23890 AppendVLKey(keysds3elemsecondsecond,
VL_STRING, key3elemsecondsecond);
23891 InsertVLVal(valsds3elemsecondsecond,
VL_STRING, key3elemsecondsecond, it0->second.second);
23893 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondfirst, key3elemsecondsecond.data(),
CYCLUS_SHA1_SIZE);
23897 if(total_item_size0*length0<column){
23898 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23903void Hdf5Back::WriteToBuf<VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23904 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
23906 size_t length0=shape[0];
23908 size_t item_size2elemfirst=
sizeof(int);
23912 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
23913 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23914 size_t total_item_size0=item_size1elem;
23915 if(total_item_size0*val0.size()>column){
23916 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator eraseit=val0.begin();
23917 std::advance(eraseit, column/total_item_size0);
23918 val0.erase(eraseit,val0.end());
23921 unsigned int count0=0;
23922 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
23923 for(;it0!=val0.end();++it0){
23924 unsigned int count1elem=0;
23925 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0, &(it0->first), item_size2elemfirst);
23926 unsigned int count2elemsecond=0;
23928 hasher_.
Update(it0->second.first);
23930 hid_t keysds3elemsecondfirst = VLDataset(
VL_STRING,
true);
23931 hid_t valsds3elemsecondfirst = VLDataset(
VL_STRING,
false);
23932 if (vlkeys_[
VL_STRING].count(key3elemsecondfirst) != 1) {
23933 AppendVLKey(keysds3elemsecondfirst,
VL_STRING, key3elemsecondfirst);
23934 InsertVLVal(valsds3elemsecondfirst,
VL_STRING, key3elemsecondfirst, it0->second.first);
23936 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0, key3elemsecondfirst.data(),
CYCLUS_SHA1_SIZE);
23938 hasher_.
Update(it0->second.second);
23940 hid_t keysds3elemsecondsecond = VLDataset(
VL_STRING,
true);
23941 hid_t valsds3elemsecondsecond = VLDataset(
VL_STRING,
false);
23942 if (vlkeys_[
VL_STRING].count(key3elemsecondsecond) != 1) {
23943 AppendVLKey(keysds3elemsecondsecond,
VL_STRING, key3elemsecondsecond);
23944 InsertVLVal(valsds3elemsecondsecond,
VL_STRING, key3elemsecondsecond, it0->second.second);
23946 memcpy(buf+item_size1elem*count0+(count1elem*total_item_size1elem)+0+item_size2elemfirst+(count2elemsecond*total_item_size2elemsecond)+0+item_size3elemsecondfirst, key3elemsecondsecond.data(),
CYCLUS_SHA1_SIZE);
23950 if(total_item_size0*length0<column){
23951 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
23956void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
23957 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
23959 size_t item_size1elem=((
sizeof(int)+((shape[4]+shape[5]))));
23960 size_t item_size2elemfirst=
sizeof(int);
23961 size_t item_size2elemsecond=((shape[4]+shape[5]));
23962 size_t item_size3elemsecondfirst=shape[4];
23963 size_t valuelen3elemsecondfirst;
23964 size_t item_size3elemsecondsecond=shape[5];
23965 size_t valuelen3elemsecondsecond;
23966 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
23967 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
23968 size_t total_item_size0=item_size1elem;
23969 unsigned int count0=0;
23970 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
23971 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val0;
23972 unsigned int pad_count0=0;
23973 for(;it0!=val0.end();++it0){
23974 std::pair<int, std::pair<std::string, std::string>> child1elem;
23975 unsigned int pad_count1elem=0;
23976 std::pair<std::string, std::string> child2elemsecond;
23977 unsigned int pad_count2elemsecond=0;
23978 std::string child3elemsecondfirst=std::string((*it0).second.first,0,item_size3elemsecondfirst);
23979 std::string child3elemsecondsecond=std::string((*it0).second.second,0,item_size3elemsecondsecond);
23980 child2elemsecond = std::make_pair(child3elemsecondfirst,child3elemsecondsecond);
23981 child1elem = std::make_pair((*it0).first,child2elemsecond);
23982 fixed_val0.push_back(child1elem);
23987 hasher_.
Update(fixed_val0);
23992 hvl_t buf0 = VLValToBuf(fixed_val0);
23999void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24000 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
24003 size_t item_size2elemfirst=
sizeof(int);
24006 size_t item_size3elemsecondsecond=shape[5];
24007 size_t valuelen3elemsecondsecond;
24008 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
24009 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
24010 size_t total_item_size0=item_size1elem;
24011 unsigned int count0=0;
24012 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
24013 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val0;
24014 unsigned int pad_count0=0;
24015 for(;it0!=val0.end();++it0){
24016 std::pair<int, std::pair<std::string, std::string>> child1elem;
24017 unsigned int pad_count1elem=0;
24018 std::pair<std::string, std::string> child2elemsecond;
24019 unsigned int pad_count2elemsecond=0;
24020 std::string child3elemsecondsecond=std::string((*it0).second.second,0,item_size3elemsecondsecond);
24021 child2elemsecond = std::make_pair((*it0).second.first,child3elemsecondsecond);
24022 child1elem = std::make_pair((*it0).first,child2elemsecond);
24023 fixed_val0.push_back(child1elem);
24028 hasher_.
Update(fixed_val0);
24033 hvl_t buf0 = VLValToBuf(fixed_val0);
24040void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24041 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
24044 size_t item_size2elemfirst=
sizeof(int);
24046 size_t item_size3elemsecondfirst=shape[4];
24047 size_t valuelen3elemsecondfirst;
24049 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
24050 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
24051 size_t total_item_size0=item_size1elem;
24052 unsigned int count0=0;
24053 std::vector<std::pair<int, std::pair<std::string, std::string>>>::iterator it0=val0.begin();
24054 std::vector<std::pair<int, std::pair<std::string, std::string>>> fixed_val0;
24055 unsigned int pad_count0=0;
24056 for(;it0!=val0.end();++it0){
24057 std::pair<int, std::pair<std::string, std::string>> child1elem;
24058 unsigned int pad_count1elem=0;
24059 std::pair<std::string, std::string> child2elemsecond;
24060 unsigned int pad_count2elemsecond=0;
24061 std::string child3elemsecondfirst=std::string((*it0).second.first,0,item_size3elemsecondfirst);
24062 child2elemsecond = std::make_pair(child3elemsecondfirst,(*it0).second.second);
24063 child1elem = std::make_pair((*it0).first,child2elemsecond);
24064 fixed_val0.push_back(child1elem);
24069 hasher_.
Update(fixed_val0);
24074 hvl_t buf0 = VLValToBuf(fixed_val0);
24081void Hdf5Back::WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24082 std::vector<std::pair<int, std::pair<std::string, std::string>>> val0=a->
cast<std::vector<std::pair<int, std::pair<std::string, std::string>>>>();
24085 size_t item_size2elemfirst=
sizeof(int);
24089 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
24090 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
24091 size_t total_item_size0=item_size1elem;
24098 hvl_t buf0 = VLValToBuf(val0);
24105void Hdf5Back::WriteToBuf<PAIR_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24106 std::pair<std::string, std::vector<double>> val0=a->
cast<std::pair<std::string, std::vector<double>>>();
24107 size_t item_size0=((shape[1]+((
sizeof(double))*shape[2])));
24108 size_t item_size1first=shape[1];
24109 size_t valuelen1first;
24110 size_t item_size1second=((
sizeof(double))*shape[2]);
24111 size_t length1second=shape[2];
24112 size_t item_size2secondelem=
sizeof(double);
24113 size_t total_item_size1second=item_size2secondelem;
24114 size_t total_item_size0=item_size1first+item_size1second;
24115 unsigned int count0=0;
24116 valuelen1first=std::min(val0.first.size(), item_size1first);
24117 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
24118 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
24119 unsigned int count1second=0;
24120 std::vector<double>::iterator it1second=val0.second.begin();
24121 for(;it1second!=val0.second.end();++it1second){
24122 memcpy(buf+(count0*total_item_size0)+0+item_size1first+item_size2secondelem*count1second, &(*it1second), item_size2secondelem);
24126 memset(buf+(count0*total_item_size0)+0+item_size1first+total_item_size1second*count1second, 0, total_item_size1second*(length1second-count1second));
24129void Hdf5Back::WriteToBuf<PAIR_VL_STRING_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24130 std::pair<std::string, std::vector<double>> val0=a->
cast<std::pair<std::string, std::vector<double>>>();
24133 size_t item_size1second=((
sizeof(double))*shape[2]);
24134 size_t length1second=shape[2];
24135 size_t item_size2secondelem=
sizeof(double);
24136 size_t total_item_size1second=item_size2secondelem;
24137 size_t total_item_size0=item_size1first+item_size1second;
24138 unsigned int count0=0;
24140 hasher_.
Update(val0.first);
24142 hid_t keysds1first = VLDataset(
VL_STRING,
true);
24143 hid_t valsds1first = VLDataset(
VL_STRING,
false);
24144 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
24145 AppendVLKey(keysds1first,
VL_STRING, key1first);
24146 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
24149 unsigned int count1second=0;
24150 std::vector<double>::iterator it1second=val0.second.begin();
24151 for(;it1second!=val0.second.end();++it1second){
24152 memcpy(buf+(count0*total_item_size0)+0+item_size1first+item_size2secondelem*count1second, &(*it1second), item_size2secondelem);
24156 memset(buf+(count0*total_item_size0)+0+item_size1first+total_item_size1second*count1second, 0, total_item_size1second*(length1second-count1second));
24159void Hdf5Back::WriteToBuf<PAIR_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24160 std::pair<std::string, std::vector<double>> val0=a->
cast<std::pair<std::string, std::vector<double>>>();
24162 size_t item_size1first=shape[1];
24163 size_t valuelen1first;
24165 size_t item_size2secondelem=
sizeof(double);
24166 size_t total_item_size1second=item_size2secondelem;
24167 size_t total_item_size0=item_size1first+item_size1second;
24168 unsigned int count0=0;
24169 valuelen1first=std::min(val0.first.size(), item_size1first);
24170 memcpy(buf+(count0*total_item_size0)+0, val0.first.c_str(), valuelen1first);
24171 memset(buf+(count0*total_item_size0)+0+valuelen1first, 0, item_size1first-valuelen1first);
24173 hasher_.
Update(val0.second);
24178 hvl_t buf1second = VLValToBuf(val0.second);
24185void Hdf5Back::WriteToBuf<PAIR_VL_STRING_VL_VECTOR_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24186 std::pair<std::string, std::vector<double>> val0=a->
cast<std::pair<std::string, std::vector<double>>>();
24190 size_t item_size2secondelem=
sizeof(double);
24191 size_t total_item_size1second=item_size2secondelem;
24192 size_t total_item_size0=item_size1first+item_size1second;
24193 unsigned int count0=0;
24195 hasher_.
Update(val0.first);
24197 hid_t keysds1first = VLDataset(
VL_STRING,
true);
24198 hid_t valsds1first = VLDataset(
VL_STRING,
false);
24199 if (vlkeys_[
VL_STRING].count(key1first) != 1) {
24200 AppendVLKey(keysds1first,
VL_STRING, key1first);
24201 InsertVLVal(valsds1first,
VL_STRING, key1first, val0.first);
24205 hasher_.
Update(val0.second);
24210 hvl_t buf1second = VLValToBuf(val0.second);
24217void Hdf5Back::WriteToBuf<MAP_PAIR_STRING_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24218 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24219 size_t item_size0=((((shape[2]+shape[3]))+
sizeof(int))*shape[0]);
24220 size_t length0=shape[0];
24221 size_t item_size1key=((shape[2]+shape[3]));
24222 size_t item_size2keyfirst=shape[2];
24223 size_t valuelen2keyfirst;
24224 size_t item_size2keysecond=shape[3];
24225 size_t valuelen2keysecond;
24226 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24227 size_t item_size1val=
sizeof(int);
24228 size_t total_item_size0=item_size1key+item_size1val;
24229 if(total_item_size0*val0.size()>column){
24230 std::map<std::pair<std::string, std::string>,
int>::iterator eraseit=val0.begin();
24231 std::advance(eraseit, column/total_item_size0);
24232 val0.erase(eraseit,val0.end());
24235 unsigned int count0=0;
24236 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24237 for(;it0!=val0.end();++it0){
24238 unsigned int count1key=0;
24239 valuelen2keyfirst=std::min(it0->first.first.size(), item_size2keyfirst);
24240 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0, it0->first.first.c_str(), valuelen2keyfirst);
24241 memset(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+valuelen2keyfirst, 0, item_size2keyfirst-valuelen2keyfirst);
24242 valuelen2keysecond=std::min(it0->first.second.size(), item_size2keysecond);
24243 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst, it0->first.second.c_str(), valuelen2keysecond);
24244 memset(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst+valuelen2keysecond, 0, item_size2keysecond-valuelen2keysecond);
24245 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
24249 if(total_item_size0*length0<column){
24250 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24255void Hdf5Back::WriteToBuf<MAP_PAIR_STRING_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24256 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24258 size_t length0=shape[0];
24260 size_t item_size2keyfirst=shape[2];
24261 size_t valuelen2keyfirst;
24263 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24264 size_t item_size1val=
sizeof(int);
24265 size_t total_item_size0=item_size1key+item_size1val;
24266 if(total_item_size0*val0.size()>column){
24267 std::map<std::pair<std::string, std::string>,
int>::iterator eraseit=val0.begin();
24268 std::advance(eraseit, column/total_item_size0);
24269 val0.erase(eraseit,val0.end());
24272 unsigned int count0=0;
24273 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24274 for(;it0!=val0.end();++it0){
24275 unsigned int count1key=0;
24276 valuelen2keyfirst=std::min(it0->first.first.size(), item_size2keyfirst);
24277 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0, it0->first.first.c_str(), valuelen2keyfirst);
24278 memset(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+valuelen2keyfirst, 0, item_size2keyfirst-valuelen2keyfirst);
24280 hasher_.
Update(it0->first.second);
24282 hid_t keysds2keysecond = VLDataset(
VL_STRING,
true);
24283 hid_t valsds2keysecond = VLDataset(
VL_STRING,
false);
24284 if (vlkeys_[
VL_STRING].count(key2keysecond) != 1) {
24285 AppendVLKey(keysds2keysecond,
VL_STRING, key2keysecond);
24286 InsertVLVal(valsds2keysecond,
VL_STRING, key2keysecond, it0->first.second);
24288 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst, key2keysecond.data(),
CYCLUS_SHA1_SIZE);
24289 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
24293 if(total_item_size0*length0<column){
24294 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24299void Hdf5Back::WriteToBuf<MAP_PAIR_VL_STRING_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24300 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24302 size_t length0=shape[0];
24305 size_t item_size2keysecond=shape[3];
24306 size_t valuelen2keysecond;
24307 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24308 size_t item_size1val=
sizeof(int);
24309 size_t total_item_size0=item_size1key+item_size1val;
24310 if(total_item_size0*val0.size()>column){
24311 std::map<std::pair<std::string, std::string>,
int>::iterator eraseit=val0.begin();
24312 std::advance(eraseit, column/total_item_size0);
24313 val0.erase(eraseit,val0.end());
24316 unsigned int count0=0;
24317 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24318 for(;it0!=val0.end();++it0){
24319 unsigned int count1key=0;
24321 hasher_.
Update(it0->first.first);
24323 hid_t keysds2keyfirst = VLDataset(
VL_STRING,
true);
24324 hid_t valsds2keyfirst = VLDataset(
VL_STRING,
false);
24325 if (vlkeys_[
VL_STRING].count(key2keyfirst) != 1) {
24326 AppendVLKey(keysds2keyfirst,
VL_STRING, key2keyfirst);
24327 InsertVLVal(valsds2keyfirst,
VL_STRING, key2keyfirst, it0->first.first);
24329 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0, key2keyfirst.data(),
CYCLUS_SHA1_SIZE);
24330 valuelen2keysecond=std::min(it0->first.second.size(), item_size2keysecond);
24331 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst, it0->first.second.c_str(), valuelen2keysecond);
24332 memset(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst+valuelen2keysecond, 0, item_size2keysecond-valuelen2keysecond);
24333 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
24337 if(total_item_size0*length0<column){
24338 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24343void Hdf5Back::WriteToBuf<MAP_PAIR_VL_STRING_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24344 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24346 size_t length0=shape[0];
24350 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24351 size_t item_size1val=
sizeof(int);
24352 size_t total_item_size0=item_size1key+item_size1val;
24353 if(total_item_size0*val0.size()>column){
24354 std::map<std::pair<std::string, std::string>,
int>::iterator eraseit=val0.begin();
24355 std::advance(eraseit, column/total_item_size0);
24356 val0.erase(eraseit,val0.end());
24359 unsigned int count0=0;
24360 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24361 for(;it0!=val0.end();++it0){
24362 unsigned int count1key=0;
24364 hasher_.
Update(it0->first.first);
24366 hid_t keysds2keyfirst = VLDataset(
VL_STRING,
true);
24367 hid_t valsds2keyfirst = VLDataset(
VL_STRING,
false);
24368 if (vlkeys_[
VL_STRING].count(key2keyfirst) != 1) {
24369 AppendVLKey(keysds2keyfirst,
VL_STRING, key2keyfirst);
24370 InsertVLVal(valsds2keyfirst,
VL_STRING, key2keyfirst, it0->first.first);
24372 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0, key2keyfirst.data(),
CYCLUS_SHA1_SIZE);
24374 hasher_.
Update(it0->first.second);
24376 hid_t keysds2keysecond = VLDataset(
VL_STRING,
true);
24377 hid_t valsds2keysecond = VLDataset(
VL_STRING,
false);
24378 if (vlkeys_[
VL_STRING].count(key2keysecond) != 1) {
24379 AppendVLKey(keysds2keysecond,
VL_STRING, key2keysecond);
24380 InsertVLVal(valsds2keysecond,
VL_STRING, key2keysecond, it0->first.second);
24382 memcpy(buf+(count0*total_item_size0)+0+(count1key*total_item_size1key)+0+item_size2keyfirst, key2keysecond.data(),
CYCLUS_SHA1_SIZE);
24383 memcpy(buf+(count0*total_item_size0)+0+item_size1key, &(it0->second), item_size1val);
24387 if(total_item_size0*length0<column){
24388 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24393void Hdf5Back::WriteToBuf<VL_MAP_PAIR_STRING_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24394 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24396 size_t item_size1key=((shape[2]+shape[3]));
24397 size_t item_size2keyfirst=shape[2];
24398 size_t valuelen2keyfirst;
24399 size_t item_size2keysecond=shape[3];
24400 size_t valuelen2keysecond;
24401 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24402 size_t item_size1val=
sizeof(int);
24403 size_t total_item_size0=item_size1key+item_size1val;
24404 unsigned int count0=0;
24405 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24406 std::map<std::pair<std::string, std::string>,
int> fixed_val0;
24407 unsigned int pad_count0=0;
24408 for(;it0!=val0.end();++it0){
24409 std::pair<std::string, std::string> child1key;
24410 unsigned int pad_count1key=0;
24411 std::string child2keyfirst=std::string(it0->first.first,0,item_size2keyfirst);
24412 std::string child2keysecond=std::string(it0->first.second,0,item_size2keysecond);
24413 child1key = std::make_pair(child2keyfirst,child2keysecond);
24414 fixed_val0[child1key] = it0->second;
24419 hasher_.
Update(fixed_val0);
24424 hvl_t buf0 = VLValToBuf(fixed_val0);
24431void Hdf5Back::WriteToBuf<VL_MAP_PAIR_STRING_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24432 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24435 size_t item_size2keyfirst=shape[2];
24436 size_t valuelen2keyfirst;
24438 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24439 size_t item_size1val=
sizeof(int);
24440 size_t total_item_size0=item_size1key+item_size1val;
24441 unsigned int count0=0;
24442 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24443 std::map<std::pair<std::string, std::string>,
int> fixed_val0;
24444 unsigned int pad_count0=0;
24445 for(;it0!=val0.end();++it0){
24446 std::pair<std::string, std::string> child1key;
24447 unsigned int pad_count1key=0;
24448 std::string child2keyfirst=std::string(it0->first.first,0,item_size2keyfirst);
24449 child1key = std::make_pair(child2keyfirst,it0->first.second);
24450 fixed_val0[child1key] = it0->second;
24455 hasher_.
Update(fixed_val0);
24460 hvl_t buf0 = VLValToBuf(fixed_val0);
24467void Hdf5Back::WriteToBuf<VL_MAP_PAIR_VL_STRING_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24468 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24472 size_t item_size2keysecond=shape[3];
24473 size_t valuelen2keysecond;
24474 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24475 size_t item_size1val=
sizeof(int);
24476 size_t total_item_size0=item_size1key+item_size1val;
24477 unsigned int count0=0;
24478 std::map<std::pair<std::string, std::string>,
int>::iterator it0=val0.begin();
24479 std::map<std::pair<std::string, std::string>,
int> fixed_val0;
24480 unsigned int pad_count0=0;
24481 for(;it0!=val0.end();++it0){
24482 std::pair<std::string, std::string> child1key;
24483 unsigned int pad_count1key=0;
24484 std::string child2keysecond=std::string(it0->first.second,0,item_size2keysecond);
24485 child1key = std::make_pair(it0->first.first,child2keysecond);
24486 fixed_val0[child1key] = it0->second;
24491 hasher_.
Update(fixed_val0);
24496 hvl_t buf0 = VLValToBuf(fixed_val0);
24503void Hdf5Back::WriteToBuf<VL_MAP_PAIR_VL_STRING_VL_STRING_INT>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24504 std::map<std::pair<std::string, std::string>,
int> val0=a->
cast<std::map<std::pair<std::string, std::string>,
int>>();
24509 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
24510 size_t item_size1val=
sizeof(int);
24511 size_t total_item_size0=item_size1key+item_size1val;
24518 hvl_t buf0 = VLValToBuf(val0);
24525void Hdf5Back::WriteToBuf<MAP_STRING_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24526 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24527 size_t item_size0=((shape[1]+((shape[3]+
sizeof(double))*shape[2]))*shape[0]);
24528 size_t length0=shape[0];
24529 size_t item_size1key=shape[1];
24530 size_t valuelen1key;
24531 size_t item_size1val=((shape[3]+
sizeof(double))*shape[2]);
24532 size_t length1val=shape[2];
24533 size_t item_size2valkey=shape[3];
24534 size_t valuelen2valkey;
24535 size_t item_size2valval=
sizeof(double);
24536 size_t total_item_size1val=item_size2valkey+item_size2valval;
24537 size_t total_item_size0=item_size1key+item_size1val;
24538 if(total_item_size0*val0.size()>column){
24539 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24540 std::advance(eraseit, column/total_item_size0);
24541 val0.erase(eraseit,val0.end());
24544 unsigned int count0=0;
24545 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24546 for(;it0!=val0.end();++it0){
24547 valuelen1key=std::min(it0->first.size(), item_size1key);
24548 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
24549 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
24550 unsigned int count1val=0;
24551 std::map<std::string, double>::iterator it1val=it0->second.begin();
24552 for(;it1val!=it0->second.end();++it1val){
24553 valuelen2valkey=std::min(it1val->first.size(), item_size2valkey);
24554 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it1val->first.c_str(), valuelen2valkey);
24555 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valkey, 0, item_size2valkey-valuelen2valkey);
24556 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
24560 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
24564 if(total_item_size0*length0<column){
24565 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24570void Hdf5Back::WriteToBuf<MAP_STRING_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24571 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24572 size_t item_size0=((shape[1]+((
CYCLUS_SHA1_SIZE+
sizeof(double))*shape[2]))*shape[0]);
24573 size_t length0=shape[0];
24574 size_t item_size1key=shape[1];
24575 size_t valuelen1key;
24577 size_t length1val=shape[2];
24579 size_t item_size2valval=
sizeof(double);
24580 size_t total_item_size1val=item_size2valkey+item_size2valval;
24581 size_t total_item_size0=item_size1key+item_size1val;
24582 if(total_item_size0*val0.size()>column){
24583 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24584 std::advance(eraseit, column/total_item_size0);
24585 val0.erase(eraseit,val0.end());
24588 unsigned int count0=0;
24589 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24590 for(;it0!=val0.end();++it0){
24591 valuelen1key=std::min(it0->first.size(), item_size1key);
24592 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
24593 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
24594 unsigned int count1val=0;
24595 std::map<std::string, double>::iterator it1val=it0->second.begin();
24596 for(;it1val!=it0->second.end();++it1val){
24598 hasher_.
Update(it1val->first);
24600 hid_t keysds2valkey = VLDataset(
VL_STRING,
true);
24601 hid_t valsds2valkey = VLDataset(
VL_STRING,
false);
24602 if (vlkeys_[
VL_STRING].count(key2valkey) != 1) {
24603 AppendVLKey(keysds2valkey,
VL_STRING, key2valkey);
24604 InsertVLVal(valsds2valkey,
VL_STRING, key2valkey, it1val->first);
24606 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valkey.data(),
CYCLUS_SHA1_SIZE);
24607 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
24611 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
24615 if(total_item_size0*length0<column){
24616 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24621void Hdf5Back::WriteToBuf<MAP_STRING_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24622 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24624 size_t length0=shape[0];
24625 size_t item_size1key=shape[1];
24626 size_t valuelen1key;
24628 size_t item_size2valkey=shape[3];
24629 size_t valuelen2valkey;
24630 size_t item_size2valval=
sizeof(double);
24631 size_t total_item_size1val=item_size2valkey+item_size2valval;
24632 size_t total_item_size0=item_size1key+item_size1val;
24633 if(total_item_size0*val0.size()>column){
24634 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24635 std::advance(eraseit, column/total_item_size0);
24636 val0.erase(eraseit,val0.end());
24639 unsigned int count0=0;
24640 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24641 for(;it0!=val0.end();++it0){
24642 valuelen1key=std::min(it0->first.size(), item_size1key);
24643 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
24644 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
24645 unsigned int count1val=0;
24646 std::map<std::string, double>::iterator it1val=it0->second.begin();
24647 std::map<std::string, double> fixed_val1val;
24648 unsigned int pad_count1val=0;
24649 for(;it1val!=it0->second.end();++it1val){
24650 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
24651 fixed_val1val[child2valkey] = it1val->second;
24656 hasher_.
Update(fixed_val1val);
24661 hvl_t buf1val = VLValToBuf(fixed_val1val);
24669 if(total_item_size0*length0<column){
24670 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24675void Hdf5Back::WriteToBuf<MAP_STRING_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24676 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24678 size_t length0=shape[0];
24679 size_t item_size1key=shape[1];
24680 size_t valuelen1key;
24683 size_t item_size2valval=
sizeof(double);
24684 size_t total_item_size1val=item_size2valkey+item_size2valval;
24685 size_t total_item_size0=item_size1key+item_size1val;
24686 if(total_item_size0*val0.size()>column){
24687 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24688 std::advance(eraseit, column/total_item_size0);
24689 val0.erase(eraseit,val0.end());
24692 unsigned int count0=0;
24693 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24694 for(;it0!=val0.end();++it0){
24695 valuelen1key=std::min(it0->first.size(), item_size1key);
24696 memcpy(buf+(count0*total_item_size0)+0, it0->first.c_str(), valuelen1key);
24697 memset(buf+(count0*total_item_size0)+0+valuelen1key, 0, item_size1key-valuelen1key);
24699 hasher_.
Update(it0->second);
24704 hvl_t buf1val = VLValToBuf(it0->second);
24712 if(total_item_size0*length0<column){
24713 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24718void Hdf5Back::WriteToBuf<MAP_VL_STRING_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24719 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24720 size_t item_size0=((
CYCLUS_SHA1_SIZE+((shape[3]+
sizeof(double))*shape[2]))*shape[0]);
24721 size_t length0=shape[0];
24723 size_t item_size1val=((shape[3]+
sizeof(double))*shape[2]);
24724 size_t length1val=shape[2];
24725 size_t item_size2valkey=shape[3];
24726 size_t valuelen2valkey;
24727 size_t item_size2valval=
sizeof(double);
24728 size_t total_item_size1val=item_size2valkey+item_size2valval;
24729 size_t total_item_size0=item_size1key+item_size1val;
24730 if(total_item_size0*val0.size()>column){
24731 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24732 std::advance(eraseit, column/total_item_size0);
24733 val0.erase(eraseit,val0.end());
24736 unsigned int count0=0;
24737 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24738 for(;it0!=val0.end();++it0){
24740 hasher_.
Update(it0->first);
24742 hid_t keysds1key = VLDataset(
VL_STRING,
true);
24743 hid_t valsds1key = VLDataset(
VL_STRING,
false);
24744 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
24745 AppendVLKey(keysds1key,
VL_STRING, key1key);
24746 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
24749 unsigned int count1val=0;
24750 std::map<std::string, double>::iterator it1val=it0->second.begin();
24751 for(;it1val!=it0->second.end();++it1val){
24752 valuelen2valkey=std::min(it1val->first.size(), item_size2valkey);
24753 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, it1val->first.c_str(), valuelen2valkey);
24754 memset(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+valuelen2valkey, 0, item_size2valkey-valuelen2valkey);
24755 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
24759 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
24763 if(total_item_size0*length0<column){
24764 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24769void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24770 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24772 size_t length0=shape[0];
24775 size_t item_size2valkey=shape[3];
24776 size_t valuelen2valkey;
24777 size_t item_size2valval=
sizeof(double);
24778 size_t total_item_size1val=item_size2valkey+item_size2valval;
24779 size_t total_item_size0=item_size1key+item_size1val;
24780 if(total_item_size0*val0.size()>column){
24781 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24782 std::advance(eraseit, column/total_item_size0);
24783 val0.erase(eraseit,val0.end());
24786 unsigned int count0=0;
24787 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24788 for(;it0!=val0.end();++it0){
24790 hasher_.
Update(it0->first);
24792 hid_t keysds1key = VLDataset(
VL_STRING,
true);
24793 hid_t valsds1key = VLDataset(
VL_STRING,
false);
24794 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
24795 AppendVLKey(keysds1key,
VL_STRING, key1key);
24796 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
24799 unsigned int count1val=0;
24800 std::map<std::string, double>::iterator it1val=it0->second.begin();
24801 std::map<std::string, double> fixed_val1val;
24802 unsigned int pad_count1val=0;
24803 for(;it1val!=it0->second.end();++it1val){
24804 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
24805 fixed_val1val[child2valkey] = it1val->second;
24810 hasher_.
Update(fixed_val1val);
24815 hvl_t buf1val = VLValToBuf(fixed_val1val);
24823 if(total_item_size0*length0<column){
24824 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24829void Hdf5Back::WriteToBuf<MAP_VL_STRING_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24830 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24832 size_t length0=shape[0];
24835 size_t length1val=shape[2];
24837 size_t item_size2valval=
sizeof(double);
24838 size_t total_item_size1val=item_size2valkey+item_size2valval;
24839 size_t total_item_size0=item_size1key+item_size1val;
24840 if(total_item_size0*val0.size()>column){
24841 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24842 std::advance(eraseit, column/total_item_size0);
24843 val0.erase(eraseit,val0.end());
24846 unsigned int count0=0;
24847 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24848 for(;it0!=val0.end();++it0){
24850 hasher_.
Update(it0->first);
24852 hid_t keysds1key = VLDataset(
VL_STRING,
true);
24853 hid_t valsds1key = VLDataset(
VL_STRING,
false);
24854 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
24855 AppendVLKey(keysds1key,
VL_STRING, key1key);
24856 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
24859 unsigned int count1val=0;
24860 std::map<std::string, double>::iterator it1val=it0->second.begin();
24861 for(;it1val!=it0->second.end();++it1val){
24863 hasher_.
Update(it1val->first);
24865 hid_t keysds2valkey = VLDataset(
VL_STRING,
true);
24866 hid_t valsds2valkey = VLDataset(
VL_STRING,
false);
24867 if (vlkeys_[
VL_STRING].count(key2valkey) != 1) {
24868 AppendVLKey(keysds2valkey,
VL_STRING, key2valkey);
24869 InsertVLVal(valsds2valkey,
VL_STRING, key2valkey, it1val->first);
24871 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0, key2valkey.data(),
CYCLUS_SHA1_SIZE);
24872 memcpy(buf+(count0*total_item_size0)+0+item_size1key+(count1val*total_item_size1val)+0+item_size2valkey, &(it1val->second), item_size2valval);
24876 memset(buf+(count0*total_item_size0)+0+item_size1key+total_item_size1val*count1val, 0, total_item_size1val*(length1val-count1val));
24880 if(total_item_size0*length0<column){
24881 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24886void Hdf5Back::WriteToBuf<MAP_VL_STRING_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24887 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24889 size_t length0=shape[0];
24893 size_t item_size2valval=
sizeof(double);
24894 size_t total_item_size1val=item_size2valkey+item_size2valval;
24895 size_t total_item_size0=item_size1key+item_size1val;
24896 if(total_item_size0*val0.size()>column){
24897 std::map<std::string, std::map<std::string, double>>::iterator eraseit=val0.begin();
24898 std::advance(eraseit, column/total_item_size0);
24899 val0.erase(eraseit,val0.end());
24902 unsigned int count0=0;
24903 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24904 for(;it0!=val0.end();++it0){
24906 hasher_.
Update(it0->first);
24908 hid_t keysds1key = VLDataset(
VL_STRING,
true);
24909 hid_t valsds1key = VLDataset(
VL_STRING,
false);
24910 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
24911 AppendVLKey(keysds1key,
VL_STRING, key1key);
24912 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
24916 hasher_.
Update(it0->second);
24921 hvl_t buf1val = VLValToBuf(it0->second);
24929 if(total_item_size0*length0<column){
24930 memset(buf+total_item_size0*count0, 0, total_item_size0*(length0-count0));
24935void Hdf5Back::WriteToBuf<VL_MAP_STRING_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24936 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24938 size_t item_size1key=shape[1];
24939 size_t valuelen1key;
24940 size_t item_size1val=((shape[3]+
sizeof(double))*shape[2]);
24941 size_t length1val=shape[2];
24942 size_t item_size2valkey=shape[3];
24943 size_t valuelen2valkey;
24944 size_t item_size2valval=
sizeof(double);
24945 size_t total_item_size1val=item_size2valkey+item_size2valval;
24946 size_t total_item_size0=item_size1key+item_size1val;
24947 unsigned int count0=0;
24948 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24949 std::map<std::string, std::map<std::string, double>> fixed_val0;
24950 unsigned int pad_count0=0;
24951 for(;it0!=val0.end();++it0){
24952 std::string child1key=std::string(it0->first,0,item_size1key);
24953 std::map<std::string, double> child1val;
24954 unsigned int pad_count1val=0;
24955 std::map<std::string, double>::iterator it1val=it0->second.begin();
24956 for(;it1val!=it0->second.end();++it1val){
24957 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
24958 child1val[child2valkey] = it1val->second;
24962 fixed_val0[child1key] = child1val;
24967 hasher_.
Update(fixed_val0);
24972 hvl_t buf0 = VLValToBuf(fixed_val0);
24979void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
24980 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
24983 size_t item_size1val=((shape[3]+
sizeof(double))*shape[2]);
24984 size_t length1val=shape[2];
24985 size_t item_size2valkey=shape[3];
24986 size_t valuelen2valkey;
24987 size_t item_size2valval=
sizeof(double);
24988 size_t total_item_size1val=item_size2valkey+item_size2valval;
24989 size_t total_item_size0=item_size1key+item_size1val;
24990 unsigned int count0=0;
24991 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
24992 std::map<std::string, std::map<std::string, double>> fixed_val0;
24993 unsigned int pad_count0=0;
24994 for(;it0!=val0.end();++it0){
24995 std::map<std::string, double> child1val;
24996 unsigned int pad_count1val=0;
24997 std::map<std::string, double>::iterator it1val=it0->second.begin();
24998 for(;it1val!=it0->second.end();++it1val){
24999 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
25000 child1val[child2valkey] = it1val->second;
25004 fixed_val0[it0->first] = child1val;
25009 hasher_.
Update(fixed_val0);
25014 hvl_t buf0 = VLValToBuf(fixed_val0);
25021void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
25022 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
25024 size_t item_size1key=shape[1];
25025 size_t valuelen1key;
25027 size_t item_size2valkey=shape[3];
25028 size_t valuelen2valkey;
25029 size_t item_size2valval=
sizeof(double);
25030 size_t total_item_size1val=item_size2valkey+item_size2valval;
25031 size_t total_item_size0=item_size1key+item_size1val;
25032 unsigned int count0=0;
25033 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
25034 std::map<std::string, std::map<std::string, double>> fixed_val0;
25035 unsigned int pad_count0=0;
25036 for(;it0!=val0.end();++it0){
25037 std::string child1key=std::string(it0->first,0,item_size1key);
25038 std::map<std::string, double> child1val;
25039 unsigned int pad_count1val=0;
25040 std::map<std::string, double>::iterator it1val=it0->second.begin();
25041 for(;it1val!=it0->second.end();++it1val){
25042 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
25043 child1val[child2valkey] = it1val->second;
25047 fixed_val0[child1key] = child1val;
25052 hasher_.
Update(fixed_val0);
25057 hvl_t buf0 = VLValToBuf(fixed_val0);
25064void Hdf5Back::WriteToBuf<VL_MAP_STRING_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
25065 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
25067 size_t item_size1key=shape[1];
25068 size_t valuelen1key;
25070 size_t length1val=shape[2];
25072 size_t item_size2valval=
sizeof(double);
25073 size_t total_item_size1val=item_size2valkey+item_size2valval;
25074 size_t total_item_size0=item_size1key+item_size1val;
25075 unsigned int count0=0;
25076 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
25077 std::map<std::string, std::map<std::string, double>> fixed_val0;
25078 unsigned int pad_count0=0;
25079 for(;it0!=val0.end();++it0){
25080 std::string child1key=std::string(it0->first,0,item_size1key);
25081 std::map<std::string, double> child1val;
25082 unsigned int pad_count1val=0;
25083 std::map<std::string, double>::iterator it1val=it0->second.begin();
25084 for(;it1val!=it0->second.end();++it1val){
25085 child1val[it1val->first] = it1val->second;
25089 fixed_val0[child1key] = child1val;
25094 hasher_.
Update(fixed_val0);
25099 hvl_t buf0 = VLValToBuf(fixed_val0);
25106void Hdf5Back::WriteToBuf<VL_MAP_STRING_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
25107 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
25109 size_t item_size1key=shape[1];
25110 size_t valuelen1key;
25113 size_t item_size2valval=
sizeof(double);
25114 size_t total_item_size1val=item_size2valkey+item_size2valval;
25115 size_t total_item_size0=item_size1key+item_size1val;
25116 unsigned int count0=0;
25117 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
25118 std::map<std::string, std::map<std::string, double>> fixed_val0;
25119 unsigned int pad_count0=0;
25120 for(;it0!=val0.end();++it0){
25121 std::string child1key=std::string(it0->first,0,item_size1key);
25122 fixed_val0[child1key] = it0->second;
25127 hasher_.
Update(fixed_val0);
25132 hvl_t buf0 = VLValToBuf(fixed_val0);
25139void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
25140 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
25144 size_t length1val=shape[2];
25146 size_t item_size2valval=
sizeof(double);
25147 size_t total_item_size1val=item_size2valkey+item_size2valval;
25148 size_t total_item_size0=item_size1key+item_size1val;
25149 unsigned int count0=0;
25150 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
25151 std::map<std::string, std::map<std::string, double>> fixed_val0;
25152 unsigned int pad_count0=0;
25153 for(;it0!=val0.end();++it0){
25154 std::map<std::string, double> child1val;
25155 unsigned int pad_count1val=0;
25156 std::map<std::string, double>::iterator it1val=it0->second.begin();
25157 for(;it1val!=it0->second.end();++it1val){
25158 child1val[it1val->first] = it1val->second;
25162 fixed_val0[it0->first] = child1val;
25167 hasher_.
Update(fixed_val0);
25172 hvl_t buf0 = VLValToBuf(fixed_val0);
25179void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_MAP_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
25180 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
25184 size_t item_size2valkey=shape[3];
25185 size_t valuelen2valkey;
25186 size_t item_size2valval=
sizeof(double);
25187 size_t total_item_size1val=item_size2valkey+item_size2valval;
25188 size_t total_item_size0=item_size1key+item_size1val;
25189 unsigned int count0=0;
25190 std::map<std::string, std::map<std::string, double>>::iterator it0=val0.begin();
25191 std::map<std::string, std::map<std::string, double>> fixed_val0;
25192 unsigned int pad_count0=0;
25193 for(;it0!=val0.end();++it0){
25194 std::map<std::string, double> child1val;
25195 unsigned int pad_count1val=0;
25196 std::map<std::string, double>::iterator it1val=it0->second.begin();
25197 for(;it1val!=it0->second.end();++it1val){
25198 std::string child2valkey=std::string(it1val->first,0,item_size2valkey);
25199 child1val[child2valkey] = it1val->second;
25203 fixed_val0[it0->first] = child1val;
25208 hasher_.
Update(fixed_val0);
25213 hvl_t buf0 = VLValToBuf(fixed_val0);
25220void Hdf5Back::WriteToBuf<VL_MAP_VL_STRING_VL_MAP_VL_STRING_DOUBLE>(
char* buf, std::vector<int>& shape,
const boost::spirit::hold_any* a,
size_t column) {
25221 std::map<std::string, std::map<std::string, double>> val0=a->
cast<std::map<std::string, std::map<std::string, double>>>();
25226 size_t item_size2valval=
sizeof(double);
25227 size_t total_item_size1val=item_size2valkey+item_size2valval;
25228 size_t total_item_size0=item_size1key+item_size1val;
25235 hvl_t buf0 = VLValToBuf(val0);
25244void Hdf5Back::FillBuf(std::string title,
char* buf,
DatumList& group,
25245 size_t* sizes,
size_t rowsize) {
25257 int ncols = header.size();
25258 DbTypes* dbtypes = schemas_[title];
25264 DatumList::iterator it;
25265 for (it = group.begin(); it != group.end(); ++it) {
25266 vals = (*it)->vals();
25267 shapes = (*it)->shapes();
25268 for (
int col = 0; col < ncols; ++col) {
25270 switch (dbtypes[col]) {
25272 WriteToBuf<BOOL>(buf+offset, shapes[col], a, sizes[col]);
25277 WriteToBuf<INT>(buf+offset, shapes[col], a, sizes[col]);
25282 WriteToBuf<FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25287 WriteToBuf<DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25292 WriteToBuf<STRING>(buf+offset, shapes[col], a, sizes[col]);
25297 WriteToBuf<VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25302 WriteToBuf<BLOB>(buf+offset, shapes[col], a, sizes[col]);
25307 WriteToBuf<UUID>(buf+offset, shapes[col], a, sizes[col]);
25312 WriteToBuf<VECTOR_INT>(buf+offset, shapes[col], a, sizes[col]);
25317 WriteToBuf<VL_VECTOR_INT>(buf+offset, shapes[col], a, sizes[col]);
25322 WriteToBuf<VECTOR_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25327 WriteToBuf<VL_VECTOR_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25332 WriteToBuf<VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25337 WriteToBuf<VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25342 WriteToBuf<VECTOR_STRING>(buf+offset, shapes[col], a, sizes[col]);
25347 WriteToBuf<VL_VECTOR_STRING>(buf+offset, shapes[col], a, sizes[col]);
25352 WriteToBuf<VECTOR_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25357 WriteToBuf<VL_VECTOR_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25362 WriteToBuf<VECTOR_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25367 WriteToBuf<VL_VECTOR_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25372 WriteToBuf<VECTOR_UUID>(buf+offset, shapes[col], a, sizes[col]);
25377 WriteToBuf<VL_VECTOR_UUID>(buf+offset, shapes[col], a, sizes[col]);
25382 WriteToBuf<SET_INT>(buf+offset, shapes[col], a, sizes[col]);
25387 WriteToBuf<VL_SET_INT>(buf+offset, shapes[col], a, sizes[col]);
25392 WriteToBuf<SET_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25397 WriteToBuf<VL_SET_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25402 WriteToBuf<SET_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25407 WriteToBuf<VL_SET_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25412 WriteToBuf<SET_STRING>(buf+offset, shapes[col], a, sizes[col]);
25417 WriteToBuf<VL_SET_STRING>(buf+offset, shapes[col], a, sizes[col]);
25422 WriteToBuf<SET_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25427 WriteToBuf<VL_SET_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25432 WriteToBuf<SET_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25437 WriteToBuf<VL_SET_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25442 WriteToBuf<SET_UUID>(buf+offset, shapes[col], a, sizes[col]);
25447 WriteToBuf<VL_SET_UUID>(buf+offset, shapes[col], a, sizes[col]);
25452 WriteToBuf<LIST_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25457 WriteToBuf<VL_LIST_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25462 WriteToBuf<LIST_INT>(buf+offset, shapes[col], a, sizes[col]);
25467 WriteToBuf<VL_LIST_INT>(buf+offset, shapes[col], a, sizes[col]);
25472 WriteToBuf<LIST_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25477 WriteToBuf<VL_LIST_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25482 WriteToBuf<LIST_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25487 WriteToBuf<VL_LIST_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25492 WriteToBuf<LIST_STRING>(buf+offset, shapes[col], a, sizes[col]);
25497 WriteToBuf<VL_LIST_STRING>(buf+offset, shapes[col], a, sizes[col]);
25502 WriteToBuf<LIST_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25507 WriteToBuf<VL_LIST_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25512 WriteToBuf<LIST_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25517 WriteToBuf<VL_LIST_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25522 WriteToBuf<LIST_UUID>(buf+offset, shapes[col], a, sizes[col]);
25527 WriteToBuf<VL_LIST_UUID>(buf+offset, shapes[col], a, sizes[col]);
25532 WriteToBuf<PAIR_INT_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25537 WriteToBuf<PAIR_INT_INT>(buf+offset, shapes[col], a, sizes[col]);
25542 WriteToBuf<PAIR_INT_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25547 WriteToBuf<PAIR_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25552 WriteToBuf<PAIR_INT_STRING>(buf+offset, shapes[col], a, sizes[col]);
25557 WriteToBuf<PAIR_INT_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25562 WriteToBuf<PAIR_INT_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25567 WriteToBuf<PAIR_INT_UUID>(buf+offset, shapes[col], a, sizes[col]);
25572 WriteToBuf<PAIR_STRING_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25577 WriteToBuf<PAIR_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
25582 WriteToBuf<PAIR_STRING_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25587 WriteToBuf<PAIR_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25592 WriteToBuf<PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
25597 WriteToBuf<PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25602 WriteToBuf<PAIR_STRING_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25607 WriteToBuf<PAIR_STRING_UUID>(buf+offset, shapes[col], a, sizes[col]);
25612 WriteToBuf<PAIR_VL_STRING_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25617 WriteToBuf<PAIR_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
25622 WriteToBuf<PAIR_VL_STRING_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25627 WriteToBuf<PAIR_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25632 WriteToBuf<PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
25637 WriteToBuf<PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25642 WriteToBuf<PAIR_VL_STRING_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25647 WriteToBuf<PAIR_VL_STRING_UUID>(buf+offset, shapes[col], a, sizes[col]);
25652 WriteToBuf<MAP_INT_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25657 WriteToBuf<VL_MAP_INT_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25662 WriteToBuf<MAP_INT_INT>(buf+offset, shapes[col], a, sizes[col]);
25667 WriteToBuf<VL_MAP_INT_INT>(buf+offset, shapes[col], a, sizes[col]);
25672 WriteToBuf<MAP_INT_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25677 WriteToBuf<VL_MAP_INT_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25682 WriteToBuf<MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25687 WriteToBuf<VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25692 WriteToBuf<MAP_INT_STRING>(buf+offset, shapes[col], a, sizes[col]);
25697 WriteToBuf<VL_MAP_INT_STRING>(buf+offset, shapes[col], a, sizes[col]);
25702 WriteToBuf<MAP_INT_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25707 WriteToBuf<VL_MAP_INT_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25712 WriteToBuf<MAP_INT_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25717 WriteToBuf<VL_MAP_INT_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25722 WriteToBuf<MAP_INT_UUID>(buf+offset, shapes[col], a, sizes[col]);
25727 WriteToBuf<VL_MAP_INT_UUID>(buf+offset, shapes[col], a, sizes[col]);
25732 WriteToBuf<MAP_STRING_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25737 WriteToBuf<VL_MAP_STRING_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25742 WriteToBuf<MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
25747 WriteToBuf<VL_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
25752 WriteToBuf<MAP_STRING_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25757 WriteToBuf<VL_MAP_STRING_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25762 WriteToBuf<MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25767 WriteToBuf<VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25772 WriteToBuf<MAP_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
25777 WriteToBuf<VL_MAP_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
25782 WriteToBuf<MAP_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25787 WriteToBuf<VL_MAP_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25792 WriteToBuf<MAP_STRING_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25797 WriteToBuf<VL_MAP_STRING_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25802 WriteToBuf<MAP_STRING_UUID>(buf+offset, shapes[col], a, sizes[col]);
25807 WriteToBuf<VL_MAP_STRING_UUID>(buf+offset, shapes[col], a, sizes[col]);
25812 WriteToBuf<MAP_VL_STRING_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25817 WriteToBuf<VL_MAP_VL_STRING_BOOL>(buf+offset, shapes[col], a, sizes[col]);
25822 WriteToBuf<MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
25827 WriteToBuf<VL_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
25832 WriteToBuf<MAP_VL_STRING_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25837 WriteToBuf<VL_MAP_VL_STRING_FLOAT>(buf+offset, shapes[col], a, sizes[col]);
25842 WriteToBuf<MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25847 WriteToBuf<VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25852 WriteToBuf<MAP_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
25857 WriteToBuf<VL_MAP_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
25862 WriteToBuf<MAP_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25867 WriteToBuf<VL_MAP_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
25872 WriteToBuf<MAP_VL_STRING_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25877 WriteToBuf<VL_MAP_VL_STRING_BLOB>(buf+offset, shapes[col], a, sizes[col]);
25882 WriteToBuf<MAP_VL_STRING_UUID>(buf+offset, shapes[col], a, sizes[col]);
25887 WriteToBuf<VL_MAP_VL_STRING_UUID>(buf+offset, shapes[col], a, sizes[col]);
25892 WriteToBuf<MAP_PAIR_INT_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25897 WriteToBuf<VL_MAP_PAIR_INT_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25902 WriteToBuf<MAP_PAIR_INT_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25907 WriteToBuf<VL_MAP_PAIR_INT_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25912 WriteToBuf<MAP_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25917 WriteToBuf<MAP_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25922 WriteToBuf<VL_MAP_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25927 WriteToBuf<MAP_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25932 WriteToBuf<MAP_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25937 WriteToBuf<VL_MAP_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25942 WriteToBuf<VL_MAP_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25947 WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25952 WriteToBuf<MAP_STRING_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25957 WriteToBuf<MAP_STRING_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25962 WriteToBuf<VL_MAP_STRING_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25967 WriteToBuf<MAP_VL_STRING_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25972 WriteToBuf<MAP_VL_STRING_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25977 WriteToBuf<VL_MAP_STRING_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25982 WriteToBuf<VL_MAP_VL_STRING_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25987 WriteToBuf<VL_MAP_VL_STRING_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25992 WriteToBuf<MAP_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
25997 WriteToBuf<VL_MAP_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26002 WriteToBuf<MAP_VL_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26007 WriteToBuf<MAP_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26012 WriteToBuf<VL_MAP_VL_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26017 WriteToBuf<VL_MAP_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26022 WriteToBuf<MAP_VL_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26027 WriteToBuf<VL_MAP_VL_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26032 WriteToBuf<MAP_INT_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26037 WriteToBuf<MAP_INT_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26042 WriteToBuf<VL_MAP_INT_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26047 WriteToBuf<VL_MAP_INT_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26052 WriteToBuf<MAP_INT_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26057 WriteToBuf<MAP_INT_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26062 WriteToBuf<VL_MAP_INT_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26067 WriteToBuf<VL_MAP_INT_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26072 WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26077 WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26082 WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26087 WriteToBuf<MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26092 WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26097 WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26102 WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26107 WriteToBuf<MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26112 WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26117 WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26122 WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26127 WriteToBuf<MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26132 WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26137 WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26142 WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26147 WriteToBuf<MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26152 WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26157 WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26162 WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26167 WriteToBuf<VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26172 WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26177 WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26182 WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26187 WriteToBuf<VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26192 WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26197 WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26202 WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26207 WriteToBuf<VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26212 WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26217 WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26222 WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26227 WriteToBuf<VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26232 WriteToBuf<LIST_PAIR_INT_INT>(buf+offset, shapes[col], a, sizes[col]);
26237 WriteToBuf<VL_LIST_PAIR_INT_INT>(buf+offset, shapes[col], a, sizes[col]);
26242 WriteToBuf<MAP_STRING_PAIR_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26247 WriteToBuf<MAP_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26252 WriteToBuf<MAP_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26257 WriteToBuf<MAP_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26262 WriteToBuf<MAP_VL_STRING_PAIR_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26267 WriteToBuf<MAP_VL_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26272 WriteToBuf<MAP_VL_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26277 WriteToBuf<MAP_VL_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26282 WriteToBuf<VL_MAP_STRING_PAIR_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26287 WriteToBuf<VL_MAP_VL_STRING_PAIR_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26292 WriteToBuf<VL_MAP_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26297 WriteToBuf<VL_MAP_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26302 WriteToBuf<VL_MAP_VL_STRING_PAIR_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26307 WriteToBuf<VL_MAP_VL_STRING_PAIR_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26312 WriteToBuf<VL_MAP_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26317 WriteToBuf<VL_MAP_VL_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26322 WriteToBuf<MAP_STRING_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26327 WriteToBuf<MAP_STRING_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26332 WriteToBuf<MAP_STRING_VL_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26337 WriteToBuf<MAP_STRING_VL_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26342 WriteToBuf<MAP_VL_STRING_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26347 WriteToBuf<MAP_VL_STRING_VL_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26352 WriteToBuf<MAP_VL_STRING_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26357 WriteToBuf<MAP_VL_STRING_VL_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26362 WriteToBuf<VL_MAP_STRING_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26367 WriteToBuf<VL_MAP_VL_STRING_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26372 WriteToBuf<VL_MAP_STRING_VL_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26377 WriteToBuf<VL_MAP_STRING_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26382 WriteToBuf<VL_MAP_STRING_VL_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26387 WriteToBuf<VL_MAP_VL_STRING_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26392 WriteToBuf<VL_MAP_VL_STRING_VL_MAP_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26397 WriteToBuf<VL_MAP_VL_STRING_VL_MAP_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26402 WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26407 WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26412 WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26417 WriteToBuf<VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26422 WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26427 WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26432 WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26437 WriteToBuf<VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26442 WriteToBuf<PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26447 WriteToBuf<PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26452 WriteToBuf<PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26457 WriteToBuf<PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26462 WriteToBuf<PAIR_DOUBLE_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26467 WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26472 WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26477 WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26482 WriteToBuf<PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26487 WriteToBuf<PAIR_DOUBLE_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26492 WriteToBuf<PAIR_DOUBLE_VL_MAP_INT_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26497 WriteToBuf<VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26502 WriteToBuf<VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26507 WriteToBuf<VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26512 WriteToBuf<VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26517 WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26522 WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING>(buf+offset, shapes[col], a, sizes[col]);
26527 WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26532 WriteToBuf<VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(buf+offset, shapes[col], a, sizes[col]);
26537 WriteToBuf<PAIR_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26542 WriteToBuf<PAIR_VL_STRING_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26547 WriteToBuf<PAIR_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26552 WriteToBuf<PAIR_VL_STRING_VL_VECTOR_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26557 WriteToBuf<MAP_PAIR_STRING_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26562 WriteToBuf<MAP_PAIR_STRING_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26567 WriteToBuf<MAP_PAIR_VL_STRING_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26572 WriteToBuf<MAP_PAIR_VL_STRING_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26577 WriteToBuf<VL_MAP_PAIR_STRING_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26582 WriteToBuf<VL_MAP_PAIR_STRING_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26587 WriteToBuf<VL_MAP_PAIR_VL_STRING_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26592 WriteToBuf<VL_MAP_PAIR_VL_STRING_VL_STRING_INT>(buf+offset, shapes[col], a, sizes[col]);
26597 WriteToBuf<MAP_STRING_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26602 WriteToBuf<MAP_STRING_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26607 WriteToBuf<MAP_STRING_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26612 WriteToBuf<MAP_STRING_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26617 WriteToBuf<MAP_VL_STRING_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26622 WriteToBuf<MAP_VL_STRING_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26627 WriteToBuf<MAP_VL_STRING_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26632 WriteToBuf<MAP_VL_STRING_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26637 WriteToBuf<VL_MAP_STRING_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26642 WriteToBuf<VL_MAP_VL_STRING_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26647 WriteToBuf<VL_MAP_STRING_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26652 WriteToBuf<VL_MAP_STRING_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26657 WriteToBuf<VL_MAP_STRING_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26662 WriteToBuf<VL_MAP_VL_STRING_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26667 WriteToBuf<VL_MAP_VL_STRING_VL_MAP_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26672 WriteToBuf<VL_MAP_VL_STRING_VL_MAP_VL_STRING_DOUBLE>(buf+offset, shapes[col], a, sizes[col]);
26679 throw ValueError(
"attempted to retrieve unsupported HDF5 backend type");
26687template <
typename T, DbTypes U>
26688T Hdf5Back::VLRead(
const char* rawkey) {
26692 const std::vector<hsize_t> idx(key.begin(), key.end());
26693 hid_t dset = VLDataset(U,
false);
26694 hid_t dspace = H5Dget_space(dset);
26696 herr_t status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET, (
const hsize_t*) &idx[0],
26697 NULL, vlchunk_, NULL);
26699 throw IOError(
"could not select hyperslab of value array for reading "
26700 "in the database '" + path_ +
"'.");
26702 status = H5Dread(dset, vldts_[U], mspace, dspace, H5P_DEFAULT, &buf);
26704 std::stringstream ss;
26706 throw IOError(
"failed to read in variable length data "
26707 "in the database '" + path_ +
"' (type id " + ss.str() +
26710 T val = VLBufToVal<T>(buf);
26711 status = H5Dvlen_reclaim(vldts_[U], mspace, H5P_DEFAULT, &buf);
26713 throw IOError(
"failed to reclaim variable length data space "
26714 "in the database '" + path_ +
"'.");
26721hid_t Hdf5Back::VLDataset(
DbTypes dbtype,
bool forkeys) {
26740 name=
"VectorFloat";
26745 name=
"VectorDouble";
26750 name=
"VectorString";
26755 name=
"VectorString";
26855 name=
"MapIntFloat";
26860 name=
"MapIntDouble";
26865 name=
"MapIntString";
26870 name=
"MapIntString";
26885 name=
"MapStringBool";
26890 name=
"MapStringBool";
26895 name=
"MapStringInt";
26900 name=
"MapStringInt";
26905 name=
"MapStringFloat";
26910 name=
"MapStringFloat";
26915 name=
"MapStringDouble";
26920 name=
"MapStringDouble";
26925 name=
"MapStringString";
26930 name=
"MapStringString";
26935 name=
"MapStringString";
26940 name=
"MapStringString";
26945 name=
"MapStringBlob";
26950 name=
"MapStringBlob";
26955 name=
"MapStringUuid";
26960 name=
"MapStringUuid";
26965 name=
"MapPairIntStringDouble";
26970 name=
"MapPairIntStringDouble";
26975 name=
"MapStringVectorDouble";
26980 name=
"MapStringVectorDouble";
26985 name=
"MapStringVectorDouble";
26990 name=
"MapStringVectorDouble";
26995 name=
"MapStringMapIntDouble";
27000 name=
"MapStringMapIntDouble";
27005 name=
"MapStringMapIntDouble";
27010 name=
"MapStringMapIntDouble";
27015 name=
"MapStringPairDoubleMapIntDouble";
27020 name=
"MapStringPairDoubleMapIntDouble";
27025 name=
"MapStringPairDoubleMapIntDouble";
27030 name=
"MapStringPairDoubleMapIntDouble";
27035 name=
"MapIntMapStringDouble";
27040 name=
"MapIntMapStringDouble";
27045 name=
"MapIntMapStringDouble";
27050 name=
"MapIntMapStringDouble";
27055 name=
"MapStringVectorPairIntPairStringString";
27060 name=
"MapStringVectorPairIntPairStringString";
27065 name=
"MapStringVectorPairIntPairStringString";
27070 name=
"MapStringVectorPairIntPairStringString";
27075 name=
"MapStringVectorPairIntPairStringString";
27080 name=
"MapStringVectorPairIntPairStringString";
27085 name=
"MapStringVectorPairIntPairStringString";
27090 name=
"MapStringVectorPairIntPairStringString";
27095 name=
"MapStringVectorPairIntPairStringString";
27100 name=
"MapStringVectorPairIntPairStringString";
27105 name=
"MapStringVectorPairIntPairStringString";
27110 name=
"MapStringVectorPairIntPairStringString";
27115 name=
"MapStringVectorPairIntPairStringString";
27120 name=
"MapStringVectorPairIntPairStringString";
27125 name=
"MapStringVectorPairIntPairStringString";
27130 name=
"MapStringVectorPairIntPairStringString";
27135 name=
"ListPairIntInt";
27140 name=
"MapStringPairStringVectorDouble";
27145 name=
"MapStringPairStringVectorDouble";
27150 name=
"MapStringPairStringVectorDouble";
27155 name=
"MapStringPairStringVectorDouble";
27160 name=
"MapStringPairStringVectorDouble";
27165 name=
"MapStringPairStringVectorDouble";
27170 name=
"MapStringPairStringVectorDouble";
27175 name=
"MapStringPairStringVectorDouble";
27180 name=
"MapStringMapStringInt";
27185 name=
"MapStringMapStringInt";
27190 name=
"MapStringMapStringInt";
27195 name=
"MapStringMapStringInt";
27200 name=
"MapStringMapStringInt";
27205 name=
"MapStringMapStringInt";
27210 name=
"MapStringMapStringInt";
27215 name=
"MapStringMapStringInt";
27220 name=
"VectorPairPairDoubleDoubleMapStringDouble";
27225 name=
"VectorPairPairDoubleDoubleMapStringDouble";
27230 name=
"VectorPairPairDoubleDoubleMapStringDouble";
27235 name=
"VectorPairPairDoubleDoubleMapStringDouble";
27240 name=
"VectorPairIntPairStringString";
27245 name=
"VectorPairIntPairStringString";
27250 name=
"VectorPairIntPairStringString";
27255 name=
"VectorPairIntPairStringString";
27260 name=
"MapPairStringStringInt";
27265 name=
"MapPairStringStringInt";
27270 name=
"MapPairStringStringInt";
27275 name=
"MapPairStringStringInt";
27280 name=
"MapStringMapStringDouble";
27285 name=
"MapStringMapStringDouble";
27290 name=
"MapStringMapStringDouble";
27295 name=
"MapStringMapStringDouble";
27300 name=
"MapStringMapStringDouble";
27305 name=
"MapStringMapStringDouble";
27310 name=
"MapStringMapStringDouble";
27315 name=
"MapStringMapStringDouble";
27322 throw IOError(
"could not determine variable length dataset name.");
27326 name += forkeys ?
"Keys" :
"Vals";
27329 if (vldatasets_.count(name) > 0)
27330 return vldatasets_[
name];
27337 if (H5Lexists(file_,
name.c_str(), H5P_DEFAULT)) {
27338 dset = H5Dopen2(file_,
name.c_str(), H5P_DEFAULT);
27341 dspace = H5Dget_space(dset);
27342 unsigned int nkeys = H5Sget_simple_extent_npoints(dspace);
27344 status = H5Dread(dset, sha1_type_, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf);
27346 throw IOError(
"failed to read in keys for " + name);
27347 for (
int n = 0; n < nkeys; ++n) {
27350 vlkeys_[dbtype].insert(d);
27355 if (vldts_.count(dbtype) == 0) {
27356 dt = H5Dget_type(dset);
27358 throw IOError(
"failed to read in HDF5 datatype for " + name);
27359 vldts_[dbtype] = dt;
27362 vldatasets_[
name] = dset;
27369 hsize_t dims[1] = {0};
27370 hsize_t maxdims[1] = {H5S_UNLIMITED};
27371 hsize_t chunkdims[1] = {512};
27373 dspace = H5Screate_simple(1, dims, maxdims);
27374 prop = H5Pcreate(H5P_DATASET_CREATE);
27375 status = H5Pset_chunk(prop, 1, chunkdims);
27377 throw IOError(
"could not create HDF5 array " + name);
27380 std::fill(std::begin(dims), std::end(dims), UINT_MAX);
27382 std::fill(std::begin(chunkdims), std::end(chunkdims), 1);
27383 dt = vldts_[dbtype];
27385 prop = H5Pcreate(H5P_DATASET_CREATE);
27388 throw IOError(
"could not create HDF5 array " + name);
27390 dset = H5Dcreate2(file_,
name.c_str(), dt, dspace, H5P_DEFAULT, prop, H5P_DEFAULT);
27391 vldatasets_[
name] = dset;
27395void Hdf5Back::AppendVLKey(hid_t dset,
DbTypes dbtype,
const Digest& key) {
27396 hid_t dspace = H5Dget_space(dset);
27397 hsize_t origlen = H5Sget_simple_extent_npoints(dspace);
27398 hsize_t newlen[1] = {origlen + 1};
27399 hsize_t
offset[1] = {origlen};
27400 hsize_t extent[1] = {1};
27401 hid_t mspace = H5Screate_simple(1, extent, NULL);
27402 herr_t status = H5Dextend(dset, newlen);
27404 throw IOError(
"could not resize key array in the database '" + path_ +
"'.");
27405 dspace = H5Dget_space(dset);
27406 status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET, offset, NULL, extent, NULL);
27408 throw IOError(
"could not select hyperslab of key array "
27409 "in the database '" + path_ +
"'.");
27410 status = H5Dwrite(dset, sha1_type_, mspace, dspace, H5P_DEFAULT, key.data());
27412 throw IOError(
"could not write digest to key array "
27413 "in the database '" + path_ +
"'.");
27416 vlkeys_[dbtype].insert(key);
27419void Hdf5Back::InsertVLVal(hid_t dset,
DbTypes dbtype,
const Digest& key,
27420 const std::string& val) {
27421 hid_t dspace = H5Dget_space(dset);
27423 std::fill(std::begin(extent), std::end(extent), 1);
27425 const std::vector<hsize_t> idx(key.begin(), key.end());
27426 herr_t status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET, (
const hsize_t*) &idx[0],
27427 NULL, extent, NULL);
27429 throw IOError(
"could not select hyperslab of value array "
27430 "in the database '" + path_ +
"'.");
27431 const char* buf[1] = {val.c_str()};
27432 status = H5Dwrite(dset, vldts_[dbtype], mspace, dspace, H5P_DEFAULT, buf);
27434 throw IOError(
"could not write string to value array "
27435 "in the database '" + path_ +
"'.");
27440void Hdf5Back::InsertVLVal(hid_t dset,
DbTypes dbtype,
const Digest& key,
27442 hid_t dspace = H5Dget_space(dset);
27444 std::fill(std::begin(extent), std::end(extent), 1);
27446 const std::vector<hsize_t> idx(key.begin(), key.end());
27447 herr_t status = H5Sselect_hyperslab(dspace, H5S_SELECT_SET, (
const hsize_t*) &idx[0],
27448 NULL, extent, NULL);
27450 throw IOError(
"could not select hyperslab of value array "
27451 "in the database '" + path_ +
"'.");
27452 status = H5Dwrite(dset, vldts_[dbtype], mspace, dspace, H5P_DEFAULT, &buf);
27454 throw IOError(
"could not write variable length data to value array "
27455 "in the database '" + path_ +
"'.");
27456 status = H5Dvlen_reclaim(vldts_[dbtype], mspace, H5P_DEFAULT, &buf);
27458 throw IOError(
"could not free variable length buffer "
27459 "in the database '" + path_ +
"'.");
27464hvl_t Hdf5Back::VLValToBuf(
const std::vector<int>& x) {
27467 size_t item_size1elem=
sizeof(int);
27468 size_t total_item_size0=item_size1elem;
27469 size_t nbytes=total_item_size0*buf.len;
27470 buf.p=
new char[nbytes];
27471 unsigned int count0=0;
27472 std::vector<int>::const_iterator it0=x.begin();
27473 for(;it0!=x.end();++it0){
27474 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27480hvl_t Hdf5Back::VLValToBuf(
const std::vector<float>& x) {
27483 size_t item_size1elem=
sizeof(float);
27484 size_t total_item_size0=item_size1elem;
27485 size_t nbytes=total_item_size0*buf.len;
27486 buf.p=
new char[nbytes];
27487 unsigned int count0=0;
27488 std::vector<float>::const_iterator it0=x.begin();
27489 for(;it0!=x.end();++it0){
27490 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27496hvl_t Hdf5Back::VLValToBuf(
const std::vector<double>& x) {
27499 size_t item_size1elem=
sizeof(double);
27500 size_t total_item_size0=item_size1elem;
27501 size_t nbytes=total_item_size0*buf.len;
27502 buf.p=
new char[nbytes];
27503 unsigned int count0=0;
27504 std::vector<double>::const_iterator it0=x.begin();
27505 for(;it0!=x.end();++it0){
27506 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27512hvl_t Hdf5Back::VLValToBuf(
const std::vector<std::string>& x) {
27516 size_t total_item_size0=item_size1elem;
27517 size_t nbytes=total_item_size0*buf.len;
27518 buf.p=
new char[nbytes];
27519 unsigned int count0=0;
27520 std::vector<std::string>::const_iterator it0=x.begin();
27521 for(;it0!=x.end();++it0){
27525 hid_t keysds1elem = VLDataset(
VL_STRING,
true);
27526 hid_t valsds1elem = VLDataset(
VL_STRING,
false);
27527 if (vlkeys_[
VL_STRING].count(key1elem) != 1) {
27528 AppendVLKey(keysds1elem,
VL_STRING, key1elem);
27529 InsertVLVal(valsds1elem,
VL_STRING, key1elem, (*it0));
27531 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1elem.data(), item_size1elem);
27537hvl_t Hdf5Back::VLValToBuf(
const std::vector<cyclus::Blob>& x) {
27541 size_t total_item_size0=item_size1elem;
27542 size_t nbytes=total_item_size0*buf.len;
27543 buf.p=
new char[nbytes];
27544 unsigned int count0=0;
27545 std::vector<cyclus::Blob>::const_iterator it0=x.begin();
27546 for(;it0!=x.end();++it0){
27550 hid_t keysds1elem = VLDataset(
BLOB,
true);
27551 hid_t valsds1elem = VLDataset(
BLOB,
false);
27552 if (vlkeys_[
BLOB].count(key1elem) != 1) {
27553 AppendVLKey(keysds1elem,
BLOB, key1elem);
27554 InsertVLVal(valsds1elem,
BLOB, key1elem, ((*it0)).str());
27556 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1elem.data(), item_size1elem);
27562hvl_t Hdf5Back::VLValToBuf(
const std::vector<boost::uuids::uuid>& x) {
27566 size_t total_item_size0=item_size1elem;
27567 size_t nbytes=total_item_size0*buf.len;
27568 buf.p=
new char[nbytes];
27569 unsigned int count0=0;
27570 std::vector<boost::uuids::uuid>::const_iterator it0=x.begin();
27571 for(;it0!=x.end();++it0){
27572 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27578hvl_t Hdf5Back::VLValToBuf(
const std::set<int>& x) {
27581 size_t item_size1elem=
sizeof(int);
27582 size_t total_item_size0=item_size1elem;
27583 size_t nbytes=total_item_size0*buf.len;
27584 buf.p=
new char[nbytes];
27585 unsigned int count0=0;
27586 std::set<int>::const_iterator it0=x.begin();
27587 for(;it0!=x.end();++it0){
27588 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27594hvl_t Hdf5Back::VLValToBuf(
const std::set<float>& x) {
27597 size_t item_size1elem=
sizeof(float);
27598 size_t total_item_size0=item_size1elem;
27599 size_t nbytes=total_item_size0*buf.len;
27600 buf.p=
new char[nbytes];
27601 unsigned int count0=0;
27602 std::set<float>::const_iterator it0=x.begin();
27603 for(;it0!=x.end();++it0){
27604 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27610hvl_t Hdf5Back::VLValToBuf(
const std::set<double>& x) {
27613 size_t item_size1elem=
sizeof(double);
27614 size_t total_item_size0=item_size1elem;
27615 size_t nbytes=total_item_size0*buf.len;
27616 buf.p=
new char[nbytes];
27617 unsigned int count0=0;
27618 std::set<double>::const_iterator it0=x.begin();
27619 for(;it0!=x.end();++it0){
27620 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27626hvl_t Hdf5Back::VLValToBuf(
const std::set<std::string>& x) {
27630 size_t total_item_size0=item_size1elem;
27631 size_t nbytes=total_item_size0*buf.len;
27632 buf.p=
new char[nbytes];
27633 unsigned int count0=0;
27634 std::set<std::string>::const_iterator it0=x.begin();
27635 for(;it0!=x.end();++it0){
27639 hid_t keysds1elem = VLDataset(
VL_STRING,
true);
27640 hid_t valsds1elem = VLDataset(
VL_STRING,
false);
27641 if (vlkeys_[
VL_STRING].count(key1elem) != 1) {
27642 AppendVLKey(keysds1elem,
VL_STRING, key1elem);
27643 InsertVLVal(valsds1elem,
VL_STRING, key1elem, (*it0));
27645 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1elem.data(), item_size1elem);
27651hvl_t Hdf5Back::VLValToBuf(
const std::set<cyclus::Blob>& x) {
27655 size_t total_item_size0=item_size1elem;
27656 size_t nbytes=total_item_size0*buf.len;
27657 buf.p=
new char[nbytes];
27658 unsigned int count0=0;
27659 std::set<cyclus::Blob>::const_iterator it0=x.begin();
27660 for(;it0!=x.end();++it0){
27664 hid_t keysds1elem = VLDataset(
BLOB,
true);
27665 hid_t valsds1elem = VLDataset(
BLOB,
false);
27666 if (vlkeys_[
BLOB].count(key1elem) != 1) {
27667 AppendVLKey(keysds1elem,
BLOB, key1elem);
27668 InsertVLVal(valsds1elem,
BLOB, key1elem, ((*it0)).str());
27670 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1elem.data(), item_size1elem);
27676hvl_t Hdf5Back::VLValToBuf(
const std::set<boost::uuids::uuid>& x) {
27680 size_t total_item_size0=item_size1elem;
27681 size_t nbytes=total_item_size0*buf.len;
27682 buf.p=
new char[nbytes];
27683 unsigned int count0=0;
27684 std::set<boost::uuids::uuid>::const_iterator it0=x.begin();
27685 for(;it0!=x.end();++it0){
27686 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27692hvl_t Hdf5Back::VLValToBuf(
const std::list<bool>& x) {
27695 size_t item_size1elem=
sizeof(char);
27696 size_t total_item_size0=item_size1elem;
27697 size_t nbytes=total_item_size0*buf.len;
27698 buf.p=
new char[nbytes];
27699 unsigned int count0=0;
27700 std::list<bool>::const_iterator it0=x.begin();
27701 for(;it0!=x.end();++it0){
27702 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27708hvl_t Hdf5Back::VLValToBuf(
const std::list<int>& x) {
27711 size_t item_size1elem=
sizeof(int);
27712 size_t total_item_size0=item_size1elem;
27713 size_t nbytes=total_item_size0*buf.len;
27714 buf.p=
new char[nbytes];
27715 unsigned int count0=0;
27716 std::list<int>::const_iterator it0=x.begin();
27717 for(;it0!=x.end();++it0){
27718 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27724hvl_t Hdf5Back::VLValToBuf(
const std::list<float>& x) {
27727 size_t item_size1elem=
sizeof(float);
27728 size_t total_item_size0=item_size1elem;
27729 size_t nbytes=total_item_size0*buf.len;
27730 buf.p=
new char[nbytes];
27731 unsigned int count0=0;
27732 std::list<float>::const_iterator it0=x.begin();
27733 for(;it0!=x.end();++it0){
27734 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27740hvl_t Hdf5Back::VLValToBuf(
const std::list<double>& x) {
27743 size_t item_size1elem=
sizeof(double);
27744 size_t total_item_size0=item_size1elem;
27745 size_t nbytes=total_item_size0*buf.len;
27746 buf.p=
new char[nbytes];
27747 unsigned int count0=0;
27748 std::list<double>::const_iterator it0=x.begin();
27749 for(;it0!=x.end();++it0){
27750 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27756hvl_t Hdf5Back::VLValToBuf(
const std::list<std::string>& x) {
27760 size_t total_item_size0=item_size1elem;
27761 size_t nbytes=total_item_size0*buf.len;
27762 buf.p=
new char[nbytes];
27763 unsigned int count0=0;
27764 std::list<std::string>::const_iterator it0=x.begin();
27765 for(;it0!=x.end();++it0){
27769 hid_t keysds1elem = VLDataset(
VL_STRING,
true);
27770 hid_t valsds1elem = VLDataset(
VL_STRING,
false);
27771 if (vlkeys_[
VL_STRING].count(key1elem) != 1) {
27772 AppendVLKey(keysds1elem,
VL_STRING, key1elem);
27773 InsertVLVal(valsds1elem,
VL_STRING, key1elem, (*it0));
27775 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1elem.data(), item_size1elem);
27781hvl_t Hdf5Back::VLValToBuf(
const std::list<cyclus::Blob>& x) {
27785 size_t total_item_size0=item_size1elem;
27786 size_t nbytes=total_item_size0*buf.len;
27787 buf.p=
new char[nbytes];
27788 unsigned int count0=0;
27789 std::list<cyclus::Blob>::const_iterator it0=x.begin();
27790 for(;it0!=x.end();++it0){
27794 hid_t keysds1elem = VLDataset(
BLOB,
true);
27795 hid_t valsds1elem = VLDataset(
BLOB,
false);
27796 if (vlkeys_[
BLOB].count(key1elem) != 1) {
27797 AppendVLKey(keysds1elem,
BLOB, key1elem);
27798 InsertVLVal(valsds1elem,
BLOB, key1elem, ((*it0)).str());
27800 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1elem.data(), item_size1elem);
27806hvl_t Hdf5Back::VLValToBuf(
const std::list<boost::uuids::uuid>& x) {
27810 size_t total_item_size0=item_size1elem;
27811 size_t nbytes=total_item_size0*buf.len;
27812 buf.p=
new char[nbytes];
27813 unsigned int count0=0;
27814 std::list<boost::uuids::uuid>::const_iterator it0=x.begin();
27815 for(;it0!=x.end();++it0){
27816 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0)), item_size1elem);
27822hvl_t Hdf5Back::VLValToBuf(
const std::map<int, bool>& x) {
27825 size_t item_size1key=
sizeof(int);
27826 size_t item_size1val=
sizeof(char);
27827 size_t total_item_size0=item_size1key+item_size1val;
27828 size_t nbytes=total_item_size0*buf.len;
27829 buf.p=
new char[nbytes];
27830 unsigned int count0=0;
27831 std::map<int, bool>::const_iterator it0=x.begin();
27832 for(;it0!=x.end();++it0){
27833 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27834 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
27840hvl_t Hdf5Back::VLValToBuf(
const std::map<int, int>& x) {
27843 size_t item_size1key=
sizeof(int);
27844 size_t item_size1val=
sizeof(int);
27845 size_t total_item_size0=item_size1key+item_size1val;
27846 size_t nbytes=total_item_size0*buf.len;
27847 buf.p=
new char[nbytes];
27848 unsigned int count0=0;
27849 std::map<int, int>::const_iterator it0=x.begin();
27850 for(;it0!=x.end();++it0){
27851 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27852 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
27858hvl_t Hdf5Back::VLValToBuf(
const std::map<int, float>& x) {
27861 size_t item_size1key=
sizeof(int);
27862 size_t item_size1val=
sizeof(float);
27863 size_t total_item_size0=item_size1key+item_size1val;
27864 size_t nbytes=total_item_size0*buf.len;
27865 buf.p=
new char[nbytes];
27866 unsigned int count0=0;
27867 std::map<int, float>::const_iterator it0=x.begin();
27868 for(;it0!=x.end();++it0){
27869 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27870 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
27876hvl_t Hdf5Back::VLValToBuf(
const std::map<int, double>& x) {
27879 size_t item_size1key=
sizeof(int);
27880 size_t item_size1val=
sizeof(double);
27881 size_t total_item_size0=item_size1key+item_size1val;
27882 size_t nbytes=total_item_size0*buf.len;
27883 buf.p=
new char[nbytes];
27884 unsigned int count0=0;
27885 std::map<int, double>::const_iterator it0=x.begin();
27886 for(;it0!=x.end();++it0){
27887 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27888 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
27894hvl_t Hdf5Back::VLValToBuf(
const std::map<int, std::string>& x) {
27897 size_t item_size1key=
sizeof(int);
27899 size_t total_item_size0=item_size1key+item_size1val;
27900 size_t nbytes=total_item_size0*buf.len;
27901 buf.p=
new char[nbytes];
27902 unsigned int count0=0;
27903 std::map<int, std::string>::const_iterator it0=x.begin();
27904 for(;it0!=x.end();++it0){
27905 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27907 hasher_.
Update(it0->second);
27909 hid_t keysds1val = VLDataset(
VL_STRING,
true);
27910 hid_t valsds1val = VLDataset(
VL_STRING,
false);
27911 if (vlkeys_[
VL_STRING].count(key1val) != 1) {
27912 AppendVLKey(keysds1val,
VL_STRING, key1val);
27913 InsertVLVal(valsds1val,
VL_STRING, key1val, it0->second);
27915 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
27921hvl_t Hdf5Back::VLValToBuf(
const std::map<int, cyclus::Blob>& x) {
27924 size_t item_size1key=
sizeof(int);
27926 size_t total_item_size0=item_size1key+item_size1val;
27927 size_t nbytes=total_item_size0*buf.len;
27928 buf.p=
new char[nbytes];
27929 unsigned int count0=0;
27930 std::map<int, cyclus::Blob>::const_iterator it0=x.begin();
27931 for(;it0!=x.end();++it0){
27932 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27934 hasher_.
Update(it0->second);
27936 hid_t keysds1val = VLDataset(
BLOB,
true);
27937 hid_t valsds1val = VLDataset(
BLOB,
false);
27938 if (vlkeys_[
BLOB].count(key1val) != 1) {
27939 AppendVLKey(keysds1val,
BLOB, key1val);
27940 InsertVLVal(valsds1val,
BLOB, key1val, (it0->second).str());
27942 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
27948hvl_t Hdf5Back::VLValToBuf(
const std::map<int, boost::uuids::uuid>& x) {
27951 size_t item_size1key=
sizeof(int);
27953 size_t total_item_size0=item_size1key+item_size1val;
27954 size_t nbytes=total_item_size0*buf.len;
27955 buf.p=
new char[nbytes];
27956 unsigned int count0=0;
27957 std::map<int, boost::uuids::uuid>::const_iterator it0=x.begin();
27958 for(;it0!=x.end();++it0){
27959 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
27960 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
27966hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, bool>& x) {
27970 size_t item_size1val=
sizeof(char);
27971 size_t total_item_size0=item_size1key+item_size1val;
27972 size_t nbytes=total_item_size0*buf.len;
27973 buf.p=
new char[nbytes];
27974 unsigned int count0=0;
27975 std::map<std::string, bool>::const_iterator it0=x.begin();
27976 for(;it0!=x.end();++it0){
27978 hasher_.
Update(it0->first);
27980 hid_t keysds1key = VLDataset(
VL_STRING,
true);
27981 hid_t valsds1key = VLDataset(
VL_STRING,
false);
27982 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
27983 AppendVLKey(keysds1key,
VL_STRING, key1key);
27984 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
27986 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
27987 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
27993hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, int>& x) {
27997 size_t item_size1val=
sizeof(int);
27998 size_t total_item_size0=item_size1key+item_size1val;
27999 size_t nbytes=total_item_size0*buf.len;
28000 buf.p=
new char[nbytes];
28001 unsigned int count0=0;
28002 std::map<std::string, int>::const_iterator it0=x.begin();
28003 for(;it0!=x.end();++it0){
28005 hasher_.
Update(it0->first);
28007 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28008 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28009 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28010 AppendVLKey(keysds1key,
VL_STRING, key1key);
28011 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28013 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28014 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
28020hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, float>& x) {
28024 size_t item_size1val=
sizeof(float);
28025 size_t total_item_size0=item_size1key+item_size1val;
28026 size_t nbytes=total_item_size0*buf.len;
28027 buf.p=
new char[nbytes];
28028 unsigned int count0=0;
28029 std::map<std::string, float>::const_iterator it0=x.begin();
28030 for(;it0!=x.end();++it0){
28032 hasher_.
Update(it0->first);
28034 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28035 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28036 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28037 AppendVLKey(keysds1key,
VL_STRING, key1key);
28038 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28040 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28041 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
28047hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, double>& x) {
28051 size_t item_size1val=
sizeof(double);
28052 size_t total_item_size0=item_size1key+item_size1val;
28053 size_t nbytes=total_item_size0*buf.len;
28054 buf.p=
new char[nbytes];
28055 unsigned int count0=0;
28056 std::map<std::string, double>::const_iterator it0=x.begin();
28057 for(;it0!=x.end();++it0){
28059 hasher_.
Update(it0->first);
28061 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28062 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28063 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28064 AppendVLKey(keysds1key,
VL_STRING, key1key);
28065 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28067 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28068 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
28074hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::string>& x) {
28079 size_t total_item_size0=item_size1key+item_size1val;
28080 size_t nbytes=total_item_size0*buf.len;
28081 buf.p=
new char[nbytes];
28082 unsigned int count0=0;
28083 std::map<std::string, std::string>::const_iterator it0=x.begin();
28084 for(;it0!=x.end();++it0){
28086 hasher_.
Update(it0->first);
28088 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28089 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28090 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28091 AppendVLKey(keysds1key,
VL_STRING, key1key);
28092 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28094 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28096 hasher_.
Update(it0->second);
28098 hid_t keysds1val = VLDataset(
VL_STRING,
true);
28099 hid_t valsds1val = VLDataset(
VL_STRING,
false);
28100 if (vlkeys_[
VL_STRING].count(key1val) != 1) {
28101 AppendVLKey(keysds1val,
VL_STRING, key1val);
28102 InsertVLVal(valsds1val,
VL_STRING, key1val, it0->second);
28104 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28110hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, cyclus::Blob>& x) {
28115 size_t total_item_size0=item_size1key+item_size1val;
28116 size_t nbytes=total_item_size0*buf.len;
28117 buf.p=
new char[nbytes];
28118 unsigned int count0=0;
28119 std::map<std::string, cyclus::Blob>::const_iterator it0=x.begin();
28120 for(;it0!=x.end();++it0){
28122 hasher_.
Update(it0->first);
28124 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28125 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28126 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28127 AppendVLKey(keysds1key,
VL_STRING, key1key);
28128 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28130 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28132 hasher_.
Update(it0->second);
28134 hid_t keysds1val = VLDataset(
BLOB,
true);
28135 hid_t valsds1val = VLDataset(
BLOB,
false);
28136 if (vlkeys_[
BLOB].count(key1val) != 1) {
28137 AppendVLKey(keysds1val,
BLOB, key1val);
28138 InsertVLVal(valsds1val,
BLOB, key1val, (it0->second).str());
28140 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28146hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, boost::uuids::uuid>& x) {
28151 size_t total_item_size0=item_size1key+item_size1val;
28152 size_t nbytes=total_item_size0*buf.len;
28153 buf.p=
new char[nbytes];
28154 unsigned int count0=0;
28155 std::map<std::string, boost::uuids::uuid>::const_iterator it0=x.begin();
28156 for(;it0!=x.end();++it0){
28158 hasher_.
Update(it0->first);
28160 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28161 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28162 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28163 AppendVLKey(keysds1key,
VL_STRING, key1key);
28164 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28166 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28167 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
28173hvl_t Hdf5Back::VLValToBuf(
const std::map<std::pair<int, std::string>,
double>& x) {
28176 size_t item_size2keyfirst=
sizeof(int);
28178 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
28179 size_t item_size1key=total_item_size1key;
28180 size_t item_size1val=
sizeof(double);
28181 size_t total_item_size0=item_size1key+item_size1val;
28182 size_t nbytes=total_item_size0*buf.len;
28183 buf.p=
new char[nbytes];
28184 unsigned int count0=0;
28185 std::map<std::pair<int, std::string>,
double>::const_iterator it0=x.begin();
28186 for(;it0!=x.end();++it0){
28187 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first.first), item_size2keyfirst);
28189 hasher_.
Update(it0->first.second);
28191 hid_t keysds2keysecond = VLDataset(
VL_STRING,
true);
28192 hid_t valsds2keysecond = VLDataset(
VL_STRING,
false);
28193 if (vlkeys_[
VL_STRING].count(key2keysecond) != 1) {
28194 AppendVLKey(keysds2keysecond,
VL_STRING, key2keysecond);
28195 InsertVLVal(valsds2keysecond,
VL_STRING, key2keysecond, it0->first.second);
28197 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size2keyfirst, key2keysecond.data(), item_size2keysecond);
28198 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
28204hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::vector<double>>& x) {
28209 size_t total_item_size0=item_size1key+item_size1val;
28210 size_t nbytes=total_item_size0*buf.len;
28211 buf.p=
new char[nbytes];
28212 unsigned int count0=0;
28213 std::map<std::string, std::vector<double>>::const_iterator it0=x.begin();
28214 for(;it0!=x.end();++it0){
28216 hasher_.
Update(it0->first);
28218 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28219 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28220 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28221 AppendVLKey(keysds1key,
VL_STRING, key1key);
28222 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28224 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28226 hasher_.
Update(it0->second);
28231 hvl_t buf1val = VLValToBuf(it0->second);
28235 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28241hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::map<int, double>>& x) {
28246 size_t total_item_size0=item_size1key+item_size1val;
28247 size_t nbytes=total_item_size0*buf.len;
28248 buf.p=
new char[nbytes];
28249 unsigned int count0=0;
28250 std::map<std::string, std::map<int, double>>::const_iterator it0=x.begin();
28251 for(;it0!=x.end();++it0){
28253 hasher_.
Update(it0->first);
28255 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28256 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28257 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28258 AppendVLKey(keysds1key,
VL_STRING, key1key);
28259 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28261 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28263 hasher_.
Update(it0->second);
28268 hvl_t buf1val = VLValToBuf(it0->second);
28272 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28278hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::pair<
double, std::map<int, double>>>& x) {
28281 size_t item_size2valfirst=
sizeof(double);
28283 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
28285 size_t item_size1val=total_item_size1val;
28286 size_t total_item_size0=item_size1key+item_size1val;
28287 size_t nbytes=total_item_size0*buf.len;
28288 buf.p=
new char[nbytes];
28289 unsigned int count0=0;
28290 std::map<std::string, std::pair<double, std::map<int, double>>>::const_iterator it0=x.begin();
28291 for(;it0!=x.end();++it0){
28293 hasher_.
Update(it0->first);
28295 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28296 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28297 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28298 AppendVLKey(keysds1key,
VL_STRING, key1key);
28299 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28301 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28302 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second.first), item_size2valfirst);
28304 hasher_.
Update(it0->second.second);
28309 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
28311 InsertVLVal(valsds2valsecond,
VL_MAP_INT_DOUBLE, key2valsecond, buf2valsecond);
28313 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key+item_size2valfirst, key2valsecond.data(), item_size2valsecond);
28319hvl_t Hdf5Back::VLValToBuf(
const std::map<
int, std::map<std::string, double>>& x) {
28322 size_t item_size1key=
sizeof(int);
28324 size_t total_item_size0=item_size1key+item_size1val;
28325 size_t nbytes=total_item_size0*buf.len;
28326 buf.p=
new char[nbytes];
28327 unsigned int count0=0;
28328 std::map<int, std::map<std::string, double>>::const_iterator it0=x.begin();
28329 for(;it0!=x.end();++it0){
28330 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &(it0->first), item_size1key);
28332 hasher_.
Update(it0->second);
28337 hvl_t buf1val = VLValToBuf(it0->second);
28341 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28347hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::vector<std::pair<
int, std::pair<std::string, std::string>>>>& x) {
28352 size_t total_item_size0=item_size1key+item_size1val;
28353 size_t nbytes=total_item_size0*buf.len;
28354 buf.p=
new char[nbytes];
28355 unsigned int count0=0;
28356 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>::const_iterator it0=x.begin();
28357 for(;it0!=x.end();++it0){
28359 hasher_.
Update(it0->first);
28361 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28362 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28363 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28364 AppendVLKey(keysds1key,
VL_STRING, key1key);
28365 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28367 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28369 hasher_.
Update(it0->second);
28374 hvl_t buf1val = VLValToBuf(it0->second);
28378 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28384hvl_t Hdf5Back::VLValToBuf(
const std::list<std::pair<int, int>>& x) {
28387 size_t item_size2elemfirst=
sizeof(int);
28388 size_t item_size2elemsecond=
sizeof(int);
28389 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
28390 size_t item_size1elem=total_item_size1elem;
28391 size_t total_item_size0=item_size1elem;
28392 size_t nbytes=total_item_size0*buf.len;
28393 buf.p=
new char[nbytes];
28394 unsigned int count0=0;
28395 std::list<std::pair<int, int>>::const_iterator it0=x.begin();
28396 for(;it0!=x.end();++it0){
28397 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0).first), item_size2elemfirst);
28398 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size2elemfirst, &((*it0).second), item_size2elemsecond);
28404hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::pair<std::string, std::vector<double>>>& x) {
28409 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
28411 size_t item_size1val=total_item_size1val;
28412 size_t total_item_size0=item_size1key+item_size1val;
28413 size_t nbytes=total_item_size0*buf.len;
28414 buf.p=
new char[nbytes];
28415 unsigned int count0=0;
28416 std::map<std::string, std::pair<std::string, std::vector<double>>>::const_iterator it0=x.begin();
28417 for(;it0!=x.end();++it0){
28419 hasher_.
Update(it0->first);
28421 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28422 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28423 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28424 AppendVLKey(keysds1key,
VL_STRING, key1key);
28425 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28427 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28429 hasher_.
Update(it0->second.first);
28431 hid_t keysds2valfirst = VLDataset(
VL_STRING,
true);
28432 hid_t valsds2valfirst = VLDataset(
VL_STRING,
false);
28433 if (vlkeys_[
VL_STRING].count(key2valfirst) != 1) {
28434 AppendVLKey(keysds2valfirst,
VL_STRING, key2valfirst);
28435 InsertVLVal(valsds2valfirst,
VL_STRING, key2valfirst, it0->second.first);
28437 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key2valfirst.data(), item_size2valfirst);
28439 hasher_.
Update(it0->second.second);
28444 hvl_t buf2valsecond = VLValToBuf(it0->second.second);
28446 InsertVLVal(valsds2valsecond,
VL_VECTOR_DOUBLE, key2valsecond, buf2valsecond);
28448 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key+item_size2valfirst, key2valsecond.data(), item_size2valsecond);
28454hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::map<std::string, int>>& x) {
28459 size_t total_item_size0=item_size1key+item_size1val;
28460 size_t nbytes=total_item_size0*buf.len;
28461 buf.p=
new char[nbytes];
28462 unsigned int count0=0;
28463 std::map<std::string, std::map<std::string, int>>::const_iterator it0=x.begin();
28464 for(;it0!=x.end();++it0){
28466 hasher_.
Update(it0->first);
28468 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28469 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28470 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28471 AppendVLKey(keysds1key,
VL_STRING, key1key);
28472 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28474 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28476 hasher_.
Update(it0->second);
28481 hvl_t buf1val = VLValToBuf(it0->second);
28485 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28491hvl_t Hdf5Back::VLValToBuf(
const std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>& x) {
28494 size_t item_size3elemfirstfirst=
sizeof(double);
28495 size_t item_size3elemfirstsecond=
sizeof(double);
28496 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
28497 size_t item_size2elemfirst=total_item_size2elemfirst;
28499 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
28500 size_t item_size1elem=total_item_size1elem;
28501 size_t total_item_size0=item_size1elem;
28502 size_t nbytes=total_item_size0*buf.len;
28503 buf.p=
new char[nbytes];
28504 unsigned int count0=0;
28505 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>::const_iterator it0=x.begin();
28506 for(;it0!=x.end();++it0){
28507 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0).first.first), item_size3elemfirstfirst);
28508 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size3elemfirstfirst, &((*it0).first.second), item_size3elemfirstsecond);
28510 hasher_.
Update((*it0).second);
28515 hvl_t buf2elemsecond = VLValToBuf((*it0).second);
28519 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size2elemfirst, key2elemsecond.data(), item_size2elemsecond);
28525hvl_t Hdf5Back::VLValToBuf(
const std::vector<std::pair<
int, std::pair<std::string, std::string>>>& x) {
28530 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
28531 size_t item_size2elemfirst=
sizeof(int);
28532 size_t item_size2elemsecond=total_item_size2elemsecond;
28533 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
28534 size_t item_size1elem=total_item_size1elem;
28535 size_t total_item_size0=item_size1elem;
28536 size_t nbytes=total_item_size0*buf.len;
28537 buf.p=
new char[nbytes];
28538 unsigned int count0=0;
28539 std::vector<std::pair<int, std::pair<std::string, std::string>>>::const_iterator it0=x.begin();
28540 for(;it0!=x.end();++it0){
28541 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), &((*it0).first), item_size2elemfirst);
28543 hasher_.
Update((*it0).second.first);
28545 hid_t keysds3elemsecondfirst = VLDataset(
VL_STRING,
true);
28546 hid_t valsds3elemsecondfirst = VLDataset(
VL_STRING,
false);
28547 if (vlkeys_[
VL_STRING].count(key3elemsecondfirst) != 1) {
28548 AppendVLKey(keysds3elemsecondfirst,
VL_STRING, key3elemsecondfirst);
28549 InsertVLVal(valsds3elemsecondfirst,
VL_STRING, key3elemsecondfirst, (*it0).second.first);
28551 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size2elemfirst, key3elemsecondfirst.data(), item_size3elemsecondfirst);
28553 hasher_.
Update((*it0).second.second);
28555 hid_t keysds3elemsecondsecond = VLDataset(
VL_STRING,
true);
28556 hid_t valsds3elemsecondsecond = VLDataset(
VL_STRING,
false);
28557 if (vlkeys_[
VL_STRING].count(key3elemsecondsecond) != 1) {
28558 AppendVLKey(keysds3elemsecondsecond,
VL_STRING, key3elemsecondsecond);
28559 InsertVLVal(valsds3elemsecondsecond,
VL_STRING, key3elemsecondsecond, (*it0).second.second);
28561 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size2elemfirst+item_size3elemsecondfirst, key3elemsecondsecond.data(), item_size3elemsecondsecond);
28567hvl_t Hdf5Back::VLValToBuf(
const std::map<std::pair<std::string, std::string>,
int>& x) {
28572 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
28573 size_t item_size1key=total_item_size1key;
28574 size_t item_size1val=
sizeof(int);
28575 size_t total_item_size0=item_size1key+item_size1val;
28576 size_t nbytes=total_item_size0*buf.len;
28577 buf.p=
new char[nbytes];
28578 unsigned int count0=0;
28579 std::map<std::pair<std::string, std::string>,
int>::const_iterator it0=x.begin();
28580 for(;it0!=x.end();++it0){
28582 hasher_.
Update(it0->first.first);
28584 hid_t keysds2keyfirst = VLDataset(
VL_STRING,
true);
28585 hid_t valsds2keyfirst = VLDataset(
VL_STRING,
false);
28586 if (vlkeys_[
VL_STRING].count(key2keyfirst) != 1) {
28587 AppendVLKey(keysds2keyfirst,
VL_STRING, key2keyfirst);
28588 InsertVLVal(valsds2keyfirst,
VL_STRING, key2keyfirst, it0->first.first);
28590 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key2keyfirst.data(), item_size2keyfirst);
28592 hasher_.
Update(it0->first.second);
28594 hid_t keysds2keysecond = VLDataset(
VL_STRING,
true);
28595 hid_t valsds2keysecond = VLDataset(
VL_STRING,
false);
28596 if (vlkeys_[
VL_STRING].count(key2keysecond) != 1) {
28597 AppendVLKey(keysds2keysecond,
VL_STRING, key2keysecond);
28598 InsertVLVal(valsds2keysecond,
VL_STRING, key2keysecond, it0->first.second);
28600 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size2keyfirst, key2keysecond.data(), item_size2keysecond);
28601 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, &(it0->second), item_size1val);
28607hvl_t Hdf5Back::VLValToBuf(
const std::map<std::string, std::map<std::string, double>>& x) {
28612 size_t total_item_size0=item_size1key+item_size1val;
28613 size_t nbytes=total_item_size0*buf.len;
28614 buf.p=
new char[nbytes];
28615 unsigned int count0=0;
28616 std::map<std::string, std::map<std::string, double>>::const_iterator it0=x.begin();
28617 for(;it0!=x.end();++it0){
28619 hasher_.
Update(it0->first);
28621 hid_t keysds1key = VLDataset(
VL_STRING,
true);
28622 hid_t valsds1key = VLDataset(
VL_STRING,
false);
28623 if (vlkeys_[
VL_STRING].count(key1key) != 1) {
28624 AppendVLKey(keysds1key,
VL_STRING, key1key);
28625 InsertVLVal(valsds1key,
VL_STRING, key1key, it0->first);
28627 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0), key1key.data(), item_size1key);
28629 hasher_.
Update(it0->second);
28634 hvl_t buf1val = VLValToBuf(it0->second);
28638 memcpy(
reinterpret_cast<char*
>(buf.p)+(total_item_size0*count0)+item_size1key, key1val.data(), item_size1val);
28648std::vector<int> Hdf5Back::VLBufToVal<std::vector<int>>(
const hvl_t& buf) {
28649 std::vector<int> x0;
28650 char* p=
reinterpret_cast<char*
>(buf.p);
28651 size_t item_size1elem=
sizeof(int);
28652 size_t total_item_size0=item_size1elem;
28653 unsigned int count0=0;
28654 for(;count0<buf.len;++count0){
28655 int x1elem=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28656 x0.push_back(x1elem);
28662std::vector<float> Hdf5Back::VLBufToVal<std::vector<float>>(
const hvl_t& buf) {
28663 std::vector<float> x0;
28664 char* p=
reinterpret_cast<char*
>(buf.p);
28665 size_t item_size1elem=
sizeof(float);
28666 size_t total_item_size0=item_size1elem;
28667 unsigned int count0=0;
28668 for(;count0<buf.len;++count0){
28669 float x1elem=*
reinterpret_cast<float*
>(p+(total_item_size0*count0));
28670 x0.push_back(x1elem);
28676std::vector<double> Hdf5Back::VLBufToVal<std::vector<double>>(
const hvl_t& buf) {
28677 std::vector<double> x0;
28678 char* p=
reinterpret_cast<char*
>(buf.p);
28679 size_t item_size1elem=
sizeof(double);
28680 size_t total_item_size0=item_size1elem;
28681 unsigned int count0=0;
28682 for(;count0<buf.len;++count0){
28683 double x1elem=*
reinterpret_cast<double*
>(p+(total_item_size0*count0));
28684 x0.push_back(x1elem);
28690std::vector<std::string> Hdf5Back::VLBufToVal<std::vector<std::string>>(
const hvl_t& buf) {
28691 std::vector<std::string> x0;
28692 char* p=
reinterpret_cast<char*
>(buf.p);
28694 size_t total_item_size0=item_size1elem;
28695 unsigned int count0=0;
28696 for(;count0<buf.len;++count0){
28698 x0.push_back(x1elem);
28704std::vector<cyclus::Blob> Hdf5Back::VLBufToVal<std::vector<cyclus::Blob>>(
const hvl_t& buf) {
28705 std::vector<cyclus::Blob> x0;
28706 char* p=
reinterpret_cast<char*
>(buf.p);
28708 size_t total_item_size0=item_size1elem;
28709 unsigned int count0=0;
28710 for(;count0<buf.len;++count0){
28711 cyclus::Blob x1elem=VLRead<cyclus::Blob,BLOB>(p+(total_item_size0*count0));
28712 x0.push_back(x1elem);
28718std::vector<boost::uuids::uuid> Hdf5Back::VLBufToVal<std::vector<boost::uuids::uuid>>(
const hvl_t& buf) {
28719 std::vector<boost::uuids::uuid> x0;
28720 char* p=
reinterpret_cast<char*
>(buf.p);
28722 size_t total_item_size0=item_size1elem;
28723 unsigned int count0=0;
28724 for(;count0<buf.len;++count0){
28725 boost::uuids::uuid x1elem=*
reinterpret_cast<boost::uuids::uuid*
>(p+(total_item_size0*count0));
28726 x0.push_back(x1elem);
28732std::set<int> Hdf5Back::VLBufToVal<std::set<int>>(
const hvl_t& buf) {
28734 char* p=
reinterpret_cast<char*
>(buf.p);
28735 size_t item_size1elem=
sizeof(int);
28736 size_t total_item_size0=item_size1elem;
28737 unsigned int count0=0;
28738 for(;count0<buf.len;++count0){
28739 int x1elem=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28746std::set<float> Hdf5Back::VLBufToVal<std::set<float>>(
const hvl_t& buf) {
28747 std::set<float> x0;
28748 char* p=
reinterpret_cast<char*
>(buf.p);
28749 size_t item_size1elem=
sizeof(float);
28750 size_t total_item_size0=item_size1elem;
28751 unsigned int count0=0;
28752 for(;count0<buf.len;++count0){
28753 float x1elem=*
reinterpret_cast<float*
>(p+(total_item_size0*count0));
28760std::set<double> Hdf5Back::VLBufToVal<std::set<double>>(
const hvl_t& buf) {
28761 std::set<double> x0;
28762 char* p=
reinterpret_cast<char*
>(buf.p);
28763 size_t item_size1elem=
sizeof(double);
28764 size_t total_item_size0=item_size1elem;
28765 unsigned int count0=0;
28766 for(;count0<buf.len;++count0){
28767 double x1elem=*
reinterpret_cast<double*
>(p+(total_item_size0*count0));
28774std::set<std::string> Hdf5Back::VLBufToVal<std::set<std::string>>(
const hvl_t& buf) {
28775 std::set<std::string> x0;
28776 char* p=
reinterpret_cast<char*
>(buf.p);
28778 size_t total_item_size0=item_size1elem;
28779 unsigned int count0=0;
28780 for(;count0<buf.len;++count0){
28788std::set<cyclus::Blob> Hdf5Back::VLBufToVal<std::set<cyclus::Blob>>(
const hvl_t& buf) {
28789 std::set<cyclus::Blob> x0;
28790 char* p=
reinterpret_cast<char*
>(buf.p);
28792 size_t total_item_size0=item_size1elem;
28793 unsigned int count0=0;
28794 for(;count0<buf.len;++count0){
28795 cyclus::Blob x1elem=VLRead<cyclus::Blob,BLOB>(p+(total_item_size0*count0));
28802std::set<boost::uuids::uuid> Hdf5Back::VLBufToVal<std::set<boost::uuids::uuid>>(
const hvl_t& buf) {
28803 std::set<boost::uuids::uuid> x0;
28804 char* p=
reinterpret_cast<char*
>(buf.p);
28806 size_t total_item_size0=item_size1elem;
28807 unsigned int count0=0;
28808 for(;count0<buf.len;++count0){
28809 boost::uuids::uuid x1elem=*
reinterpret_cast<boost::uuids::uuid*
>(p+(total_item_size0*count0));
28816std::list<bool> Hdf5Back::VLBufToVal<std::list<bool>>(
const hvl_t& buf) {
28817 std::list<bool> x0;
28818 char* p=
reinterpret_cast<char*
>(buf.p);
28819 size_t item_size1elem=
sizeof(char);
28820 size_t total_item_size0=item_size1elem;
28821 unsigned int count0=0;
28822 for(;count0<buf.len;++count0){
28823 bool x1elem=*
reinterpret_cast<bool*
>(p+(total_item_size0*count0));
28824 x0.push_back(x1elem);
28830std::list<int> Hdf5Back::VLBufToVal<std::list<int>>(
const hvl_t& buf) {
28832 char* p=
reinterpret_cast<char*
>(buf.p);
28833 size_t item_size1elem=
sizeof(int);
28834 size_t total_item_size0=item_size1elem;
28835 unsigned int count0=0;
28836 for(;count0<buf.len;++count0){
28837 int x1elem=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28838 x0.push_back(x1elem);
28844std::list<float> Hdf5Back::VLBufToVal<std::list<float>>(
const hvl_t& buf) {
28845 std::list<float> x0;
28846 char* p=
reinterpret_cast<char*
>(buf.p);
28847 size_t item_size1elem=
sizeof(float);
28848 size_t total_item_size0=item_size1elem;
28849 unsigned int count0=0;
28850 for(;count0<buf.len;++count0){
28851 float x1elem=*
reinterpret_cast<float*
>(p+(total_item_size0*count0));
28852 x0.push_back(x1elem);
28858std::list<double> Hdf5Back::VLBufToVal<std::list<double>>(
const hvl_t& buf) {
28859 std::list<double> x0;
28860 char* p=
reinterpret_cast<char*
>(buf.p);
28861 size_t item_size1elem=
sizeof(double);
28862 size_t total_item_size0=item_size1elem;
28863 unsigned int count0=0;
28864 for(;count0<buf.len;++count0){
28865 double x1elem=*
reinterpret_cast<double*
>(p+(total_item_size0*count0));
28866 x0.push_back(x1elem);
28872std::list<std::string> Hdf5Back::VLBufToVal<std::list<std::string>>(
const hvl_t& buf) {
28873 std::list<std::string> x0;
28874 char* p=
reinterpret_cast<char*
>(buf.p);
28876 size_t total_item_size0=item_size1elem;
28877 unsigned int count0=0;
28878 for(;count0<buf.len;++count0){
28880 x0.push_back(x1elem);
28886std::list<cyclus::Blob> Hdf5Back::VLBufToVal<std::list<cyclus::Blob>>(
const hvl_t& buf) {
28887 std::list<cyclus::Blob> x0;
28888 char* p=
reinterpret_cast<char*
>(buf.p);
28890 size_t total_item_size0=item_size1elem;
28891 unsigned int count0=0;
28892 for(;count0<buf.len;++count0){
28893 cyclus::Blob x1elem=VLRead<cyclus::Blob,BLOB>(p+(total_item_size0*count0));
28894 x0.push_back(x1elem);
28900std::list<boost::uuids::uuid> Hdf5Back::VLBufToVal<std::list<boost::uuids::uuid>>(
const hvl_t& buf) {
28901 std::list<boost::uuids::uuid> x0;
28902 char* p=
reinterpret_cast<char*
>(buf.p);
28904 size_t total_item_size0=item_size1elem;
28905 unsigned int count0=0;
28906 for(;count0<buf.len;++count0){
28907 boost::uuids::uuid x1elem=*
reinterpret_cast<boost::uuids::uuid*
>(p+(total_item_size0*count0));
28908 x0.push_back(x1elem);
28914std::map<int, bool> Hdf5Back::VLBufToVal<std::map<int, bool>>(
const hvl_t& buf) {
28915 std::map<int, bool> x0;
28916 char* p=
reinterpret_cast<char*
>(buf.p);
28917 size_t item_size1key=
sizeof(int);
28918 size_t item_size1val=
sizeof(char);
28919 size_t total_item_size0=item_size1key+item_size1val;
28920 unsigned int count0=0;
28921 for(;count0<buf.len;++count0){
28922 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28923 bool x1val=*
reinterpret_cast<bool*
>(p+(total_item_size0*count0)+item_size1key);
28930std::map<int, int> Hdf5Back::VLBufToVal<std::map<int, int>>(
const hvl_t& buf) {
28931 std::map<int, int> x0;
28932 char* p=
reinterpret_cast<char*
>(buf.p);
28933 size_t item_size1key=
sizeof(int);
28934 size_t item_size1val=
sizeof(int);
28935 size_t total_item_size0=item_size1key+item_size1val;
28936 unsigned int count0=0;
28937 for(;count0<buf.len;++count0){
28938 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28939 int x1val=*
reinterpret_cast<int*
>(p+(total_item_size0*count0)+item_size1key);
28946std::map<int, float> Hdf5Back::VLBufToVal<std::map<int, float>>(
const hvl_t& buf) {
28947 std::map<int, float> x0;
28948 char* p=
reinterpret_cast<char*
>(buf.p);
28949 size_t item_size1key=
sizeof(int);
28950 size_t item_size1val=
sizeof(float);
28951 size_t total_item_size0=item_size1key+item_size1val;
28952 unsigned int count0=0;
28953 for(;count0<buf.len;++count0){
28954 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28955 float x1val=*
reinterpret_cast<float*
>(p+(total_item_size0*count0)+item_size1key);
28962std::map<int, double> Hdf5Back::VLBufToVal<std::map<int, double>>(
const hvl_t& buf) {
28963 std::map<int, double> x0;
28964 char* p=
reinterpret_cast<char*
>(buf.p);
28965 size_t item_size1key=
sizeof(int);
28966 size_t item_size1val=
sizeof(double);
28967 size_t total_item_size0=item_size1key+item_size1val;
28968 unsigned int count0=0;
28969 for(;count0<buf.len;++count0){
28970 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28971 double x1val=*
reinterpret_cast<double*
>(p+(total_item_size0*count0)+item_size1key);
28978std::map<int, std::string> Hdf5Back::VLBufToVal<std::map<int, std::string>>(
const hvl_t& buf) {
28979 std::map<int, std::string> x0;
28980 char* p=
reinterpret_cast<char*
>(buf.p);
28981 size_t item_size1key=
sizeof(int);
28983 size_t total_item_size0=item_size1key+item_size1val;
28984 unsigned int count0=0;
28985 for(;count0<buf.len;++count0){
28986 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
28994std::map<int, cyclus::Blob> Hdf5Back::VLBufToVal<std::map<int, cyclus::Blob>>(
const hvl_t& buf) {
28995 std::map<int, cyclus::Blob> x0;
28996 char* p=
reinterpret_cast<char*
>(buf.p);
28997 size_t item_size1key=
sizeof(int);
28999 size_t total_item_size0=item_size1key+item_size1val;
29000 unsigned int count0=0;
29001 for(;count0<buf.len;++count0){
29002 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
29003 cyclus::Blob x1val=VLRead<cyclus::Blob,BLOB>(p+(total_item_size0*count0)+item_size1key);
29010std::map<int, boost::uuids::uuid> Hdf5Back::VLBufToVal<std::map<int, boost::uuids::uuid>>(
const hvl_t& buf) {
29011 std::map<int, boost::uuids::uuid> x0;
29012 char* p=
reinterpret_cast<char*
>(buf.p);
29013 size_t item_size1key=
sizeof(int);
29015 size_t total_item_size0=item_size1key+item_size1val;
29016 unsigned int count0=0;
29017 for(;count0<buf.len;++count0){
29018 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
29019 boost::uuids::uuid x1val=*
reinterpret_cast<boost::uuids::uuid*
>(p+(total_item_size0*count0)+item_size1key);
29026std::map<std::string, bool> Hdf5Back::VLBufToVal<std::map<std::string, bool>>(
const hvl_t& buf) {
29027 std::map<std::string, bool> x0;
29028 char* p=
reinterpret_cast<char*
>(buf.p);
29030 size_t item_size1val=
sizeof(char);
29031 size_t total_item_size0=item_size1key+item_size1val;
29032 unsigned int count0=0;
29033 for(;count0<buf.len;++count0){
29035 bool x1val=*
reinterpret_cast<bool*
>(p+(total_item_size0*count0)+item_size1key);
29042std::map<std::string, int> Hdf5Back::VLBufToVal<std::map<std::string, int>>(
const hvl_t& buf) {
29043 std::map<std::string, int> x0;
29044 char* p=
reinterpret_cast<char*
>(buf.p);
29046 size_t item_size1val=
sizeof(int);
29047 size_t total_item_size0=item_size1key+item_size1val;
29048 unsigned int count0=0;
29049 for(;count0<buf.len;++count0){
29051 int x1val=*
reinterpret_cast<int*
>(p+(total_item_size0*count0)+item_size1key);
29058std::map<std::string, float> Hdf5Back::VLBufToVal<std::map<std::string, float>>(
const hvl_t& buf) {
29059 std::map<std::string, float> x0;
29060 char* p=
reinterpret_cast<char*
>(buf.p);
29062 size_t item_size1val=
sizeof(float);
29063 size_t total_item_size0=item_size1key+item_size1val;
29064 unsigned int count0=0;
29065 for(;count0<buf.len;++count0){
29067 float x1val=*
reinterpret_cast<float*
>(p+(total_item_size0*count0)+item_size1key);
29074std::map<std::string, double> Hdf5Back::VLBufToVal<std::map<std::string, double>>(
const hvl_t& buf) {
29075 std::map<std::string, double> x0;
29076 char* p=
reinterpret_cast<char*
>(buf.p);
29078 size_t item_size1val=
sizeof(double);
29079 size_t total_item_size0=item_size1key+item_size1val;
29080 unsigned int count0=0;
29081 for(;count0<buf.len;++count0){
29083 double x1val=*
reinterpret_cast<double*
>(p+(total_item_size0*count0)+item_size1key);
29090std::map<std::string, std::string> Hdf5Back::VLBufToVal<std::map<std::string, std::string>>(
const hvl_t& buf) {
29091 std::map<std::string, std::string> x0;
29092 char* p=
reinterpret_cast<char*
>(buf.p);
29095 size_t total_item_size0=item_size1key+item_size1val;
29096 unsigned int count0=0;
29097 for(;count0<buf.len;++count0){
29106std::map<std::string, cyclus::Blob> Hdf5Back::VLBufToVal<std::map<std::string, cyclus::Blob>>(
const hvl_t& buf) {
29107 std::map<std::string, cyclus::Blob> x0;
29108 char* p=
reinterpret_cast<char*
>(buf.p);
29111 size_t total_item_size0=item_size1key+item_size1val;
29112 unsigned int count0=0;
29113 for(;count0<buf.len;++count0){
29115 cyclus::Blob x1val=VLRead<cyclus::Blob,BLOB>(p+(total_item_size0*count0)+item_size1key);
29122std::map<std::string, boost::uuids::uuid> Hdf5Back::VLBufToVal<std::map<std::string, boost::uuids::uuid>>(
const hvl_t& buf) {
29123 std::map<std::string, boost::uuids::uuid> x0;
29124 char* p=
reinterpret_cast<char*
>(buf.p);
29127 size_t total_item_size0=item_size1key+item_size1val;
29128 unsigned int count0=0;
29129 for(;count0<buf.len;++count0){
29131 boost::uuids::uuid x1val=*
reinterpret_cast<boost::uuids::uuid*
>(p+(total_item_size0*count0)+item_size1key);
29138std::map<std::pair<int, std::string>,
double> Hdf5Back::VLBufToVal<std::map<std::pair<int, std::string>,
double>>(
const hvl_t& buf) {
29139 std::map<std::pair<int, std::string>,
double> x0;
29140 char* p=
reinterpret_cast<char*
>(buf.p);
29141 size_t item_size2keyfirst=
sizeof(int);
29143 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
29144 size_t item_size1key=total_item_size1key;
29145 size_t item_size1val=
sizeof(double);
29146 size_t total_item_size0=item_size1key+item_size1val;
29147 unsigned int count0=0;
29148 for(;count0<buf.len;++count0){
29149 std::pair<int, std::string> x1key;
29150 int x2keyfirst=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
29152 x1key = std::make_pair(x2keyfirst,x2keysecond);
29153 double x1val=*
reinterpret_cast<double*
>(p+(total_item_size0*count0)+item_size1key);
29160std::map<std::string, std::vector<double>> Hdf5Back::VLBufToVal<std::map<std::string, std::vector<double>>>(
const hvl_t& buf) {
29161 std::map<std::string, std::vector<double>> x0;
29162 char* p=
reinterpret_cast<char*
>(buf.p);
29165 size_t total_item_size0=item_size1key+item_size1val;
29166 unsigned int count0=0;
29167 for(;count0<buf.len;++count0){
29169 std::vector<double> x1val=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(p+(total_item_size0*count0)+item_size1key);
29176std::map<std::string, std::map<int, double>> Hdf5Back::VLBufToVal<std::map<std::string, std::map<int, double>>>(
const hvl_t& buf) {
29177 std::map<std::string, std::map<int, double>> x0;
29178 char* p=
reinterpret_cast<char*
>(buf.p);
29181 size_t total_item_size0=item_size1key+item_size1val;
29182 unsigned int count0=0;
29183 for(;count0<buf.len;++count0){
29185 std::map<int, double> x1val=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(p+(total_item_size0*count0)+item_size1key);
29192std::map<std::string, std::pair<double, std::map<int, double>>> Hdf5Back::VLBufToVal<std::map<std::string, std::pair<double, std::map<int, double>>>>(
const hvl_t& buf) {
29193 std::map<std::string, std::pair<double, std::map<int, double>>> x0;
29194 char* p=
reinterpret_cast<char*
>(buf.p);
29195 size_t item_size2valfirst=
sizeof(double);
29197 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
29199 size_t item_size1val=total_item_size1val;
29200 size_t total_item_size0=item_size1key+item_size1val;
29201 unsigned int count0=0;
29202 for(;count0<buf.len;++count0){
29204 std::pair<double, std::map<int, double>> x1val;
29205 double x2valfirst=*
reinterpret_cast<double*
>(p+(total_item_size0*count0)+item_size1key);
29206 std::map<int, double> x2valsecond=VLRead<std::map<int, double>,
VL_MAP_INT_DOUBLE>(p+(total_item_size0*count0)+item_size1key+item_size2valfirst);
29207 x1val = std::make_pair(x2valfirst,x2valsecond);
29214std::map<int, std::map<std::string, double>> Hdf5Back::VLBufToVal<std::map<int, std::map<std::string, double>>>(
const hvl_t& buf) {
29215 std::map<int, std::map<std::string, double>> x0;
29216 char* p=
reinterpret_cast<char*
>(buf.p);
29217 size_t item_size1key=
sizeof(int);
29219 size_t total_item_size0=item_size1key+item_size1val;
29220 unsigned int count0=0;
29221 for(;count0<buf.len;++count0){
29222 int x1key=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
29223 std::map<std::string, double> x1val=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(p+(total_item_size0*count0)+item_size1key);
29230std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> Hdf5Back::VLBufToVal<std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>>>(
const hvl_t& buf) {
29231 std::map<std::string, std::vector<std::pair<int, std::pair<std::string, std::string>>>> x0;
29232 char* p=
reinterpret_cast<char*
>(buf.p);
29235 size_t total_item_size0=item_size1key+item_size1val;
29236 unsigned int count0=0;
29237 for(;count0<buf.len;++count0){
29239 std::vector<std::pair<int, std::pair<std::string, std::string>>> x1val=VLRead<std::vector<std::pair<int, std::pair<std::string, std::string>>>,
VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING>(p+(total_item_size0*count0)+item_size1key);
29246std::list<std::pair<int, int>> Hdf5Back::VLBufToVal<std::list<std::pair<int, int>>>(
const hvl_t& buf) {
29247 std::list<std::pair<int, int>> x0;
29248 char* p=
reinterpret_cast<char*
>(buf.p);
29249 size_t item_size2elemfirst=
sizeof(int);
29250 size_t item_size2elemsecond=
sizeof(int);
29251 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
29252 size_t item_size1elem=total_item_size1elem;
29253 size_t total_item_size0=item_size1elem;
29254 unsigned int count0=0;
29255 for(;count0<buf.len;++count0){
29256 std::pair<int, int> x1elem;
29257 int x2elemfirst=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
29258 int x2elemsecond=*
reinterpret_cast<int*
>(p+(total_item_size0*count0)+item_size2elemfirst);
29259 x1elem = std::make_pair(x2elemfirst,x2elemsecond);
29260 x0.push_back(x1elem);
29266std::map<std::string, std::pair<std::string, std::vector<double>>> Hdf5Back::VLBufToVal<std::map<std::string, std::pair<std::string, std::vector<double>>>>(
const hvl_t& buf) {
29267 std::map<std::string, std::pair<std::string, std::vector<double>>> x0;
29268 char* p=
reinterpret_cast<char*
>(buf.p);
29271 size_t total_item_size1val=item_size2valfirst+item_size2valsecond;
29273 size_t item_size1val=total_item_size1val;
29274 size_t total_item_size0=item_size1key+item_size1val;
29275 unsigned int count0=0;
29276 for(;count0<buf.len;++count0){
29278 std::pair<std::string, std::vector<double>> x1val;
29280 std::vector<double> x2valsecond=VLRead<std::vector<double>,
VL_VECTOR_DOUBLE>(p+(total_item_size0*count0)+item_size1key+item_size2valfirst);
29281 x1val = std::make_pair(x2valfirst,x2valsecond);
29288std::map<std::string, std::map<std::string, int>> Hdf5Back::VLBufToVal<std::map<std::string, std::map<std::string, int>>>(
const hvl_t& buf) {
29289 std::map<std::string, std::map<std::string, int>> x0;
29290 char* p=
reinterpret_cast<char*
>(buf.p);
29293 size_t total_item_size0=item_size1key+item_size1val;
29294 unsigned int count0=0;
29295 for(;count0<buf.len;++count0){
29297 std::map<std::string, int> x1val=VLRead<std::map<std::string, int>,
VL_MAP_VL_STRING_INT>(p+(total_item_size0*count0)+item_size1key);
29304std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> Hdf5Back::VLBufToVal<std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>>>(
const hvl_t& buf) {
29305 std::vector<std::pair<std::pair<double, double>, std::map<std::string, double>>> x0;
29306 char* p=
reinterpret_cast<char*
>(buf.p);
29307 size_t item_size3elemfirstfirst=
sizeof(double);
29308 size_t item_size3elemfirstsecond=
sizeof(double);
29309 size_t total_item_size2elemfirst=item_size3elemfirstfirst+item_size3elemfirstsecond;
29310 size_t item_size2elemfirst=total_item_size2elemfirst;
29312 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
29313 size_t item_size1elem=total_item_size1elem;
29314 size_t total_item_size0=item_size1elem;
29315 unsigned int count0=0;
29316 for(;count0<buf.len;++count0){
29317 std::pair<std::pair<double, double>, std::map<std::string, double>> x1elem;
29318 std::pair<double, double> x2elemfirst;
29319 double x3elemfirstfirst=*
reinterpret_cast<double*
>(p+(total_item_size0*count0));
29320 double x3elemfirstsecond=*
reinterpret_cast<double*
>(p+(total_item_size0*count0)+item_size3elemfirstfirst);
29321 x2elemfirst = std::make_pair(x3elemfirstfirst,x3elemfirstsecond);
29322 std::map<std::string, double> x2elemsecond=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(p+(total_item_size0*count0)+item_size2elemfirst);
29323 x1elem = std::make_pair(x2elemfirst,x2elemsecond);
29324 x0.push_back(x1elem);
29330std::vector<std::pair<int, std::pair<std::string, std::string>>> Hdf5Back::VLBufToVal<std::vector<std::pair<int, std::pair<std::string, std::string>>>>(
const hvl_t& buf) {
29331 std::vector<std::pair<int, std::pair<std::string, std::string>>> x0;
29332 char* p=
reinterpret_cast<char*
>(buf.p);
29335 size_t total_item_size2elemsecond=item_size3elemsecondfirst+item_size3elemsecondsecond;
29336 size_t item_size2elemfirst=
sizeof(int);
29337 size_t item_size2elemsecond=total_item_size2elemsecond;
29338 size_t total_item_size1elem=item_size2elemfirst+item_size2elemsecond;
29339 size_t item_size1elem=total_item_size1elem;
29340 size_t total_item_size0=item_size1elem;
29341 unsigned int count0=0;
29342 for(;count0<buf.len;++count0){
29343 std::pair<int, std::pair<std::string, std::string>> x1elem;
29344 int x2elemfirst=*
reinterpret_cast<int*
>(p+(total_item_size0*count0));
29345 std::pair<std::string, std::string> x2elemsecond;
29348 x2elemsecond = std::make_pair(x3elemsecondfirst,x3elemsecondsecond);
29349 x1elem = std::make_pair(x2elemfirst,x2elemsecond);
29350 x0.push_back(x1elem);
29356std::map<std::pair<std::string, std::string>,
int> Hdf5Back::VLBufToVal<std::map<std::pair<std::string, std::string>,
int>>(
const hvl_t& buf) {
29357 std::map<std::pair<std::string, std::string>,
int> x0;
29358 char* p=
reinterpret_cast<char*
>(buf.p);
29361 size_t total_item_size1key=item_size2keyfirst+item_size2keysecond;
29362 size_t item_size1key=total_item_size1key;
29363 size_t item_size1val=
sizeof(int);
29364 size_t total_item_size0=item_size1key+item_size1val;
29365 unsigned int count0=0;
29366 for(;count0<buf.len;++count0){
29367 std::pair<std::string, std::string> x1key;
29370 x1key = std::make_pair(x2keyfirst,x2keysecond);
29371 int x1val=*
reinterpret_cast<int*
>(p+(total_item_size0*count0)+item_size1key);
29378std::map<std::string, std::map<std::string, double>> Hdf5Back::VLBufToVal<std::map<std::string, std::map<std::string, double>>>(
const hvl_t& buf) {
29379 std::map<std::string, std::map<std::string, double>> x0;
29380 char* p=
reinterpret_cast<char*
>(buf.p);
29383 size_t total_item_size0=item_size1key+item_size1val;
29384 unsigned int count0=0;
29385 for(;count0<buf.len;++count0){
29387 std::map<std::string, double> x1val=VLRead<std::map<std::string, double>,
VL_MAP_VL_STRING_DOUBLE>(p+(total_item_size0*count0)+item_size1key);
const void * castsmallvoid() const
A type to represent variable-length array of bytes for dumping to a cyclus output database.
Represents a condition used to filter rows returned by a query.
std::string field
table column name
Used to specify and send a collection of key-value pairs to the Recorder for recording.
std::vector< Shape > Shapes
const Shapes & shapes()
Returns a vector of all shapes (pointers to vectors of ints) that have been added to this datum.
std::vector< Entry > Vals
std::string title()
Returns the datum's title as specified during the datum's creation.
const Vals & vals()
Returns a vector of all field-value pairs that have been added to this datum.
virtual void Close()
Closes and flushes the backend.
virtual void Flush()
Flushes all buffered data in the backend to its final format/location.
virtual std::map< std::string, DbTypes > ColumnTypes(std::string table)
Return a map of column names of the specified table to the associated database type.
virtual void Notify(DatumList data)
Used to pass a list of new/collected Datum objects.
virtual std::string Name()
Used to uniquely identify a backend - particularly if there are more than one in a simulation.
virtual std::list< ColumnInfo > Schema(std::string table)
Return information about all columns of a table.
virtual QueryResult Query(std::string table, std::vector< Cond > *conds)
Return a set of rows from the specificed table that match all given conditions.
virtual ~Hdf5Back()
cleans up resources and closes the file.
Hdf5Back(std::string path)
Creates a new backend writing data to the specified file.
virtual std::set< std::string > Tables()
Return a set of all table names currently in the database.
for failed reading/writing to files, network connections, etc..
Meta data and results of a query.
std::vector< QueryRow > rows
ordered results of a query
std::vector< DbTypes > types
types of each field returned by a query.
std::vector< std::string > fields
names of each field returned by a query
void Clear()
Clears the current hash value to its default state.
void Update(const std::string &s)
Updates the hash value in-place.
taken directly from OsiSolverInterface.cpp on 2/17/14 from https://projects.coin-or....
std::string Hdf5Back::VLRead< std::string, VL_STRING >(const char *rawkey)
std::vector< Datum * > DatumList
DbTypes
This is the primary list of all supported database types.
@ PAIR_VL_STRING_VL_STRING
@ VL_MAP_STRING_VL_MAP_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_MAP_STRING_INT
@ MAP_VL_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE
@ VL_MAP_STRING_MAP_INT_DOUBLE
@ VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_MAP_STRING_VECTOR_DOUBLE
@ VL_MAP_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE
@ PAIR_STRING_VECTOR_DOUBLE
@ PAIR_STRING_VL_VECTOR_DOUBLE
@ VL_MAP_VL_STRING_MAP_VL_STRING_DOUBLE
@ VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE
@ MAP_STRING_PAIR_VL_STRING_VECTOR_DOUBLE
@ MAP_VL_STRING_PAIR_STRING_VECTOR_DOUBLE
@ MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE
@ MAP_VL_STRING_VL_STRING
@ VL_MAP_VL_STRING_MAP_STRING_DOUBLE
@ VL_MAP_VL_STRING_VL_STRING
@ VL_MAP_STRING_VL_MAP_INT_DOUBLE
@ MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE
@ VL_MAP_STRING_VL_VECTOR_DOUBLE
@ VL_MAP_VL_STRING_PAIR_VL_STRING_VECTOR_DOUBLE
@ PAIR_VL_STRING_VECTOR_DOUBLE
@ VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ PAIR_DOUBLE_VL_MAP_INT_DOUBLE
@ MAP_STRING_MAP_STRING_DOUBLE
@ VL_MAP_STRING_PAIR_VL_STRING_VECTOR_DOUBLE
@ VL_MAP_STRING_MAP_STRING_INT
@ MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE
@ MAP_INT_VL_MAP_STRING_DOUBLE
@ MAP_INT_MAP_STRING_DOUBLE
@ MAP_VL_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE
@ VL_MAP_VL_STRING_VECTOR_DOUBLE
@ MAP_STRING_VECTOR_DOUBLE
@ PAIR_INT_PAIR_STRING_STRING
@ MAP_PAIR_STRING_VL_STRING_INT
@ VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_STRING_DOUBLE
@ VL_MAP_VL_STRING_VL_MAP_VL_STRING_INT
@ VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_MAP_STRING_PAIR_STRING_VL_VECTOR_DOUBLE
@ VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_VL_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE
@ MAP_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE
@ VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ MAP_STRING_VL_MAP_STRING_INT
@ VL_MAP_INT_MAP_VL_STRING_DOUBLE
@ MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_VL_STRING_VECTOR_DOUBLE
@ VL_MAP_VL_STRING_PAIR_STRING_VECTOR_DOUBLE
@ MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ MAP_VL_STRING_MAP_VL_STRING_INT
@ VL_MAP_STRING_VL_MAP_STRING_INT
@ VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ VL_MAP_PAIR_STRING_VL_STRING_INT
@ VL_MAP_STRING_MAP_VL_STRING_INT
@ VL_MAP_STRING_MAP_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_MAP_PAIR_VL_STRING_STRING_INT
@ VL_MAP_STRING_MAP_STRING_DOUBLE
@ VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE
@ MAP_STRING_MAP_STRING_INT
@ VL_MAP_INT_VL_MAP_VL_STRING_DOUBLE
@ VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ MAP_VL_STRING_VL_MAP_VL_STRING_DOUBLE
@ MAP_PAIR_INT_STRING_DOUBLE
@ VL_MAP_INT_MAP_STRING_DOUBLE
@ VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE
@ PAIR_INT_PAIR_VL_STRING_VL_STRING
@ MAP_STRING_VL_MAP_VL_STRING_INT
@ MAP_VL_STRING_PAIR_STRING_VL_VECTOR_DOUBLE
@ PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE
@ VL_MAP_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE
@ MAP_VL_STRING_VL_MAP_VL_STRING_INT
@ MAP_VL_STRING_VL_MAP_STRING_INT
@ MAP_STRING_MAP_VL_STRING_DOUBLE
@ VL_MAP_STRING_VL_STRING
@ VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_PAIR_STRING_STRING_INT
@ MAP_PAIR_VL_STRING_VL_STRING_INT
@ MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_VL_STRING_MAP_VL_STRING_DOUBLE
@ MAP_STRING_VL_MAP_INT_DOUBLE
@ PAIR_INT_PAIR_VL_STRING_STRING
@ VL_MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_MAP_STRING_VL_MAP_STRING_DOUBLE
@ MAP_VL_STRING_VL_MAP_STRING_DOUBLE
@ VL_MAP_PAIR_INT_STRING_DOUBLE
@ VL_MAP_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE
@ VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_INT_MAP_VL_STRING_DOUBLE
@ VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ VL_MAP_STRING_PAIR_STRING_VECTOR_DOUBLE
@ MAP_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE
@ MAP_VL_STRING_MAP_STRING_DOUBLE
@ MAP_VL_STRING_VL_MAP_INT_DOUBLE
@ MAP_VL_STRING_PAIR_VL_STRING_VECTOR_DOUBLE
@ MAP_STRING_PAIR_STRING_VECTOR_DOUBLE
@ VL_MAP_VL_STRING_PAIR_STRING_VL_VECTOR_DOUBLE
@ MAP_STRING_VL_MAP_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ MAP_STRING_PAIR_STRING_VL_VECTOR_DOUBLE
@ MAP_PAIR_INT_VL_STRING_DOUBLE
@ MAP_STRING_PAIR_VL_STRING_VL_VECTOR_DOUBLE
@ MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_VL_MAP_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_STRING
@ VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_MAP_VL_STRING_PAIR_DOUBLE_MAP_INT_DOUBLE
@ VL_MAP_VL_STRING_MAP_VL_STRING_INT
@ VL_MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ VL_MAP_VL_STRING_VL_MAP_STRING_DOUBLE
@ VL_MAP_VL_STRING_PAIR_DOUBLE_VL_MAP_INT_DOUBLE
@ MAP_STRING_MAP_INT_DOUBLE
@ MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_VL_STRING
@ VL_MAP_VL_STRING_VL_MAP_INT_DOUBLE
@ VL_MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_VL_STRING_STRING
@ VL_MAP_INT_VL_MAP_STRING_DOUBLE
@ VL_MAP_STRING_VL_MAP_VL_STRING_INT
@ VL_MAP_PAIR_VL_STRING_VL_STRING_INT
@ VL_MAP_VL_STRING_DOUBLE
@ VL_MAP_PAIR_INT_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_VL_VECTOR_DOUBLE
@ MAP_VL_STRING_MAP_STRING_INT
@ MAP_INT_VL_MAP_VL_STRING_DOUBLE
@ MAP_VL_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ VL_VECTOR_PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE
@ MAP_STRING_VL_MAP_STRING_DOUBLE
@ MAP_VL_STRING_VL_VECTOR_DOUBLE
@ VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ MAP_PAIR_VL_STRING_STRING_INT
@ PAIR_INT_PAIR_STRING_VL_STRING
@ VL_MAP_VL_STRING_VL_MAP_STRING_INT
@ MAP_STRING_VL_VECTOR_DOUBLE
@ PAIR_DOUBLE_MAP_INT_DOUBLE
@ MAP_STRING_MAP_VL_STRING_INT
@ VL_MAP_VL_STRING_MAP_INT_DOUBLE
@ MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ PAIR_PAIR_DOUBLE_DOUBLE_MAP_VL_STRING_DOUBLE
@ VL_MAP_VL_STRING_VL_MAP_VL_STRING_DOUBLE
@ VL_MAP_STRING_VECTOR_PAIR_INT_PAIR_STRING_VL_STRING
@ MAP_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ MAP_VL_STRING_MAP_INT_DOUBLE
@ MAP_VL_STRING_VL_VECTOR_PAIR_INT_PAIR_STRING_STRING
@ PAIR_PAIR_DOUBLE_DOUBLE_MAP_STRING_DOUBLE
@ VL_MAP_PAIR_STRING_STRING_INT
@ PAIR_VL_STRING_VL_VECTOR_DOUBLE
std::vector< boost::spirit::hold_any > QueryRow
std::array< CYCLUS_SHA1_ELEM_TYPE, CYCLUS_SHA1_NINT > Digest
The digest type for SHA1s.
bool CmpConds(T *x, std::vector< Cond * > *conds)
Compares all condiontions for a value.
std::string name(int nuc)
int offset(int dz, int da, int ds=0)
A helper function to compute nuclide id offsets from z-, a-, and s- deltas.
Represents column information.