25 #include <boost/filesystem.hpp> 30 namespace perception {
36 template <
class DataType>
43 virtual bool query_next(std::shared_ptr<DataType>& data);
44 virtual bool query_last(std::shared_ptr<DataType>& data);
46 inline const std::vector<std::vector<std::string>>&
get_filenames()
const {
56 template <
class DataType>
58 const std::vector<std::string>& file_lists) {
63 std::string name =
"";
64 std::vector<std::size_t> sorted_indices;
65 for (std::size_t i = 0; i < file_lists.size(); ++i) {
66 fin.open(file_lists[i].c_str());
71 std::getline(fin, name);
74 std::getline(fin, name);
78 sort_strings_by_split_length(
_filenames[0], &sorted_indices);
81 for (std::size_t i = 1; i < file_lists.size(); ++i) {
93 template <
class DataType>
95 const std::vector<std::string>& folders) {
99 for (std::size_t i = 0; i < folders.size(); ++i) {
100 if (!boost::filesystem::exists(folders[i])) {
104 boost::filesystem::directory_iterator it(folders[i]);
105 boost::filesystem::directory_iterator eit;
111 string_compare_by_length);
113 for (std::size_t i = 1; i < folders.size(); ++i) {
124 template <
class DataType>
126 std::shared_ptr<DataType>& data) {
130 if (data ==
nullptr) {
131 data.reset(
new DataType);
136 }
else if (
_idx < 0) {
139 std::vector<std::string> files;
141 files.push_back(names[
_idx]);
143 return data->load(files);
146 template <
class DataType>
148 std::shared_ptr<DataType>& data) {
152 if (data ==
nullptr) {
153 data.reset(
new DataType);
161 std::vector<std::string> files;
163 files.push_back(names[
_idx]);
165 return data->load(files);
bool _initialized
Definition: sequence_data_loader.h:53
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
void shuffle_by_indices(std::vector< T > *src, const std::vector< std::size_t > &indices)
Definition: string_compare.h:95
bool init_loader_with_list(const std::vector< std::string > &file_lists)
Definition: sequence_data_loader.h:57
std::size_t size()
Definition: sequence_data_loader.h:45
const std::vector< std::vector< std::string > > & get_filenames() const
Definition: sequence_data_loader.h:46
SequenceDataLoader()=default
bool init_loader_with_folder(const std::vector< std::string > &folders)
Definition: sequence_data_loader.h:94
Definition: sequence_data_loader.h:37
virtual bool query_last(std::shared_ptr< DataType > &data)
Definition: sequence_data_loader.h:147
std::vector< std::vector< std::string > > _filenames
Definition: sequence_data_loader.h:51
virtual bool query_next(std::shared_ptr< DataType > &data)
Definition: sequence_data_loader.h:125
virtual ~SequenceDataLoader()=default
int _idx
Definition: sequence_data_loader.h:52