本文整理汇总了C++中ParsedCookie::isSession方法的典型用法代码示例。如果您正苦于以下问题:C++ ParsedCookie::isSession方法的具体用法?C++ ParsedCookie::isSession怎么用?C++ ParsedCookie::isSession使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParsedCookie
的用法示例。
在下文中一共展示了ParsedCookie::isSession方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateHtmlFragmentForCookies
String CookieManager::generateHtmlFragmentForCookies()
{
CookieLog("CookieManager - generateHtmlFragmentForCookies\n");
Vector<ParsedCookie*> cookieCandidates;
for (HashMap<String, CookieMap*>::iterator it = m_managerMap.begin(); it != m_managerMap.end(); ++it)
it->second->getAllChildCookies(&cookieCandidates);
String result;
ParsedCookie* cookie = 0;
result.append(String("<table style=\"word-wrap:break-word\" cellSpacing=\"0\" cellPadding=\"0\" border=\"1\"><tr><th>Domain</th><th>Path</th><th>Protocol</th><th>Name</th><th>Value</th><th>Secure</th><th>HttpOnly</th><th>Session</th></tr>"));
for (size_t i = 0; i < cookieCandidates.size(); ++i) {
cookie = cookieCandidates[i];
result.append(String("<tr><td align=\"center\">"));
result.append(cookie->domain());
result.append(String("<td align=\"center\">"));
result.append(cookie->path());
result.append(String("<td align=\"center\">"));
result.append(cookie->protocol());
result.append(String("<td align=\"center\">"));
result.append(cookie->name());
result.append(String("<td align=\"center\" style= \"word-break:break-all\">"));
result.append(cookie->value());
result.append(String("<td align=\"center\">"));
result.append(String(cookie->isSecure() ? "Yes" : "No"));
result.append(String("<td align=\"center\">"));
result.append(String(cookie->isHttpOnly() ? "Yes" : "No"));
result.append(String("<td align=\"center\">"));
result.append(String(cookie->isSession() ? "Yes" : "No"));
result.append(String("</td></tr>"));
}
result.append(String("</table>"));
return result;
}
示例2: update
void CookieManager::update(CookieMap* targetMap, ParsedCookie* newCookie, BackingStoreRemovalPolicy postToBackingStore)
{
// If old cookie is non-session and new one is, we have to delete it from backingstore
// If new cookie is non-session and old one is, we have to add it to backingstore
// If both sessions are non-session, then we update it in the backingstore
CookieLog("CookieManager - updating new cookie - %s.\n", newCookie->toString().utf8().data());
ParsedCookie* oldCookie = targetMap->updateCookie(newCookie);
ASSERT(oldCookie);
if (postToBackingStore == RemoveFromBackingStore) {
bool newIsSession = newCookie->isSession();
bool oldIsSession = oldCookie->isSession();
if (!newIsSession && !oldIsSession)
m_cookieBackingStore->update(newCookie);
else if (newIsSession && !oldIsSession) {
// Must manually decrease the counter because it was not counted when
// the cookie was removed in cookieMap.
removedCookie();
m_cookieBackingStore->remove(oldCookie);
} else if (!newIsSession && oldIsSession) {
// Must manually increase the counter because it was not counted when
// the cookie was added in cookieMap.
addedCookie();
m_cookieBackingStore->insert(newCookie);
}
}
delete oldCookie;
}
示例3: addCookieToMap
void CookieManager::addCookieToMap(CookieMap* targetMap, ParsedCookie* candidateCookie, BackingStoreRemovalPolicy postToBackingStore)
{
ParsedCookie* oldestCookie = 0;
// Check if we have not reached the per cookie domain limit.
// If that is not true, we check if the global limit has been reached if backingstore mode is on
// Two points:
// 1) We only do a global check if backingstore mode is on because the global cookie limit only
// counts session cookies that are saved in the database. If the user goes over the limit
// when they are in private mode, we know that the total cookie limit will be under the limit
// once the user goes back to normal mode (memory deleted and reloaded from the database)
// 2) We use else if for this statement because if we remove a cookie in the 1st statement
// then it means the global count will never exceed the limit
CookieLimitLog("CookieManager - local count: %d global count: %d", targetMap->count(), m_count);
if (targetMap->count() >= s_maxCookieCountPerHost) {
CookieLog("CookieManager - deleting oldest cookie from this map due to domain count.\n");
oldestCookie = targetMap->removeOldestCookie();
} else if (m_count >= s_globalMaxCookieCount && (postToBackingStore != DoNotRemoveFromBackingStore)) {
CookieLimitLog("CookieManager - Global limit reached, initiate cookie limit clean up.");
initiateCookieLimitCleanUp();
}
CookieLog("CookieManager - adding new cookie - %s.\n", candidateCookie->toString().utf8().data());
targetMap->addCookie(candidateCookie);
// Only add non session cookie to the backing store.
if (postToBackingStore == RemoveFromBackingStore) {
if (oldestCookie && !oldestCookie->isSession()) {
CookieLog("CookieManager - oldestCookie exists, deleting it from backingstore and destructing.\n");
m_cookieBackingStore->remove(oldestCookie);
}
if (!candidateCookie->isSession())
m_cookieBackingStore->insert(candidateCookie);
}
if (oldestCookie)
delete oldestCookie;
}
示例4: checkAndTreatCookie
void CookieManager::checkAndTreatCookie(ParsedCookie* candidateCookie, BackingStoreRemovalPolicy postToBackingStore, CookieFilter filter)
{
CookieLog("CookieManager - checkAndTreatCookie - processing url with domain - %s & protocol %s\n", candidateCookie->domain().utf8().data(), candidateCookie->protocol().utf8().data());
// Delete invalid cookies:
// 1) A cookie which is not from http shouldn't have a httpOnly property.
// 2) Cookies coming from schemes that we do not support and the special flag isn't on
if ((filter == NoHttpOnlyCookie && candidateCookie->isHttpOnly()) || (shouldIgnoreScheme(candidateCookie->protocol()) && !m_shouldDumpAllCookies)) {
delete candidateCookie;
return;
}
const bool ignoreDomain = (candidateCookie->protocol() == "file" || candidateCookie->protocol() == "local");
// Determine which protocol tree to add the cookie to. Create one if necessary.
CookieMap* curMap = 0;
if (m_managerMap.contains(candidateCookie->protocol()))
curMap = m_managerMap.get(candidateCookie->protocol());
else {
// Check if it is a secure version, if it is, link it to the non-secure version
// Link curMap to the new protocol as well as the old one if it doesn't exist
if (candidateCookie->protocol() == "https") {
curMap = m_managerMap.get("http");
if (!curMap) {
curMap = new CookieMap("http");
m_managerMap.add("http", curMap);
}
} else if (candidateCookie->protocol() == "wss") {
curMap = m_managerMap.get("ws");
if (!curMap) {
curMap = new CookieMap("ws");
m_managerMap.add("ws", curMap);
}
} else
curMap = new CookieMap(candidateCookie->protocol());
CookieLog("CookieManager - adding protocol cookiemap - %s\n", curMap->getName().utf8().data());
m_managerMap.add(candidateCookie->protocol(), curMap);
}
// If protocol support domain, we have to traverse the domain tree to find the right
// cookieMap to handle with
if (!ignoreDomain)
curMap = findOrCreateCookieMap(curMap, *candidateCookie);
// Now that we have the proper map for this cookie, we can modify it
// If cookie does not exist and has expired, delete it
// If cookie exists and it has expired, so we must remove it from the map, if not update it
// If cookie expired and came from the BackingStore (therefore does not exist), we have to remove from database
// If cookie does not exist & it's valid, add it to the current map
if (candidateCookie->hasExpired() || candidateCookie->isForceExpired()) {
// Special case for getBackingStoreCookies() to catch expired cookies
if (postToBackingStore == BackingStoreCookieEntry)
m_cookieBackingStore->remove(candidateCookie);
else if (curMap) {
// RemoveCookie will return 0 if the cookie doesn't exist.
ParsedCookie* expired = curMap->removeCookie(candidateCookie, filter);
// Cookie is useless, Remove the cookie from the backingstore if it exists.
// Backup check for BackingStoreCookieEntry incase someone incorrectly uses this enum.
if (expired && postToBackingStore != BackingStoreCookieEntry && !expired->isSession()) {
CookieLog("CookieManager - expired cookie is nonsession, deleting from db");
m_cookieBackingStore->remove(expired);
}
delete expired;
} else
delete candidateCookie;
} else {
ASSERT(curMap);
addCookieToMap(curMap, candidateCookie, postToBackingStore, filter);
}
}