From f0ac194aeb71d894d3dc3cce6ed945521dfdcec6 Mon Sep 17 00:00:00 2001 From: "darin%netscape.com" Date: Wed, 28 Feb 2001 01:41:02 +0000 Subject: [PATCH] [not part of the build] Added hooks to enable streaming to the mem cache! git-svn-id: svn://10.0.0.236/trunk@88149 18797224-902f-48f8-a5cc-f745e15eee43 --- .../netwerk/cache/src/nsMemoryCacheDevice.cpp | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/mozilla/netwerk/cache/src/nsMemoryCacheDevice.cpp b/mozilla/netwerk/cache/src/nsMemoryCacheDevice.cpp index fc79662b180..1e76b1c9426 100644 --- a/mozilla/netwerk/cache/src/nsMemoryCacheDevice.cpp +++ b/mozilla/netwerk/cache/src/nsMemoryCacheDevice.cpp @@ -22,6 +22,7 @@ */ #include "nsMemoryCacheDevice.h" +#include "nsMemoryCacheTransport.h" #include "nsICacheService.h" @@ -103,7 +104,25 @@ nsresult nsMemoryCacheDevice::GetTransportForEntry( nsCacheEntry * entry, nsITransport **transport ) { - return NS_ERROR_NOT_IMPLEMENTED; + NS_ENSURE_ARG_POINTER(entry); + NS_ENSURE_ARG_POINTER(transport); + + nsCOMPtr data; + + nsresult rv = entry->GetData(getter_AddRefs(data)); + if (NS_FAILED(rv)) + return rv; + + if (data) + return CallQueryInterface(data, transport); + else { + // create a new transport for this entry + NS_NEWXPCOM(*transport, nsMemoryCacheTransport); + if (!*transport) + return NS_ERROR_OUT_OF_MEMORY; + NS_ADDREF(*transport); + return entry->SetData(*transport); + } } nsresult