本文整理汇总了C++中EventSource::ParseCharacter方法的典型用法代码示例。如果您正苦于以下问题:C++ EventSource::ParseCharacter方法的具体用法?C++ EventSource::ParseCharacter怎么用?C++ EventSource::ParseCharacter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EventSource
的用法示例。
在下文中一共展示了EventSource::ParseCharacter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
// this method parses the characters as they become available instead of
// buffering them.
NS_METHOD
EventSource::StreamReaderFunc(nsIInputStream *aInputStream,
void *aClosure,
const char *aFromRawSegment,
uint32_t aToOffset,
uint32_t aCount,
uint32_t *aWriteCount)
{
EventSource* thisObject = static_cast<EventSource*>(aClosure);
if (!thisObject || !aWriteCount) {
NS_WARNING("EventSource cannot read from stream: no aClosure or aWriteCount");
return NS_ERROR_FAILURE;
}
*aWriteCount = 0;
int32_t srcCount, outCount;
PRUnichar out[2];
nsresult rv;
const char *p = aFromRawSegment,
*end = aFromRawSegment + aCount;
do {
srcCount = aCount - (p - aFromRawSegment);
outCount = 2;
thisObject->mLastConvertionResult =
thisObject->mUnicodeDecoder->Convert(p, &srcCount, out, &outCount);
MOZ_ASSERT(thisObject->mLastConvertionResult != NS_ERROR_ILLEGAL_INPUT);
for (int32_t i = 0; i < outCount; ++i) {
rv = thisObject->ParseCharacter(out[i]);
NS_ENSURE_SUCCESS(rv, rv);
}
p = p + srcCount;
} while (p < end &&
thisObject->mLastConvertionResult != NS_PARTIAL_MORE_INPUT &&
thisObject->mLastConvertionResult != NS_OK);
*aWriteCount = aCount;
return NS_OK;
}