Made BufferedFile ctor take const char* args

pull/28/head
Tatsuhiro Tsujikawa 2012-09-25 23:44:41 +09:00
parent c63af24c63
commit f133091a9e
18 changed files with 39 additions and 35 deletions

View File

@ -43,15 +43,19 @@
namespace aria2 {
const std::string BufferedFile::READ = "rb";
const std::string BufferedFile::WRITE = "wb";
const std::string BufferedFile::APPEND = "ab";
const char BufferedFile::READ[] = "rb";
const char BufferedFile::WRITE[] = "wb";
const char BufferedFile::APPEND[] = "ab";
BufferedFile::BufferedFile(const std::string& filename, const std::string& mode)
{
fp_ = a2fopen(utf8ToWChar(filename).c_str(), utf8ToWChar(mode).c_str());
open_ = fp_;
}
BufferedFile::BufferedFile(const char* filename, const char* mode)
:
#ifdef __MINGW32__
fp_(a2fopen(utf8ToWChar(filename).c_str(), utf8ToWChar(mode).c_str)),
#else // !__MINGW32__
fp_(a2fopen(filename, mode)),
#endif // !__MINGW32__
open_(fp_)
{}
BufferedFile::BufferedFile(FILE* fp)
: fp_(fp), open_(true)

View File

@ -49,7 +49,7 @@ private:
typedef void (BufferedFile::*unspecified_bool_type)() const;
void good_state() const {}
public:
BufferedFile(const std::string& filename, const std::string& mode);
BufferedFile(const char* filename, const char* mode);
BufferedFile(FILE* fp);
virtual ~BufferedFile();
// Returns true if file is opened and ferror returns 0. Otherwise
@ -78,11 +78,11 @@ public:
// wrapper for fflush
virtual int flush();
// Mode for reading
static const std::string READ;
static const char READ[];
// Mode for writing
static const std::string WRITE;
static const char WRITE[];
// Mode for append
static const std::string APPEND;
static const char APPEND[];
private:
// Don't allow copying
BufferedFile(const BufferedFile&);

View File

@ -360,7 +360,7 @@ bool CookieStorage::load(const std::string& filename, time_t now)
char header[16]; // "SQLite format 3" plus \0
size_t headlen;
{
BufferedFile fp(filename, BufferedFile::READ);
BufferedFile fp(filename.c_str(), BufferedFile::READ);
if(!fp) {
A2_LOG_ERROR(fmt("Failed to open cookie file %s", filename.c_str()));
return false;
@ -402,7 +402,7 @@ bool CookieStorage::saveNsFormat(const std::string& filename)
std::string tempfilename = filename;
tempfilename += "__temp";
{
BufferedFile fp(tempfilename, BufferedFile::WRITE);
BufferedFile fp(tempfilename.c_str(), BufferedFile::WRITE);
if(!fp) {
A2_LOG_ERROR(fmt("Cannot create cookie file %s", filename.c_str()));
return false;

View File

@ -77,7 +77,7 @@ void DHTRoutingTableDeserializer::deserialize(const std::string& filename)
{
A2_LOG_INFO(fmt("Loading DHT routing table from %s.",
filename.c_str()));
BufferedFile fp(filename, BufferedFile::READ);
BufferedFile fp(filename.c_str(), BufferedFile::READ);
if(!fp) {
throw DL_ABORT_EX(fmt("Failed to load DHT routing table from %s",
filename.c_str()));

View File

@ -80,7 +80,7 @@ void DHTRoutingTableSerializer::serialize(const std::string& filename)
A2_LOG_INFO(fmt("Saving DHT routing table to %s.", filename.c_str()));
std::string filenameTemp = filename;
filenameTemp += "__temp";
BufferedFile fp(filenameTemp, BufferedFile::WRITE);
BufferedFile fp(filenameTemp.c_str(), BufferedFile::WRITE);
if(!fp) {
throw DL_ABORT_EX(fmt("Failed to save DHT routing table to %s.",
filename.c_str()));

View File

@ -114,7 +114,7 @@ void DefaultBtProgressInfoFile::save()
std::string filenameTemp = filename_;
filenameTemp += "__temp";
{
BufferedFile fp(filenameTemp, BufferedFile::WRITE);
BufferedFile fp(filenameTemp.c_str(), BufferedFile::WRITE);
if(!fp) {
throw DL_ABORT_EX(fmt(EX_SEGMENT_FILE_WRITE, filename_.c_str()));
}
@ -212,7 +212,7 @@ void DefaultBtProgressInfoFile::save()
void DefaultBtProgressInfoFile::load()
{
A2_LOG_INFO(fmt(MSG_LOADING_SEGMENT_FILE, filename_.c_str()));
BufferedFile fp(filename_, BufferedFile::READ);
BufferedFile fp(filename_.c_str(), BufferedFile::READ);
if(!fp) {
throw DL_ABORT_EX(fmt(EX_SEGMENT_FILE_READ, filename_.c_str()));
}

View File

@ -63,7 +63,7 @@ void Logger::openFile(const std::string& filename)
if(filename == DEV_STDOUT) {
fpp_ = global::cout();
} else {
fpp_.reset(new BufferedFile(filename, BufferedFile::APPEND));
fpp_.reset(new BufferedFile(filename.c_str(), BufferedFile::APPEND));
if(!*static_cast<BufferedFile*>(fpp_.get())) {
throw DL_ABORT_EX(fmt(EX_FILE_OPEN, filename.c_str(), "n/a"));
}

View File

@ -134,7 +134,7 @@ void skipMacdef(BufferedFile& fp)
void Netrc::parse(const std::string& path)
{
authenticators_.clear();
BufferedFile fp(path, BufferedFile::READ);
BufferedFile fp(path.c_str(), BufferedFile::READ);
if(!fp) {
throw DL_ABORT_EX(fmt("Cannot open file: %s", path.c_str()));
}

View File

@ -101,7 +101,7 @@ bool parseNsCookie
std::vector<Cookie> NsCookieParser::parse
(const std::string& filename, time_t creationTime)
{
BufferedFile fp(filename, BufferedFile::READ);
BufferedFile fp(filename.c_str(), BufferedFile::READ);
if(!fp) {
throw DL_ABORT_EX(fmt("Failed to open file %s", filename.c_str()));
}

View File

@ -61,7 +61,7 @@ bool ProtocolDetector::isStreamProtocol(const std::string& uri) const
bool ProtocolDetector::guessTorrentFile(const std::string& uri) const
{
BufferedFile fp(uri, BufferedFile::READ);
BufferedFile fp(uri.c_str(), BufferedFile::READ);
if(fp) {
char head[1];
if(fp.read(head, sizeof(head)) == sizeof(head)) {
@ -90,7 +90,7 @@ bool ProtocolDetector::guessTorrentMagnet(const std::string& uri) const
bool ProtocolDetector::guessMetalinkFile(const std::string& uri) const
{
BufferedFile fp(uri, BufferedFile::READ);
BufferedFile fp(uri.c_str(), BufferedFile::READ);
if(fp) {
char head[5];
if(fp.read(head, sizeof(head)) == sizeof(head)) {

View File

@ -84,7 +84,7 @@ bool ServerStatMan::save(const std::string& filename) const
std::string tempfile = filename;
tempfile += "__temp";
{
BufferedFile fp(tempfile, BufferedFile::WRITE);
BufferedFile fp(tempfile.c_str(), BufferedFile::WRITE);
if(!fp) {
A2_LOG_ERROR(fmt(MSG_OPENING_WRITABLE_SERVER_STAT_FILE_FAILED,
filename.c_str()));
@ -155,7 +155,7 @@ int idField(std::string::const_iterator first,
bool ServerStatMan::load(const std::string& filename)
{
BufferedFile fp(filename, BufferedFile::READ);
BufferedFile fp(filename.c_str(), BufferedFile::READ);
if(!fp) {
A2_LOG_ERROR(fmt(MSG_OPENING_READABLE_SERVER_STAT_FILE_FAILED,
filename.c_str()));

View File

@ -66,7 +66,7 @@ bool SessionSerializer::save(const std::string& filename) const
std::string tempFilename = filename;
tempFilename += "__temp";
{
BufferedFile fp(tempFilename, BufferedFile::WRITE);
BufferedFile fp(tempFilename.c_str(), BufferedFile::WRITE);
if(!fp) {
return false;
}

View File

@ -48,7 +48,7 @@
namespace aria2 {
UriListParser::UriListParser(const std::string& filename)
: fp_(filename, BufferedFile::READ)
: fp_(filename.c_str(), BufferedFile::READ)
{}
UriListParser::~UriListParser() {}

View File

@ -224,7 +224,7 @@ void option_processing(Option& op, std::vector<std::string>& uris,
if(File(cfname).isFile()) {
std::stringstream ss;
{
BufferedFile fp(cfname, BufferedFile::READ);
BufferedFile fp(cfname.c_str(), BufferedFile::READ);
if(fp) {
fp.transfer(ss);
}

View File

@ -1328,7 +1328,7 @@ bool saveAs
std::string tempFilename = filename;
tempFilename += "__temp";
{
BufferedFile fp(tempFilename, BufferedFile::WRITE);
BufferedFile fp(tempFilename.c_str(), BufferedFile::WRITE);
if(!fp) {
return false;
}

View File

@ -24,16 +24,16 @@ void BufferedFileTest::testOpen()
{
File f(A2_TEST_OUT_DIR"/aria2_BufferedFileTest_testOpen");
f.remove();
BufferedFile fail(f.getPath(), BufferedFile::READ);
BufferedFile fail(f.getPath().c_str(), BufferedFile::READ);
CPPUNIT_ASSERT(!fail);
BufferedFile wr(f.getPath(), BufferedFile::WRITE);
BufferedFile wr(f.getPath().c_str(), BufferedFile::WRITE);
CPPUNIT_ASSERT(wr);
std::string msg = "aria2 rules\nalpha\nbravo\ncharlie";
wr.write(msg.data(), msg.size());
wr.close();
BufferedFile rd(f.getPath(), BufferedFile::READ);
BufferedFile rd(f.getPath().c_str(), BufferedFile::READ);
char buf[256];
size_t len = rd.read(buf, 11);
CPPUNIT_ASSERT_EQUAL((size_t)11, len);

View File

@ -79,7 +79,7 @@ void ServerStatManTest::testSave()
CPPUNIT_ASSERT(ssm.add(localhost_ftp));
CPPUNIT_ASSERT(ssm.add(mirror));
std::string filename = A2_TEST_OUT_DIR"/aria2_ServerStatManTest_testSave";
const char* filename = A2_TEST_OUT_DIR"/aria2_ServerStatManTest_testSave";
CPPUNIT_ASSERT(ssm.save(filename));
CPPUNIT_ASSERT_EQUAL
(std::string
@ -111,7 +111,7 @@ void ServerStatManTest::testSave()
void ServerStatManTest::testLoad()
{
std::string filename = A2_TEST_OUT_DIR"/aria2_ServerStatManTest_testLoad";
const char* filename = A2_TEST_OUT_DIR"/aria2_ServerStatManTest_testLoad";
std::string in =
"host=localhost, protocol=ftp, dl_speed=30000, last_updated=1210000001, status=OK\n"
"host=localhost, protocol=http, dl_speed=25000, sc_avg_speed=101, mc_avg_speed=102, last_updated=1210000000, counter=6, status=OK\n"

View File

@ -1081,7 +1081,7 @@ void UtilTest::testToStream()
std::deque<SharedHandle<FileEntry> > entries;
entries.push_back(f1);
entries.push_back(f2);
std::string filename = A2_TEST_OUT_DIR"/aria2_UtilTest_testToStream";
const char* filename = A2_TEST_OUT_DIR"/aria2_UtilTest_testToStream";
BufferedFile fp(filename, BufferedFile::WRITE);
util::toStream(entries.begin(), entries.end(), fp);
fp.close();