File indexing completed on 2024-04-06 12:02:24
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include "CondFormats/L1TObjects/interface/L1TriggerKeyList.h"
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 L1TriggerKeyList::L1TriggerKeyList() {}
0031
0032
0033
0034
0035
0036
0037 L1TriggerKeyList::~L1TriggerKeyList() {}
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055 bool L1TriggerKeyList::addKey(const std::string& tscKey, const std::string& payloadToken, bool overwriteKey) {
0056 std::pair<KeyToToken::iterator, bool> result = m_tscKeyToToken.insert(std::make_pair(tscKey, payloadToken));
0057
0058 if (!result.second && overwriteKey) {
0059
0060 m_tscKeyToToken.erase(result.first);
0061
0062
0063 result = m_tscKeyToToken.insert(std::make_pair(tscKey, payloadToken));
0064 }
0065
0066 return result.second;
0067 }
0068
0069 bool L1TriggerKeyList::addKey(const std::string& recordType,
0070 const std::string& key,
0071 const std::string& payloadToken,
0072 bool overwriteKey) {
0073 RecordToKeyToToken::iterator it = m_recordKeyToken.find(recordType);
0074
0075 if (it == m_recordKeyToken.end()) {
0076 it = m_recordKeyToken.insert(std::make_pair(recordType, KeyToToken())).first;
0077 }
0078
0079 std::pair<KeyToToken::iterator, bool> result = it->second.insert(std::make_pair(key, payloadToken));
0080
0081 if (!result.second && overwriteKey) {
0082
0083 it->second.erase(result.first);
0084
0085
0086 result = it->second.insert(std::make_pair(key, payloadToken));
0087 }
0088
0089 return result.second;
0090 }
0091
0092
0093
0094
0095
0096 std::string L1TriggerKeyList::token(const std::string& tscKey) const {
0097 KeyToToken::const_iterator it = m_tscKeyToToken.find(tscKey);
0098
0099 if (it == m_tscKeyToToken.end()) {
0100 return std::string();
0101 } else {
0102 return it->second;
0103 }
0104 }
0105
0106 std::string L1TriggerKeyList::token(const std::string& recordName,
0107 const std::string& dataType,
0108 const std::string& key) const {
0109 std::string recordType = recordName + "@" + dataType;
0110 return token(recordType, key);
0111 }
0112
0113 std::string L1TriggerKeyList::token(const std::string& recordType, const std::string& key) const {
0114 RecordToKeyToToken::const_iterator it = m_recordKeyToken.find(recordType);
0115
0116 if (it == m_recordKeyToken.end()) {
0117 return std::string();
0118 } else {
0119 KeyToToken::const_iterator it2 = it->second.find(key);
0120
0121 if (it2 == it->second.end()) {
0122 return std::string();
0123 } else {
0124 return it2->second;
0125 }
0126 }
0127 }
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162 std::string L1TriggerKeyList::objectKey(const std::string& recordName, const std::string& payloadToken) const {
0163 RecordToKeyToToken::const_iterator iRecordType = m_recordKeyToken.begin();
0164 for (; iRecordType != m_recordKeyToken.end(); ++iRecordType) {
0165
0166 std::string recordInMap(iRecordType->first, 0, iRecordType->first.find_first_of("@"));
0167 if (recordInMap == recordName) {
0168
0169 KeyToToken::const_iterator iKey = iRecordType->second.begin();
0170 KeyToToken::const_iterator eKey = iRecordType->second.end();
0171 for (; iKey != eKey; ++iKey) {
0172 if (iKey->second == payloadToken) {
0173 return iKey->first;
0174 }
0175 }
0176 }
0177 }
0178
0179 return std::string();
0180 }
0181
0182 std::string L1TriggerKeyList::tscKey(const std::string& triggerKeyPayloadToken) const {
0183
0184 KeyToToken::const_iterator iKey = m_tscKeyToToken.begin();
0185 KeyToToken::const_iterator eKey = m_tscKeyToToken.end();
0186 for (; iKey != eKey; ++iKey) {
0187 if (iKey->second == triggerKeyPayloadToken) {
0188 return iKey->first;
0189 }
0190 }
0191
0192 return std::string();
0193 }
0194
0195
0196
0197