Doxygen
TemplateNodeFactory类 参考

Factory class for creating tag AST nodes found in a template 更多...

class  AutoRegister
 Helper class for registering a template AST node 更多...
 

Public 类型

typedef TemplateNodePtr(* CreateFunc) (TemplateParser *parser, TemplateNode *parent, int line, const QCString &data)
 

Public 成员函数

TemplateNodePtr create (const QCString &name, TemplateParser *parser, TemplateNode *parent, int line, const QCString &data)
 
void registerTemplateNode (const QCString &name, CreateFunc func)
 

静态 Public 成员函数

static TemplateNodeFactoryinstance ()
 

Private 属性

std::unordered_map< std::string, CreateFuncm_registry
 

详细描述

Factory class for creating tag AST nodes found in a template

在文件 template.cpp4663 行定义.

成员类型定义说明

◆ CreateFunc

typedef TemplateNodePtr(* TemplateNodeFactory::CreateFunc) (TemplateParser *parser, TemplateNode *parent, int line, const QCString &data)

在文件 template.cpp4666 行定义.

成员函数说明

◆ create()

TemplateNodePtr TemplateNodeFactory::create ( const QCString name,
TemplateParser parser,
TemplateNode parent,
int  line,
const QCString data 
)
inline

在文件 template.cpp4678 行定义.

4683  {
4684  auto it = m_registry.find(name.str());
4685  if (it==m_registry.end()) return 0;
4686  return it->second(parser,parent,line,data);
4687  }

引用了 m_registry , 以及 QCString::str().

被这些函数引用 TemplateParser::parse().

◆ instance()

static TemplateNodeFactory& TemplateNodeFactory::instance ( )
inlinestatic

在文件 template.cpp4671 行定义.

4672  {
4673  static std::unique_ptr<TemplateNodeFactory> instance;
4674  if (instance==0) instance = std::make_unique<TemplateNodeFactory>();
4675  return *instance;
4676  }

被这些函数引用 TemplateNodeFactory::AutoRegister< T >::AutoRegister() , 以及 TemplateParser::parse().

◆ registerTemplateNode()

void TemplateNodeFactory::registerTemplateNode ( const QCString name,
CreateFunc  func 
)
inline

在文件 template.cpp4689 行定义.

4690  {
4691  m_registry.insert(std::make_pair(name.str(),func));
4692  }

引用了 m_registry , 以及 QCString::str().

被这些函数引用 TemplateNodeFactory::AutoRegister< T >::AutoRegister().

类成员变量说明

◆ m_registry

std::unordered_map<std::string,CreateFunc> TemplateNodeFactory::m_registry
private

在文件 template.cpp4705 行定义.

被这些函数引用 create() , 以及 registerTemplateNode().


该类的文档由以下文件生成:
Rtf_Style_Default::name
const char * name
Definition: rtfstyle.h:40
TemplateNodeFactory::instance
static TemplateNodeFactory & instance()
Definition: template.cpp:4671
TemplateNodeFactory::m_registry
std::unordered_map< std::string, CreateFunc > m_registry
Definition: template.cpp:4705