Bladeren bron

Made BufferedFile ctor take const char* args

Tatsuhiro Tsujikawa 13 jaren geleden
bovenliggende
commit
f133091a9e

+ 13 - 9
src/BufferedFile.cc

@@ -43,15 +43,19 @@
 
 namespace aria2 {
 
-const std::string BufferedFile::READ = "rb";
-const std::string BufferedFile::WRITE = "wb";
-const std::string 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_;
-}
+const char BufferedFile::READ[] = "rb";
+const char BufferedFile::WRITE[] = "wb";
+const char BufferedFile::APPEND[] = "ab";
+
+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)

+ 4 - 4
src/BufferedFile.h

@@ -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&);

+ 2 - 2
src/CookieStorage.cc

@@ -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;

+ 1 - 1
src/DHTRoutingTableDeserializer.cc

@@ -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()));

+ 1 - 1
src/DHTRoutingTableSerializer.cc

@@ -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()));

+ 2 - 2
src/DefaultBtProgressInfoFile.cc

@@ -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()));
   }

+ 1 - 1
src/Logger.cc

@@ -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"));
     }

+ 1 - 1
src/Netrc.cc

@@ -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()));
   }

+ 1 - 1
src/NsCookieParser.cc

@@ -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()));
   }

+ 2 - 2
src/ProtocolDetector.cc

@@ -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)) {

+ 2 - 2
src/ServerStatMan.cc

@@ -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()));

+ 1 - 1
src/SessionSerializer.cc

@@ -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;
     }

+ 1 - 1
src/UriListParser.cc

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

+ 1 - 1
src/option_processing.cc

@@ -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);
           }

+ 1 - 1
src/util.cc

@@ -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;
     }

+ 3 - 3
test/BufferedFileTest.cc

@@ -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);

+ 2 - 2
test/ServerStatManTest.cc

@@ -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"

+ 1 - 1
test/UtilTest.cc

@@ -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();