9 #ifndef _8836a563_24f6_4afb_89ba_377d49ce9f5d
10 #define _8836a563_24f6_4afb_89ba_377d49ce9f5d
31 typedef std::pair<Tag, int> RecordKey;
34 typedef std::map<std::string, std::vector<RecordKey>> RecordKeyMap;
37 static RecordKeyMap
const default_record_keys;
52 std::vector<std::string> files;
62 std::string
const & root=
"",
63 std::vector<std::string>
const & files=std::vector<std::string>(),
69 void operator()()
const;
74 typedef std::shared_ptr<Record> Pointer;
77 : data_set(std::make_shared<DataSet>())
82 Record(Record
const &) =
default;
83 Record(Record &&) =
default;
84 Record & operator=(Record
const &) =
default;
85 Record & operator=(Record &&) =
default;
88 std::shared_ptr<DataSet> data_set;
89 std::map<std::string, Record::Pointer> children;
94 std::vector<Record::Pointer> records;
95 std::vector<long> sibling;
96 std::vector<long> child;
99 typedef std::map<std::string, Record::Pointer> RecordMap;
102 std::map<std::string, Record::Pointer> _create_records()
const;
105 Record & _find_record(RecordMap & records, std::string
const & key)
const;
109 std::shared_ptr<DataSet const> data_set, Record & record,
110 std::string
const & type)
const;
114 std::shared_ptr<DataSet const> data_set, Record & record,
115 std::vector<RecordKey>
const & keys)
const;
118 LinearizedTree _linearize_records(RecordMap
const & record_tree)
const;
121 std::vector<std::streampos> _get_relative_offsets(
122 std::vector<Record::Pointer>
const & records)
const;
126 LinearizedTree
const & linearized_tree,
127 std::vector<std::streampos>
const & relative_offsets)
const;
132 #endif // _8836a563_24f6_4afb_89ba_377d49ce9f5d