mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 21:05:36 +00:00
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:
parent
62cc94df8a
commit
1ea5ef52b0
@ -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 *
|
||||
|
@ -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__ */
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user