path: root/Docs/ideas
diff options
authorJohn Mark Bell <>2009-09-09 10:40:53 +0000
committerJohn Mark Bell <>2009-09-09 10:40:53 +0000
commit4e5488ccfad97bbccd6ea3a0453bf233d0a0120e (patch)
tree5c08f1bfea60901752520c5e35691fe9a6c9e90b /Docs/ideas
parent7f369b829bf570ee4877e6116548c67e05eea805 (diff)
Introduce the concept of content reusability.
svn path=/trunk/netsurf/; revision=9563
Diffstat (limited to 'Docs/ideas')
1 files changed, 11 insertions, 1 deletions
diff --git a/Docs/ideas/cache.txt b/Docs/ideas/cache.txt
index 7e813e26f..fda0617a3 100644
--- a/Docs/ideas/cache.txt
+++ b/Docs/ideas/cache.txt
@@ -30,10 +30,20 @@ High-level cache:
+ Responsible for content objects.
+ Tracks content dependencies (and potential cycles).
+ Returns opaque handles to content objects.
- + Manages content sharability.
+ + Manages content sharability & reusability (see below).
+ Contents with unknown types are never shared and thus get unique handles.
+ Content handles <> content objects: they're an indirection mechanism.
+Content sharability & reusability
+ If a content is shareable, then it may have multiple concurrent users.
+ Otherwise, it may have at most one user.
+ If a content is reusable, then it may be retained in the cache for later use
+ when it has no users. Otherwise, it will be removed from the cache when
+ it has no users.
Example: retrieving a top-level resource