highlighter application  1.1
HCE project utils : highlighter
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
HighlightStringStickerSimple.cpp
Go to the documentation of this file.
1 
13 #include <Poco/SharedPtr.h>
14 
16 
17 HighlightStringStickerSimple::HighlightStringStickerSimple():hlBegin(""), hlEnd(""), maxNumber(0xFFFFFFFF), highlightedCounter(0)
18 {
19 }
20 
21 std::string HighlightStringStickerSimple::fillOutPutStr(std::vector<WordPos> &wordOffsets, const std::string &incomeContent)
22 {
23  std::string ret;
24  unsigned int endPos = 0;
25  for(unsigned int i = 0; i < wordOffsets.size(); i++)
26  {
27  if(wordOffsets[i].beginOffset > incomeContent.length() || wordOffsets[i].endOffset > incomeContent.length())
28  {
29  throw std::length_error("bad string length");
30  }
32  ret.append(incomeContent.begin() + endPos, incomeContent.begin() + wordOffsets[i].beginOffset);
33  ret.append(hlBegin);
34  ret.append(incomeContent.begin() + wordOffsets[i].beginOffset, incomeContent.begin() + wordOffsets[i].endOffset);
35  ret.append(hlEnd);
36  endPos = wordOffsets[i].endOffset;
38  {
39  break;
40  }
41  }
42  ret.append(incomeContent.begin() + endPos, incomeContent.end());
43  return ret;
44 }
45 
46 void HighlightStringStickerSimple::reinitialize(Poco::SharedPtr<InDataStruct> inDataStructPtr)
47 {
48  if(!inDataStructPtr.isNull())
49  {
50  setHlBegin(inDataStructPtr->getParams(0).beginMarker);
51  setHlEnd(inDataStructPtr->getParams(0).endMarker);
52  setMaxNumber(inDataStructPtr->getParams(0).maxNumber);
53  }
54 }
55 
56 void HighlightStringStickerSimple::setHighlightedCounter(unsigned int _highlightedCounter)
57 {
58  highlightedCounter = _highlightedCounter;
59 }
60 
62 {
63  return highlightedCounter;
64 }
65 
67 {
68 }