Nymph  v1.5.2
Flow-Based Data Processing Framework
KTPrintDataStructure.cc
Go to the documentation of this file.
1 /*
2  * KTPrintDataStructure.cc
3  *
4  * Created on: Sept 12, 2014
5  * Author: N.S. Oblath
6  */
7 
9 
10 #include "KTLogger.hh"
11 
12 #include <sstream>
13 
14 using boost::shared_ptr;
15 
16 namespace Nymph
17 {
18  KTLOGGER(datalog, "KTPrintDataStructure");
19 
20  // Register the processor
21  KT_REGISTER_PROCESSOR(KTPrintDataStructure, "print-data-structure");
22 
23  KTPrintDataStructure::KTPrintDataStructure(const std::string& name) :
24  KTProcessor(name),
25  fDataSignal("data", this),
26  fDataStructSlot("print-data", this, &KTPrintDataStructure::PrintDataStructure),
27  fCutStructSlot("print-cuts", this, &KTPrintDataStructure::PrintCutStructure),
28  fDataAndCutStructSlot("print-data-and-cuts", this, &KTPrintDataStructure::PrintDataAndCutStructure)
29  {
30  }
31 
33  {
34  }
35 
36  bool KTPrintDataStructure::Configure(const scarab::param_node&)
37  {
38  return true;
39  }
40 
42  {
43  DoPrintDataStructure(dataPtr);
44 
45  fDataSignal(dataPtr);
46 
47  return;
48  }
49 
51  {
52  DoPrintCutStructure(dataPtr);
53 
54  fDataSignal(dataPtr);
55 
56  return;
57  }
58 
59 
61  {
62  DoPrintDataStructure(dataPtr);
63  DoPrintCutStructure(dataPtr);
64 
65  fDataSignal(dataPtr);
66 
67  return;
68  }
69 
71  {
72  std::stringstream printbuf;
73 
74  printbuf << "\nData Structure:\n";
75  printbuf << "\t- " << dataPtr->Name() << '\n';
76  KTDEBUG(datalog, "Found data type " << dataPtr->Name());
77  KTExtensibleStructCore< KTDataCore >* nextData = dataPtr->Next();
78  while (nextData != NULL)
79  {
80  printbuf << "\t- " << nextData->Name() << '\n';
81  KTDEBUG(datalog, "Found data type " << nextData->Name());
82  nextData = nextData->Next();
83  }
84 
85  KTINFO(datalog, printbuf.str());
86 
87  return;
88  }
89 
91  {
92  std::stringstream printbuf;
93 
94  KTCutStatus& cutStatus = dataPtr->GetCutStatus();
95  printbuf << "\n" << cutStatus;
96 
97  const KTCutResult* cutResult = cutStatus.CutResults();
98  printbuf << "Cut Structure:\n";
99  while (cutResult != NULL)
100  {
101  printbuf << "\t- " << cutResult->Name() << " -- is cut: " << cutResult->GetState() << '\n';
102  KTDEBUG(datalog, "Found cut type " << cutResult->Name());
103  cutResult = cutResult->Next();
104  }
105 
106  KTINFO(datalog, printbuf.str());
107 
108  return;
109  }
110 
111 } /* namespace Nymph */
bool Configure(const scarab::param_node &node)
Should perform parameter store and command-line configurations.
#define KTINFO(...)
Definition: KTLogger.hh:344
KTExtensibleStructCore * Next() const
Returns the pointer to the next field.
Provides easy access to cut information.
Definition: KTCutStatus.hh:54
KTPrintDataStructure(const std::string &name="print-data-structure")
KT_REGISTER_PROCESSOR(KTDataQueueProcessor, "data-queue")
void PrintCutStructure(KTDataPtr dataPtr)
#define KTDEBUG(...)
Definition: KTLogger.hh:343
KTLOGGER(applog, "KTApplication")
void DoPrintCutStructure(KTDataPtr dataPtr)
void DoPrintDataStructure(KTDataPtr dataPtr)
boost::shared_ptr< KTData > KTDataPtr
Definition: KTData.hh:67
void PrintDataAndCutStructure(KTDataPtr dataPtr)
Contains KTPrintDataStructure.
Contains the logger class and macros, based on Kasper&#39;s KLogger class.
void PrintDataStructure(KTDataPtr dataPtr)
Prints the structure of data objects.
virtual const std::string & Name() const =0