00001
00002 #include <stdint.h>
00003 #include <cstdlib>
00004 #include <vector>
00005 #include <string>
00006 #include <stdexcept>
00007 #include <inttypes.h>
00008 #include <sys/types.h>
00009
00010 namespace TrigConf {
00011
00012 class TriggerThreshold;
00013 class TriggerItemNode;
00014
00015
00016 std::vector<std::string>
00017 split(const std::string& line, const std::string& del=" ");
00018
00019
00020 void strip(std::string& str);
00021
00022 void replaceTabs(std::string& str);
00023
00024 void toLower(std::string&);
00025
00026 void removeAllSpaces(std::string&);
00027
00028 uint32_t bin2uint(const std::string& binary);
00029
00030 std::string uint2bin(uint32_t uinteger, uint16_t width);
00031
00032
00033
00034
00035
00036
00037
00038
00039 TrigConf::TriggerItemNode*
00040 parse(const std::string& logic,
00041 const std::vector<std::string>& conditions,
00042 const std::vector<TrigConf::TriggerThreshold*>& thrs) throw (std::logic_error);
00043
00044
00045
00046
00047 std::string::size_type
00048 findClosingBracket(std::string::size_type pos,
00049 const std::string& logic) throw (std::logic_error);
00050
00051
00052
00053
00054
00055 TrigConf::TriggerItemNode*
00056 buildObjNode(uint32_t condIdx,
00057 const std::vector<std::string>& conditions,
00058 const std::vector<TrigConf::TriggerThreshold*>& thrs) throw (std::logic_error);
00059
00060 std::string insertParenthesis(const std::string& givenlogic);
00061
00062
00063 }