/* Web Polygraph http://www.web-polygraph.org/
* (C) 2003-2006 The Measurement Factory
* Licensed under the Apache License, Version 2.0 */
#include "base/polygraph.h"
#include "xstd/gadgets.h"
#include "base/polyLogCats.h"
#include "runtime/ErrorMgr.h"
#include "runtime/polyErrors.h"
#include "client/CltXact.h"
#include "client/BodyParser.h"
BodyParser::BodyParser(): theOwner(0), isUsed(false) {
}
BodyParser::~BodyParser() {
resetSelf();
}
void BodyParser::configure(CltXact *anOwner) {
Should(!theOwner ^ !anOwner);
theOwner = anOwner;
}
void BodyParser::reset() {
resetSelf();
}
Size BodyParser::noteData(const ParseBuffer &data) {
isUsed = true;
return parse(data);
}
void BodyParser::noteLeftovers(const ParseBuffer &leftovers) {
ReportError(errContentLeftovers);
theOwner->noteContent(leftovers);
}
void BodyParser::noteOverflow(const ParseBuffer &buf) {
ReportError(errHugeContentToken);
theOwner->noteContent(buf);
}
int BodyParser::logCat() const {
return lgcCltSide;
}
ostream &BodyParser::dumpContext(ostream &os, const char *ctxBeg, Size ctxSize) const {
const Size prnSize = Min(ctxSize, Size(60));
os.write(ctxBeg, prnSize);
if (prnSize < ctxSize)
os << "...";
return os;
}
void BodyParser::resetSelf() {
theOwner = 0;
isUsed = false;
}
syntax highlighted by Code2HTML, v. 0.9.1