#include "Domain.h" Domain * Domain::head = 0; Domain::Domain(const Regex & _pattern) : pattern(_pattern) { prev = 0; next = head; head = this; next->prev = this; } Domain::~Domain() { if (head == this) head = next; if (next) next->prev = prev; if (prev) prev->next = next; } void Domain::OnTop() { if (next) next->prev = prev; if (prev) prev->next = next; prev = 0; next = head; head = this; next->prev = this; } Domain * Domain::find_domain(const String & url) { Domain * r = 0; if (head) r = head->find_domain_r(url); return r; } Domain * Domain::find_domain_r(const String & url) { if (pattern.Match(url)) return this; if (next) return next->find_domain_r(url); return 0; }