projects
/
feisty_meow.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more updates, still not right.
[feisty_meow.git]
/
nucleus
/
library
/
filesystem
/
heavy_file_ops.cpp
diff --git
a/nucleus/library/filesystem/heavy_file_ops.cpp
b/nucleus/library/filesystem/heavy_file_ops.cpp
index e8f48ebd5d20e585546ffe5a024250e27abd7499..3ddd76648930cee349a1d8f2b6dd467bd19ca7af 100644
(file)
--- a/
nucleus/library/filesystem/heavy_file_ops.cpp
+++ b/
nucleus/library/filesystem/heavy_file_ops.cpp
@@
-27,7
+27,7
@@
using namespace structures;
namespace filesystem {
namespace filesystem {
-
//
#define DEBUG_HEAVY_FILE_OPS
+#define DEBUG_HEAVY_FILE_OPS
// uncomment for noisier debugging.
#undef LOG
// uncomment for noisier debugging.
#undef LOG
@@
-208,15
+208,13
@@
outcome heavy_file_operations::write_file_chunk(const astring &target,
return OKAY;
}
return OKAY;
}
-b
ool
heavy_file_operations::advance(const filename_list &to_transfer,
+b
asis::outcome
heavy_file_operations::advance(const filename_list &to_transfer,
file_transfer_header &last_action)
{
file_transfer_header &last_action)
{
-#ifdef DEBUG_HEAVY_FILE_OPS
FUNCDEF("advance");
FUNCDEF("advance");
-#endif
int indy = to_transfer.locate(last_action._filename);
int indy = to_transfer.locate(last_action._filename);
- if (negative(indy)) return
false; // error
.
- if (indy
== to_transfer.elements() - 1) return false
; // done.
+ if (negative(indy)) return
BAD_INPUT; // error, file not found in list
.
+ if (indy
>= to_transfer.elements() - 1) return FINISHED
; // done.
const file_info *currfile = to_transfer.get(indy + 1);
last_action._filename = currfile->raw();
last_action._time = currfile->_time;
const file_info *currfile = to_transfer.get(indy + 1);
last_action._filename = currfile->raw();
last_action._time = currfile->_time;
@@
-228,7
+226,7
@@
bool heavy_file_operations::advance(const filename_list &to_transfer,
last_action._byte_start = 0;
last_action._length = 0;
last_action._byte_start = 0;
last_action._length = 0;
- return
true
;
+ return
OKAY
;
}
outcome heavy_file_operations::buffer_files(const astring &source_root,
}
outcome heavy_file_operations::buffer_files(const astring &source_root,
@@
-275,14
+273,17
@@
outcome heavy_file_operations::buffer_files(const astring &source_root,
huge_file current(full_file, "rb");
if (!current.good()) {
// we need to skip this file.
huge_file current(full_file, "rb");
if (!current.good()) {
// we need to skip this file.
- if (!advance(to_transfer, last_action)) break;
+LOG(astring("skipping bad file: ") + full_file);
+ to_return = advance(to_transfer, last_action);
+ if (to_return != OKAY) break;
continue;
}
continue;
}
- if (
(last_action._byte_start + last_action._length >= current.length())
- && current.length()) {
+ if (
last_action._byte_start + last_action._length >= current.length()) {
+LOG(astring("finished stuffing file: ") + full_file);
// this file is done now. go to the next one.
// this file is done now. go to the next one.
- if (!advance(to_transfer, last_action)) break;
+ to_return = advance(to_transfer, last_action);
+ if (to_return != OKAY) break;
continue;
}
continue;
}
@@
-301,7
+302,8
@@
outcome heavy_file_operations::buffer_files(const astring &source_root,
if (bytes_read != new_len) {
if (!bytes_read) {
// some kind of problem reading the file.
if (bytes_read != new_len) {
if (!bytes_read) {
// some kind of problem reading the file.
- if (!advance(to_transfer, last_action)) break;
+ to_return = advance(to_transfer, last_action);
+ if (to_return != OKAY) break;
continue;
}
//why would this happen? just complain, i guess.
continue;
}
//why would this happen? just complain, i guess.
@@
-318,7
+320,8
@@
outcome heavy_file_operations::buffer_files(const astring &source_root,
if (!current.length()) {
// ensure we don't get stuck redoing zero length files, which we allowed
// to go past their end above (since otherwise we'd never see them).
if (!current.length()) {
// ensure we don't get stuck redoing zero length files, which we allowed
// to go past their end above (since otherwise we'd never see them).
- if (!advance(to_transfer, last_action)) break;
+ to_return = advance(to_transfer, last_action);
+ if (to_return != OKAY) break;
continue;
}
continue;
}