$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef _ots_FEProducerVInterface_h_ 00002 #define _ots_FEProducerVInterface_h_ 00003 00004 #include "otsdaq-core/DataManager/DataProducerBase.h" 00005 #include "otsdaq-core/FECore/FEVInterface.h" 00006 00007 #include <array> 00008 #include <iostream> 00009 #include <string> 00010 #include <vector> 00011 00012 namespace ots 00013 { 00014 // FEProducerVInterface 00015 // This class is a virtual class defining the features of front-end interface plugin 00016 // class. The features include configuration hooks, finite state machine handlers, 00017 // Front-end Macros for web accessible C++ handlers, slow controls hooks, as well as 00018 // universal write and read for Macro Maker compatibility. 00019 class FEProducerVInterface : public FEVInterface, public DataProducerBase 00020 { 00021 public: 00022 FEProducerVInterface(const std::string& interfaceUID, 00023 const ConfigurationTree& theXDAQContextConfigTree, 00024 const std::string& interfaceConfigurationPath); 00025 00026 virtual ~FEProducerVInterface(void); 00027 00028 virtual void startProcessingData(std::string runNumber) 00029 { 00030 __FE_COUT__ << "Do nothing. The FE Manager starts the workloop." << __E__; 00031 } 00032 virtual void stopProcessingData(void) 00033 { 00034 __FE_COUT__ << "Do nothing. The FE Manager stops the workloop." << __E__; 00035 } 00036 00037 virtual void copyToNextBuffer(const std::string& dataToWrite); 00038 virtual std::string* getNextBuffer(void); 00039 virtual void writeCurrentBuffer(void); 00040 00041 protected: 00042 std::string* dataP_; 00043 std::map<std::string, std::string>* headerP_; 00044 }; 00045 00046 } // namespace ots 00047 00048 #endif