|
@@ -101,7 +101,7 @@ bool DiskWriterEntry::fileExists()
|
|
|
return fileEntry_->exists();
|
|
|
}
|
|
|
|
|
|
-off_t DiskWriterEntry::size() const
|
|
|
+int64_t DiskWriterEntry::size() const
|
|
|
{
|
|
|
return File(getFilePath()).size();
|
|
|
}
|
|
@@ -163,7 +163,7 @@ void MultiDiskAdaptor::resetDiskWriterEntries()
|
|
|
++itr;
|
|
|
continue;
|
|
|
}
|
|
|
- off_t pieceStartOffset =
|
|
|
+ int64_t pieceStartOffset =
|
|
|
(fileEntry->getOffset()/pieceLength_)*pieceLength_;
|
|
|
if(itr != diskWriterEntries_.begin()) {
|
|
|
for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator i =
|
|
@@ -182,7 +182,7 @@ void MultiDiskAdaptor::resetDiskWriterEntries()
|
|
|
}
|
|
|
|
|
|
if(fileEntry->getLength() > 0) {
|
|
|
- off_t lastPieceStartOffset =
|
|
|
+ int64_t lastPieceStartOffset =
|
|
|
(fileEntry->getOffset()+fileEntry->getLength()-1)/
|
|
|
pieceLength_*pieceLength_;
|
|
|
A2_LOG_DEBUG(fmt("Checking adjacent backward file to %s"
|
|
@@ -201,7 +201,7 @@ void MultiDiskAdaptor::resetDiskWriterEntries()
|
|
|
(*itr)->getFileEntry()->getPath().c_str(),
|
|
|
(*itr)->getFileEntry()->getOffset()));
|
|
|
if((*itr)->getFileEntry()->getOffset() <
|
|
|
- static_cast<off_t>(lastPieceStartOffset+pieceLength_)) {
|
|
|
+ lastPieceStartOffset+pieceLength_) {
|
|
|
A2_LOG_DEBUG
|
|
|
(fmt("%s needs diskwriter",
|
|
|
(*itr)->getFileEntry()->getPath().c_str()));
|
|
@@ -305,7 +305,7 @@ void MultiDiskAdaptor::closeFile()
|
|
|
}
|
|
|
|
|
|
namespace {
|
|
|
-bool isInRange(const DiskWriterEntryHandle entry, off_t offset)
|
|
|
+bool isInRange(const DiskWriterEntryHandle entry, int64_t offset)
|
|
|
{
|
|
|
return entry->getFileEntry()->getOffset() <= offset &&
|
|
|
offset < entry->getFileEntry()->getLastOffset();
|
|
@@ -314,7 +314,7 @@ bool isInRange(const DiskWriterEntryHandle entry, off_t offset)
|
|
|
|
|
|
namespace {
|
|
|
ssize_t calculateLength(const DiskWriterEntryHandle entry,
|
|
|
- off_t fileOffset, ssize_t rem)
|
|
|
+ int64_t fileOffset, ssize_t rem)
|
|
|
{
|
|
|
if(entry->getFileEntry()->getLength() < fileOffset+rem) {
|
|
|
return entry->getFileEntry()->getLength()-fileOffset;
|
|
@@ -327,7 +327,7 @@ ssize_t calculateLength(const DiskWriterEntryHandle entry,
|
|
|
namespace {
|
|
|
class OffsetCompare {
|
|
|
public:
|
|
|
- bool operator()(off_t offset, const SharedHandle<DiskWriterEntry>& dwe)
|
|
|
+ bool operator()(int64_t offset, const SharedHandle<DiskWriterEntry>& dwe)
|
|
|
{
|
|
|
return offset < dwe->getFileEntry()->getOffset();
|
|
|
}
|
|
@@ -336,7 +336,7 @@ public:
|
|
|
|
|
|
namespace {
|
|
|
DiskWriterEntries::const_iterator findFirstDiskWriterEntry
|
|
|
-(const DiskWriterEntries& diskWriterEntries, off_t offset)
|
|
|
+(const DiskWriterEntries& diskWriterEntries, int64_t offset)
|
|
|
{
|
|
|
DiskWriterEntries::const_iterator first =
|
|
|
std::upper_bound(diskWriterEntries.begin(), diskWriterEntries.end(),
|
|
@@ -355,7 +355,7 @@ DiskWriterEntries::const_iterator findFirstDiskWriterEntry
|
|
|
|
|
|
namespace {
|
|
|
void throwOnDiskWriterNotOpened(const SharedHandle<DiskWriterEntry>& e,
|
|
|
- off_t offset)
|
|
|
+ int64_t offset)
|
|
|
{
|
|
|
throw DL_ABORT_EX
|
|
|
(fmt("DiskWriter for offset=%" PRId64 ", filename=%s is not opened.",
|
|
@@ -365,13 +365,13 @@ void throwOnDiskWriterNotOpened(const SharedHandle<DiskWriterEntry>& e,
|
|
|
} // namespace
|
|
|
|
|
|
void MultiDiskAdaptor::writeData(const unsigned char* data, size_t len,
|
|
|
- off_t offset)
|
|
|
+ int64_t offset)
|
|
|
{
|
|
|
DiskWriterEntries::const_iterator first =
|
|
|
findFirstDiskWriterEntry(diskWriterEntries_, offset);
|
|
|
|
|
|
ssize_t rem = len;
|
|
|
- off_t fileOffset = offset-(*first)->getFileEntry()->getOffset();
|
|
|
+ int64_t fileOffset = offset-(*first)->getFileEntry()->getOffset();
|
|
|
for(DiskWriterEntries::const_iterator i = first,
|
|
|
eoi = diskWriterEntries_.end(); i != eoi; ++i) {
|
|
|
ssize_t writeLength = calculateLength(*i, fileOffset, rem);
|
|
@@ -392,14 +392,14 @@ void MultiDiskAdaptor::writeData(const unsigned char* data, size_t len,
|
|
|
}
|
|
|
|
|
|
ssize_t MultiDiskAdaptor::readData
|
|
|
-(unsigned char* data, size_t len, off_t offset)
|
|
|
+(unsigned char* data, size_t len, int64_t offset)
|
|
|
{
|
|
|
DiskWriterEntries::const_iterator first =
|
|
|
findFirstDiskWriterEntry(diskWriterEntries_, offset);
|
|
|
|
|
|
ssize_t rem = len;
|
|
|
ssize_t totalReadLength = 0;
|
|
|
- off_t fileOffset = offset-(*first)->getFileEntry()->getOffset();
|
|
|
+ int64_t fileOffset = offset-(*first)->getFileEntry()->getOffset();
|
|
|
for(DiskWriterEntries::const_iterator i = first,
|
|
|
eoi = diskWriterEntries_.end(); i != eoi; ++i) {
|
|
|
ssize_t readLength = calculateLength(*i, fileOffset, rem);
|
|
@@ -428,9 +428,9 @@ bool MultiDiskAdaptor::fileExists()
|
|
|
getFileEntries().end();
|
|
|
}
|
|
|
|
|
|
-off_t MultiDiskAdaptor::size()
|
|
|
+int64_t MultiDiskAdaptor::size()
|
|
|
{
|
|
|
- off_t size = 0;
|
|
|
+ int64_t size = 0;
|
|
|
for(std::vector<SharedHandle<FileEntry> >::const_iterator i =
|
|
|
getFileEntries().begin(), eoi = getFileEntries().end(); i != eoi; ++i) {
|
|
|
size += File((*i)->getPath()).size();
|
|
@@ -464,9 +464,9 @@ void MultiDiskAdaptor::cutTrailingGarbage()
|
|
|
for(std::vector<SharedHandle<DiskWriterEntry> >::const_iterator i =
|
|
|
diskWriterEntries_.begin(), eoi = diskWriterEntries_.end();
|
|
|
i != eoi; ++i) {
|
|
|
- off_t length = (*i)->getFileEntry()->getLength();
|
|
|
+ int64_t length = (*i)->getFileEntry()->getLength();
|
|
|
if(File((*i)->getFilePath()).size() > length) {
|
|
|
- // We need open file before calling DiskWriter::truncate(off_t)
|
|
|
+ // We need open file before calling DiskWriter::truncate(int64_t)
|
|
|
openIfNot(*i, &DiskWriterEntry::openFile);
|
|
|
(*i)->getDiskWriter()->truncate(length);
|
|
|
}
|