hce-node application  1.4.3
HCE Hierarchical Cluster Engine node application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SphinxReduceTask.cpp
Go to the documentation of this file.
1 #include "SphinxReduceTask.hpp"
2 
3 namespace HCE{
4 namespace sphinx{
5 namespace reduce_task{
6 
8 
10 
11 void SphinxReduceTask::addKeyValue(const std::string& key, const std::string& value)
12 {
13  if (hasKeyInData(key)){
14  saveBestWeight(key, value);
15  }
16  else{
17  addNewResource(key, value);
18  }
19 }
20 
22  Poco::SharedPtr<HCE::reduce::core::ReduceResultIf> reduceResult)
23 {
24  for (_reduceDataIterator = _reduceData.begin(); _reduceDataIterator != _reduceData.end();
25  ++_reduceDataIterator){
26  reduceResult->addKeyValue(_reduceDataIterator->first, _reduceDataIterator->second);
27  }
28 }
29 
30 bool SphinxReduceTask::hasKeyInData(const std::string& mapKey)
31 {
32  _reduceDataIterator = _reduceData.find(mapKey);
33  if (_reduceDataIterator != _reduceData.end()){
34  return true;
35  }
36  return false;
37 }
38 
39 void SphinxReduceTask::saveBestWeight(const std::string& key, const std::string& value)
40 {
41  if (_reduceData[key] < value){
42  _reduceData[key] = value;
43  }
44 }
45 
46 void SphinxReduceTask::addNewResource(const std::string& key, const std::string& value)
47 {
48  _reduceData.insert(std::pair<std::string, std::string>(key, value));
49 }
50 
51 }
52 }
53 }
54