if (SelfDoc::notInInitialize(__VA_ARGS__)) { \
std::ostringstream os; \
auto __from = __ctx.getCallerContext(); \
os << "=SelfDoc={ " << SelfDoc::keyVal("module", __from ? __from->getComponentType()->getFullName() : "-=unknown=-") \
<< ", " << SelfDoc::keyVal("action","CALL") \
<< ", " << SelfDoc::val("details") << " : { " \
<< SelfDoc::keyVal("call to", getSimulation()->getContext()->getComponentType()->getFullName()) \
<< ", " << SelfDoc::keyVal("function", std::string(opp_typename(typeid(*this))) + "::" + __func__) \
<< ", " << SelfDoc::keyVal("info", SelfDoc::enterMethodInfo(__VA_ARGS__)) \
<< " } }"; \
globalSelfDoc.insert(os.str()); \
}