diff --git a/ChangeLog b/ChangeLog index c5d61169..e08d2821 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-06-11 Tatsuhiro Tsujikawa + + Made protected member variable private. Added accessor funcs. + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + 2010-06-11 Tatsuhiro Tsujikawa Made protected member variable private. Added accessor funcs. diff --git a/src/AbstractDiskWriter.cc b/src/AbstractDiskWriter.cc index cfadd8ef..5c9d8a0f 100644 --- a/src/AbstractDiskWriter.cc +++ b/src/AbstractDiskWriter.cc @@ -58,10 +58,10 @@ namespace aria2 { AbstractDiskWriter::AbstractDiskWriter(const std::string& filename): _filename(filename), - fd(-1), + _fd(-1), _readOnly(false), _directIOAllowed(false), - logger(LogFactory::getInstance()) {} + _logger(LogFactory::getInstance()) {} AbstractDiskWriter::~AbstractDiskWriter() { @@ -79,9 +79,9 @@ void AbstractDiskWriter::openFile(uint64_t totalLength) void AbstractDiskWriter::closeFile() { - if(fd >= 0) { - close(fd); - fd = -1; + if(_fd >= 0) { + close(_fd); + _fd = -1; } } @@ -99,7 +99,7 @@ void AbstractDiskWriter::openExistingFile(uint64_t totalLength) flags |= O_RDWR; } - if((fd = open(_filename.c_str(), flags, OPEN_MODE)) < 0) { + if((_fd = open(_filename.c_str(), flags, OPEN_MODE)) < 0) { throw DL_ABORT_EX (StringFormat(EX_FILE_OPEN, _filename.c_str(), strerror(errno)).str()); } @@ -109,7 +109,7 @@ void AbstractDiskWriter::createFile(int addFlags) { assert(!_filename.empty()); util::mkdirs(File(_filename).getDirname()); - if((fd = open(_filename.c_str(), O_CREAT|O_RDWR|O_TRUNC|O_BINARY|addFlags, + if((_fd = open(_filename.c_str(), O_CREAT|O_RDWR|O_TRUNC|O_BINARY|addFlags, OPEN_MODE)) < 0) { throw DL_ABORT_EX(StringFormat(EX_FILE_OPEN, _filename.c_str(), strerror(errno)).str()); @@ -121,7 +121,7 @@ ssize_t AbstractDiskWriter::writeDataInternal(const unsigned char* data, size_t ssize_t writtenLength = 0; while((size_t)writtenLength < len) { ssize_t ret = 0; - while((ret = write(fd, data+writtenLength, len-writtenLength)) == -1 && errno == EINTR); + while((ret = write(_fd, data+writtenLength, len-writtenLength)) == -1 && errno == EINTR); if(ret == -1) { return -1; } @@ -133,13 +133,13 @@ ssize_t AbstractDiskWriter::writeDataInternal(const unsigned char* data, size_t ssize_t AbstractDiskWriter::readDataInternal(unsigned char* data, size_t len) { ssize_t ret = 0; - while((ret = read(fd, data, len)) == -1 && errno == EINTR); + while((ret = read(_fd, data, len)) == -1 && errno == EINTR); return ret; } void AbstractDiskWriter::seek(off_t offset) { - if(a2lseek(fd, offset, SEEK_SET) == (off_t)-1) { + if(a2lseek(_fd, offset, SEEK_SET) == (off_t)-1) { throw DL_ABORT_EX (StringFormat(EX_FILE_SEEK, _filename.c_str(), strerror(errno)).str()); } @@ -173,20 +173,20 @@ ssize_t AbstractDiskWriter::readData(unsigned char* data, size_t len, off_t offs void AbstractDiskWriter::truncate(uint64_t length) { - if(fd == -1) { + if(_fd == -1) { throw DL_ABORT_EX("File not opened."); } #ifdef __MINGW32__ // Since mingw32's ftruncate cannot handle over 2GB files, we use SetEndOfFile // instead. - HANDLE handle = LongToHandle(_get_osfhandle(fd)); + HANDLE handle = LongToHandle(_get_osfhandle(_fd)); seek(length); if(SetEndOfFile(handle) == 0) { throw DL_ABORT_EX(StringFormat("SetEndOfFile failed. cause: %s", GetLastError()).str()); } #else - if(ftruncate(fd, length) == -1) { + if(ftruncate(_fd, length) == -1) { throw DL_ABORT_EX(StringFormat("ftruncate failed. cause: %s", strerror(errno)).str()); } @@ -196,10 +196,10 @@ void AbstractDiskWriter::truncate(uint64_t length) #ifdef HAVE_POSIX_FALLOCATE void AbstractDiskWriter::allocate(off_t offset, uint64_t length) { - if(fd == -1) { + if(_fd == -1) { throw DL_ABORT_EX("File not yet opened."); } - int r = posix_fallocate(fd, offset, length); + int r = posix_fallocate(_fd, offset, length); if(r != 0) { throw DL_ABORT_EX(StringFormat("posix_fallocate failed. cause: %s", strerror(r)).str()); @@ -217,8 +217,8 @@ void AbstractDiskWriter::enableDirectIO() #ifdef ENABLE_DIRECT_IO if(_directIOAllowed) { int flg; - while((flg = fcntl(fd, F_GETFL)) == -1 && errno == EINTR); - while(fcntl(fd, F_SETFL, flg|O_DIRECT) == -1 && errno == EINTR); + while((flg = fcntl(_fd, F_GETFL)) == -1 && errno == EINTR); + while(fcntl(_fd, F_SETFL, flg|O_DIRECT) == -1 && errno == EINTR); } #endif // ENABLE_DIRECT_IO } @@ -227,8 +227,8 @@ void AbstractDiskWriter::disableDirectIO() { #ifdef ENABLE_DIRECT_IO int flg; - while((flg = fcntl(fd, F_GETFL)) == -1 && errno == EINTR); - while(fcntl(fd, F_SETFL, flg&(~O_DIRECT)) == -1 && errno == EINTR); + while((flg = fcntl(_fd, F_GETFL)) == -1 && errno == EINTR); + while(fcntl(_fd, F_SETFL, flg&(~O_DIRECT)) == -1 && errno == EINTR); #endif // ENABLE_DIRECT_IO } diff --git a/src/AbstractDiskWriter.h b/src/AbstractDiskWriter.h index cc3ce34b..f9f312b0 100644 --- a/src/AbstractDiskWriter.h +++ b/src/AbstractDiskWriter.h @@ -43,23 +43,22 @@ namespace aria2 { class Logger; class AbstractDiskWriter : public DiskWriter { -protected: +private: std::string _filename; - int fd; + int _fd; bool _readOnly; bool _directIOAllowed; - Logger* logger; + Logger* _logger; - void createFile(int addFlags = 0); - -private: ssize_t writeDataInternal(const unsigned char* data, size_t len); ssize_t readDataInternal(unsigned char* data, size_t len); void seek(off_t offset); +protected: + void createFile(int addFlags = 0); public: AbstractDiskWriter(const std::string& filename); virtual ~AbstractDiskWriter();