瀏覽代碼

2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Added CookieStorage::DomainEntry::swap(). Also added non-member
	swap for it.
	* src/CookieStorage.cc
	* src/CookieStorage.h
Tatsuhiro Tsujikawa 15 年之前
父節點
當前提交
4ed364d772
共有 3 個文件被更改,包括 42 次插入0 次删除
  1. 7 0
      ChangeLog
  2. 24 0
      src/CookieStorage.cc
  3. 11 0
      src/CookieStorage.h

+ 7 - 0
ChangeLog

@@ -1,3 +1,10 @@
+2010-11-20  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Added CookieStorage::DomainEntry::swap(). Also added non-member
+	swap for it.
+	* src/CookieStorage.cc
+	* src/CookieStorage.h
+
 2010-11-20  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Made LogFactory::logger_ as SharedHandle<Logger> to make dtor of

+ 24 - 0
src/CookieStorage.cc

@@ -79,6 +79,19 @@ CookieStorage::DomainEntry& CookieStorage::DomainEntry::operator=
   return *this;
 }
 
+void CookieStorage::DomainEntry::swap(CookieStorage::DomainEntry& c)
+{
+  using std::swap;
+  swap(key_, c.key_);
+  swap(lastAccessTime_, c.lastAccessTime_);
+  swap(cookies_, c.cookies_);
+}
+
+void swap(CookieStorage::DomainEntry& a, CookieStorage::DomainEntry& b)
+{
+  a.swap(b);
+}
+
 bool CookieStorage::DomainEntry::addCookie(const Cookie& cookie, time_t now)
 {
   setLastAccessTime(now);
@@ -395,3 +408,14 @@ bool CookieStorage::saveNsFormat(const std::string& filename)
 }
 
 } // namespace aria2
+
+namespace std {
+template<>
+void swap<aria2::CookieStorage::DomainEntry>
+(aria2::CookieStorage::DomainEntry& a,
+ aria2::CookieStorage::DomainEntry& b)
+{
+  a.swap(b);
+}
+} // namespace std
+

+ 11 - 0
src/CookieStorage.h

@@ -67,6 +67,8 @@ public:
     DomainEntry(const DomainEntry& c);
     ~DomainEntry();
 
+    void swap(DomainEntry& c);
+
     DomainEntry& operator=(const DomainEntry& c);
 
     const std::string& getKey() const
@@ -183,6 +185,15 @@ public:
   }
 };
 
+void swap(CookieStorage::DomainEntry& a, CookieStorage::DomainEntry& b);
+
 } // namespace aria2
 
+namespace std {
+template<>
+void swap<aria2::CookieStorage::DomainEntry>
+(aria2::CookieStorage::DomainEntry& a,
+ aria2::CookieStorage::DomainEntry& b);
+} // namespace std
+
 #endif // D_COOKIE_STORAGE_H