From 11eed225b799c14519ee46305be11566dbbb22b8 Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@controlyourself.ca>
Date: Sun, 28 Sep 2008 14:18:12 -0400
Subject: [PATCH] blow the cached streams for tags on a new notice

darcs-hash:20080928181812-5ed1f-708380f239b17b2a53b7279aa4a55af11156a5e8.gz
---
 classes/Notice.php     | 16 ++++++++++++++++
 classes/Notice_tag.php |  7 +++++++
 2 files changed, 23 insertions(+)

diff --git a/classes/Notice.php b/classes/Notice.php
index e72892966c..3402e2b307 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -140,6 +140,22 @@ class Notice extends Memcached_DataObject
 		$this->blowNoticeCache();
 		$this->blowRepliesCache();
 		$this->blowPublicCache();
+		$this->blowTagCache();
+	}
+
+	function blowTagCache() {
+		$cache = common_memcache();
+		if ($cache) {
+			$tag = new Notice_tag();
+			$tag->notice_id = $this->id;
+			if ($tag->find()) {
+				while ($tag->fetch()) {
+					$tag->blowCache();
+				}
+			}
+			$tag->free();
+			unset($tag);
+		}
 	}
 	
 	function blowSubsCache() {
diff --git a/classes/Notice_tag.php b/classes/Notice_tag.php
index e9f00d6d13..5ab6e332ab 100644
--- a/classes/Notice_tag.php
+++ b/classes/Notice_tag.php
@@ -45,4 +45,11 @@ class Notice_tag extends Memcached_DataObject
 								 'notice_tag:notice_stream:' . $tag,
 								 $offset, $limit);
 	}
+	
+	function blowCache() {
+		$cache = common_memcache();
+		if ($cache) {
+			$cache->delete(common_cache_key('notice_tag:notice_stream:' . $this->tag));
+		}
+	}
 }
-- 
2.39.5