00001 /* 00002 * Copyright (C) 2007 Pleyo. All rights reserved. 00003 * 00004 * Redistribution and use in source and binary forms, with or without 00005 * modification, are permitted provided that the following conditions 00006 * are met: 00007 * 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 3. Neither the name of Pleyo nor the names of 00014 * its contributors may be used to endorse or promote products derived 00015 * from this software without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY PLEYO AND ITS CONTRIBUTORS "AS IS" AND ANY 00018 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00019 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00020 * DISCLAIMED. IN NO EVENT SHALL PLEYO OR ITS CONTRIBUTORS BE LIABLE FOR ANY 00021 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00022 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00023 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00024 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00025 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00026 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00027 */ 00028 00040 #ifndef BTCOOKIEMANAGER_H 00041 #define BTCOOKIEMANAGER_H 00042 00043 #include "BICookieJar.h" 00044 #include "BIObserver.h" 00045 #include "PlatformString.h" 00046 #include "StringHash.h" 00047 #include "wtf/HashMap.h" 00048 00049 class BTCookie; 00050 class BTCookieMap; 00051 00052 using BAL::BIObserver; 00053 00058 class BCCookieManager : public BICookieJar, BIObserver { 00059 public: 00060 BCCookieManager(); 00061 ~BCCookieManager(); 00062 00063 IMPLEMENT_BICOOKIEJAR; 00064 00070 int add(const WebCore::String& host, const BTCookie& cookie); 00071 00072 bool respectsSecurityStandards(const KURL& url, BTCookie& cookie); 00073 00074 bool thisMapExists(String mapName); 00075 00082 HashMap<WebCore::String, BTCookieMap*> getMapListForHost(const WebCore::String& host, bool onlyOneMap = false) const; 00083 00089 void observe(const String&, const String&); 00090 00095 void saveCookiesToFile(); 00096 00101 void getCookiesFromFile(); 00102 00103 private: 00104 // can't put reference BTCookieMap& in map 00105 HashMap<WebCore::String, BTCookieMap*> m_managerMap; 00106 00108 unsigned short m_count; 00109 }; 00110 00111 00112 #endif // BTCOOKIEMANAGER_H