12 #include "tbb/concurrent_unordered_map.h"
20 constexpr
bool debug =
false;
25 namespace friendlyname {
29 static std::regex
const reColons(
"::");
30 static std::regex
const reComma(
",");
33 static std::regex
const reArray(
"\\[\\]");
34 static std::regex
const reUniquePtrDeleter(
"^std::unique_ptr< *(.*), *std::default_delete<\\1> *>");
35 static std::regex
const reUniquePtr(
"^std::unique_ptr");
45 static std::regex
const reWrapper(
"edm::Wrapper<(.*)>");
46 static std::regex
const reString(
"std::basic_string<char>");
47 static std::regex
const reString2(
"std::string");
48 static std::regex
const reString3(
"std::basic_string<char,std::char_traits<char> >");
50 static std::regex
const reCXX11(
"std::__cxx11::");
51 static std::regex
const reSorted(
"edm::SortedCollection<(.*), *edm::StrictWeakOrdering<\\1 *> >");
52 static std::regex
const reclangabi(
"std::__1::");
54 static std::regex
const reLongLong(
"Long64_t");
55 static std::regex
const reUnsigned(
"unsigned ");
56 static std::regex
const reLong(
"long ");
57 static std::regex
const reVector(
"std::vector");
59 "std::unordered_set< *(.*), *std::hash<\\1> *, *std::equal_to<\\1> *>");
61 "std::unordered_set< *(.*), *(.*) *, *std::equal_to<\\1> *>");
62 static std::regex
const reUnorderedSetHash(
"std::unordered_set< *(.*), *std::hash<\\1> *>");
65 "std::unordered_map< *(.*), *(.*), *std::hash<\\1> *, *std::equal_to<\\1> *>");
67 "std::unordered_map< *(.*), *(.*), *(.*) *, *std::equal_to<\\1> *>");
68 static std::regex
const reUnorderedMapHash(
"std::unordered_map< *(.*), *(.*), *std::hash<\\1> *>");
70 static std::regex
const reSharedPtr(
"std::shared_ptr");
71 static std::regex
const reAIKR(
72 ", *edm::helper::AssociationIdenticalKeyReference");
75 static std::regex
const reOwnVector(
"edm::OwnVector<(.*), *edm::ClonePolicy<\\1 *> >");
79 static std::regex
const reOneToOne(
"edm::AssociationMap< *edm::OneToOne<(.*?),(.*?), *u[a-z]*> >");
80 static std::regex
const reOneToMany(
"edm::AssociationMap< *edm::OneToMany<(.*?),(.*?), *u[a-z]*> >");
81 static std::regex
const reOneToValue(
"edm::AssociationMap< *edm::OneToValue<(.*?),(.*?), *u[a-z]*> >");
83 "edm::AssociationMap<edm::OneToManyWithQuality<(.*?), *(.*?), *(.*?), *u[a-z]*> >");
84 static std::regex
const reToVector(
"edm::AssociationVector<(.*), *(.*), *edm::Ref.*,.*>");
86 static std::regex
const reToRangeMap(
"edm::RangeMap< *(.*), *(.*), *edm::ClonePolicy<([^>]*)> >");
89 "edm::RefVector< *(.*)< *(.*) *>, *\\2 *, *edm::refhelper::FindUsingAdvance< *\\1< *\\2 *> *, *\\2 *> *>");
91 "edm::RefVector< *(.*) *, *(.*) *, *edm::refhelper::FindUsingAdvance< *\\1, *\\2 *> *>");
93 "edm::RefVector< *Association(.*) *, *edm::helper(.*), *Association(.*)::Find>");
97 using std::regex_replace;
99 name = regex_replace(name,
rePointer,
"ptr");
100 name = regex_replace(name,
reArray,
"As");
101 name = regex_replace(name,
reAIKR,
"");
102 name = regex_replace(name,
reclangabi,
"std::");
103 name = regex_replace(name,
reCXX11,
"std::");
104 name = regex_replace(name,
reString,
"String");
105 name = regex_replace(name,
reString2,
"String");
106 name = regex_replace(name,
reString3,
"String");
107 name = regex_replace(name,
reSorted,
"sSorted<$1>");
111 name = regex_replace(name,
reLong,
"l");
112 name = regex_replace(name,
reVector,
"s");
113 name = regex_replace(name,
reSharedPtr,
"SharedPtr");
114 name = regex_replace(name,
reOwnVector,
"sOwned<$1>");
115 name = regex_replace(name,
reToVector,
"AssociationVector<$1,To,$2>");
116 name = regex_replace(name,
reOneToOne,
"Association<$1,ToOne,$2>");
117 name = regex_replace(name,
reOneToMany,
"Association<$1,ToMany,$2>");
118 name = regex_replace(name,
reOneToValue,
"Association<$1,ToValue,$2>");
120 name = regex_replace(name,
reToRangeMap,
"RangeMap<$1,$2>");
121 name = regex_replace(name,
reToRefs1,
"Refs<$1<$2>>");
122 name = regex_replace(name,
reToRefs2,
"Refs<$1,$2>");
123 name = regex_replace(name,
reToRefsAssoc,
"Refs<Association$1>");
135 if (std::string_view{
result}.substr(0, 5) ==
"const") {
136 leadingConst =
"const";
140 if constexpr (
debug) {
141 std::cout <<
prefix <<
"subFriendlyName iFullName " << iFullName <<
" result " <<
result << std::endl;
148 result2 = regex_replace(
result,
reUniquePtr,
"UniquePtr", std::regex_constants::format_first_only);
159 result2 = regex_replace(
166 result2 = regex_replace(
result,
reUnorderedSet,
"stduset", std::regex_constants::format_first_only);
172 auto result2 = regex_replace(
175 result2 = regex_replace(
183 result2 = regex_replace(
result,
reUnorderedMap,
"stdumap", std::regex_constants::format_first_only);
192 if constexpr (
debug) {
196 if constexpr (
debug) {
199 std::cout <<
prefix <<
" aMatch " << aMatch <<
" theSub " << theSub << std::endl;
201 regex
const eMatch(
std::string(
"(^[^<]*)<") + aMatch +
">");
210 if constexpr (
debug) {
211 std::cout <<
prefix <<
"handleTemplateArguments " << iIn <<
" removeExtraSpaces " <<
result << std::endl;
219 result2.reserve(iIn.size());
220 unsigned int openTemplate = 0;
221 bool hadTemplate =
false;
238 if (
const bool hasComma =
result[
i] ==
',', hasColon = hadTemplate and
result[
i] ==
':';
239 openTemplate == 0 and (hasComma
or hasColon)) {
241 if constexpr (
debug) {
242 std::cout <<
prefix <<
" templateClass " << templateClass << std::endl;
245 if constexpr (
debug) {
249 if constexpr (
debug) {
252 std::cout <<
prefix <<
" friendlierName " << friendlierName << std::endl;
254 result2 += friendlierName;
256 result2 += templateClass;
258 if constexpr (
debug) {
273 if constexpr (
debug) {
279 if constexpr (
debug) {
280 std::cout <<
"\nfriendlyName for " << iFullName << std::endl;
283 typedef tbb::concurrent_unordered_map<std::string, std::string> Map;
284 static Map s_fillToFriendlyName;
285 auto itFound = s_fillToFriendlyName.find(iFullName);
286 if (s_fillToFriendlyName.end() == itFound) {
287 itFound = s_fillToFriendlyName
291 if constexpr (
debug) {
292 std::cout <<
"result " << itFound->second << std::endl;
294 return itFound->second;
static std::regex const reToRefs1("edm::RefVector< *(.*)< *(.*) *>, *\\2 *, *edm::refhelper::FindUsingAdvance< *\\1< *\\2 *> *, *\\2 *> *>")
static std::regex const reEndSpace(" +$")
static std::regex const reToRangeMap("edm::RangeMap< *(.*), *(.*), *edm::ClonePolicy<([^>]*)> >")
static std::regex const reUnorderedMap("std::unordered_map")
static std::regex const reCXX11("std::__cxx11::")
static std::regex const reUnorderedMapHash("std::unordered_map< *(.*), *(.*), *std::hash<\\1> *>")
static std::regex const reAIKR(", *edm::helper::AssociationIdenticalKeyReference")
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
static std::regex const reString3("std::basic_string<char,std::char_traits<char> >")
static std::regex const reUnsigned("unsigned ")
std::string removeAllSpaces(std::string const &iIn)
std::string subFriendlyName(std::string const &iFullName)
static std::regex const reSharedPtr("std::shared_ptr")
static std::regex const rePointer("\\*")
static std::regex const reOneToManyWithQuality("edm::AssociationMap<edm::OneToManyWithQuality<(.*?), *(.*?), *(.*?), *u[a-z]*> >")
static std::regex const reUniquePtrDeleter("^std::unique_ptr< *(.*), *std::default_delete<\\1> *>")
static std::regex const reToVector("edm::AssociationVector<(.*), *(.*), *edm::Ref.*,.*>")
static std::regex const reLong("long ")
static std::regex const reOneToMany("edm::AssociationMap< *edm::OneToMany<(.*?),(.*?), *u[a-z]*> >")
static std::regex const reOwnVector("edm::OwnVector<(.*), *edm::ClonePolicy<\\1 *> >")
static std::regex const reSorted("edm::SortedCollection<(.*), *edm::StrictWeakOrdering<\\1 *> >")
static std::regex const reLongLong("Long64_t")
Container::value_type value_type
static std::regex const reComma(",")
std::string friendlyName(std::string const &iFullName)
static std::regex const reUnorderedSetCustomHashKeyEqual("std::unordered_set< *(.*), *(.*) *, *std::equal_to<\\1> *>")
static std::regex const reOneToOne("edm::AssociationMap< *edm::OneToOne<(.*?),(.*?), *u[a-z]*> >")
std::string handleNamespaces(std::string const &iIn)
static std::regex const reWrapper("edm::Wrapper<(.*)>")
static std::regex const reUnorderedSet("std::unordered_set")
static std::regex const reArray("\\[\\]")
static std::regex const reTemplateArgs("[^<]*<(.*)>$")
static std::regex const reToRefsAssoc("edm::RefVector< *Association(.*) *, *edm::helper(.*), *Association(.*)::Find>")
static std::regex const reULongLong("ULong64_t")
static std::regex const reVector("std::vector")
std::string standardRenames(std::string const &iIn)
static std::regex const reColons("::")
std::string handleTemplateArguments(std::string const &)
static std::regex const reUnorderedMapHashKeyEqual("std::unordered_map< *(.*), *(.*), *std::hash<\\1> *, *std::equal_to<\\1> *>")
static std::regex const reUnorderedSetHash("std::unordered_set< *(.*), *std::hash<\\1> *>")
static std::string const emptyString("")
static std::regex const reUnorderedSetHashKeyEqual("std::unordered_set< *(.*), *std::hash<\\1> *, *std::equal_to<\\1> *>")
static std::regex const reBeginSpace("^ +")
static std::regex const reUniquePtr("^std::unique_ptr")
static std::regex const reUnorderedMapCustomHashKeyEqual("std::unordered_map< *(.*), *(.*), *(.*) *, *std::equal_to<\\1> *>")
static std::regex const reclangabi("std::__1::")
static std::regex const reString2("std::string")
static std::regex const reString("std::basic_string<char>")
static std::regex const reAllSpaces(" +")
tuple size
Write out results.
static std::regex const reOneToValue("edm::AssociationMap< *edm::OneToValue<(.*?),(.*?), *u[a-z]*> >")
static std::regex const reToRefs2("edm::RefVector< *(.*) *, *(.*) *, *edm::refhelper::FindUsingAdvance< *\\1, *\\2 *> *>")
std::string removeExtraSpaces(std::string const &iIn)