parent
7016979cd5
commit
7364348d04
@ -0,0 +1,46 @@
|
||||
// Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "paddle/fluid/recordio/range_scanner.h"
|
||||
|
||||
namespace paddle {
|
||||
namespace recordio {
|
||||
|
||||
Index Index::ChunkIndex(int i) { Index idx; }
|
||||
|
||||
RangeScanner::RangeScanner(std::istream is, Index idx, int start, int len)
|
||||
: stream_(is.rdbuf()), index_(idx) {
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
if (len < 0 || start + len >= idx.NumRecords()) {
|
||||
len = idx.NumRecords() - start;
|
||||
}
|
||||
|
||||
start_ = start;
|
||||
end_ = start + len;
|
||||
cur_ = start - 1;
|
||||
chunk_index_ = -1;
|
||||
// chunk_->reset(new Chunk());
|
||||
}
|
||||
|
||||
bool RangeScanner::Scan() {}
|
||||
|
||||
const std::string RangeScanner::Record() {
|
||||
// int i = index_.Locate(cur_);
|
||||
// return chunk_->Record(i);
|
||||
}
|
||||
|
||||
} // namespace recordio
|
||||
} // namespace paddle
|
@ -0,0 +1,58 @@
|
||||
// Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "paddle/fluid/recordio/chunk.h"
|
||||
|
||||
#include <glob.h> // glob
|
||||
|
||||
namespace paddle {
|
||||
namespace recordio {
|
||||
|
||||
Scanner::Scanner(const char* paths)
|
||||
: cur_file_(nullptr), path_idx_(0), end_(false) {
|
||||
glob_t glob_result;
|
||||
glob(paths, GLOB_TILDE, NULL, &glob_result);
|
||||
|
||||
for (size_t i = 0; i < glob_result.gl_pathc; ++i) {
|
||||
paths_.emplace_back(std::string(glob_result.gl_pathv[i]));
|
||||
}
|
||||
globfree(&glob_result);
|
||||
}
|
||||
|
||||
bool Scanner::Scan() {
|
||||
if (err_ == -1 || end_ == true) {
|
||||
return false;
|
||||
}
|
||||
if (cur_scanner_ == nullptr) {
|
||||
if (!NextFile()) {
|
||||
end_ = true;
|
||||
return false;
|
||||
}
|
||||
if (err_ == -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!cur_scanner_->Scan()) {
|
||||
if (err_ == -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Scanner::NextFile() {}
|
||||
|
||||
} // namespace recordio
|
||||
} // namespace paddle
|
@ -0,0 +1,21 @@
|
||||
// Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include "paddle/fluid/recordio/scanner.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
using namespace paddle::recordio;
|
||||
|
||||
TEST(Scanner, Normal) { Scanner s("/tmp/record_*"); }
|
Loading…
Reference in new issue