WebDAV, NPOTB: Refactor simple stream reader, because every line of reuse

reduces the amount of C++ I have to read.
This commit is contained in:
shaver%mozilla.org 2004-10-15 07:58:56 +00:00
parent 62cc94df8a
commit 1ea5ef52b0
3 changed files with 20 additions and 22 deletions

View File

@ -68,11 +68,6 @@ public:
virtual ~PropfindStreamListener() { }
protected:
static NS_METHOD StreamReaderCallback(nsIInputStream *in, void *closure,
const char *fromRawSegment,
PRUint32 toOffset, PRUint32 count,
PRUint32 *writeCount);
NS_METHOD SignalCompletion(PRUint32 aStatusCode)
{
if (LOG_ENABLED()) {
@ -305,21 +300,6 @@ PropfindStreamListener::OnStopRequest(nsIRequest *aRequest,
return NS_OK;
}
NS_METHOD
PropfindStreamListener::StreamReaderCallback(nsIInputStream *aInputStream,
void *aClosure,
const char *aRawSegment,
PRUint32 aToOffset,
PRUint32 aCount,
PRUint32 *aWriteCount)
{
PropfindStreamListener *psl = NS_STATIC_CAST(PropfindStreamListener *,
aClosure);
psl->mBody.Append(aRawSegment, aCount);
*aWriteCount = aCount;
return NS_OK;
}
NS_IMETHODIMP
PropfindStreamListener::OnDataAvailable(nsIRequest *aRequest,
nsISupports *aContext,
@ -339,8 +319,8 @@ PropfindStreamListener::OnDataAvailable(nsIRequest *aRequest,
}
PRUint32 totalRead;
return aInputStream->ReadSegments(StreamReaderCallback, (void *)this,
aCount, &totalRead);
return aInputStream->ReadSegments(NS_WD_StreamReaderStringAppendCallback,
(void *)&mBody, aCount, &totalRead);
}
nsIStreamListener *

View File

@ -102,4 +102,9 @@ NS_WD_GetDocAndResponseListFromBuffer(const nsACString &buffer,
nsIDOMNodeList **responseList,
PRUint32 *length);
nsresult
NS_WD_StreamReaderStringAppendCallback(nsIInputStream *in, void *closure,
const char *fromRawSegment,
PRUint32 toOffset, PRUint32 count,
PRUint32 *writeCount);
#endif /* nsWebDAVInternal_h__ */

View File

@ -137,3 +137,16 @@ NS_WD_GetDocAndResponseListFromBuffer(const nsACString &buffer,
return NS_OK;
}
nsresult
NS_WD_StreamReaderStringAppendCallback(nsIInputStream *in, void *closure,
const char *fromRawSegment,
PRUint32 toOffset, PRUint32 count,
PRUint32 *writeCount)
{
nsACString *strp = NS_STATIC_CAST(nsACString *, closure);
strp->Append(fromRawSegment, count);
*writeCount = count;
return NS_OK;
}