/* Web Polygraph http://www.web-polygraph.org/ * (C) 2003-2006 The Measurement Factory * Licensed under the Apache License, Version 2.0 */ #include "base/polygraph.h" #include "runtime/HttpCookies.h" HttpCookies::HttpCookies(int limit): theRing(limit) { } HttpCookies::~HttpCookies() { while (count()) delete theRing.dequeue(); } void HttpCookies::keepLimit(int limit) { if (limit > theRing.capacity()) theRing.resize(limit); } void HttpCookies::add(HttpCookie *cookie) { if (theRing.full()) { if (!Should(!theRing.empty())) return; delete theRing.dequeue(); } theRing.enqueue(cookie); } int HttpCookies::count() const { return theRing.count(); } const HttpCookie &HttpCookies::get(int idx) const { const HttpCookie *cookie = theRing.top(idx); Assert(cookie); return *cookie; } HttpCookie *HttpCookieParse(const char *content, int size) { return new HttpCookie(content, size); }