Doxygen
TemplateNodeResource类 参考

Class representing an 'markers' tag in a template 更多...

+ 类 TemplateNodeResource 继承关系图:
+ TemplateNodeResource 的协作图:

Public 成员函数

 TemplateNodeResource (TemplateParser *parser, TemplateNode *parent, int line, const QCString &data)
 
void render (TextStream &, TemplateContext *c)
 
- Public 成员函数 继承自 TemplateNodeCreator< TemplateNodeResource >
 TemplateNodeCreator (TemplateParser *parser, TemplateNode *parent, int line)
 
TemplateImplgetTemplate ()
 
- Public 成员函数 继承自 TemplateNode
 TemplateNode (TemplateNode *parent)
 
virtual ~TemplateNode ()
 
TemplateNodeparent ()
 

Private 属性

ExprAstPtr m_resExpr
 
ExprAstPtr m_asExpr
 
bool m_append = false
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 TemplateNodeCreator< TemplateNodeResource >
static TemplateNodePtr createInstance (TemplateParser *parser, TemplateNode *parent, int line, const QCString &data)
 
- Protected 成员函数 继承自 TemplateNodeCreator< TemplateNodeResource >
void mkpath (const TemplateContextImpl *ci, const std::string &fileName)
 
- Protected 属性 继承自 TemplateNodeCreator< TemplateNodeResource >
QCString m_templateName
 
int m_line
 

详细描述

Class representing an 'markers' tag in a template

在文件 template.cpp4538 行定义.

构造及析构函数说明

◆ TemplateNodeResource()

TemplateNodeResource::TemplateNodeResource ( TemplateParser parser,
TemplateNode parent,
int  line,
const QCString data 
)
inline

在文件 template.cpp4541 行定义.

4543  {
4544  TRACE(("{TemplateNodeResource(%s)\n",qPrint(data)));
4545  ExpressionParser ep(parser,line);
4546  int i;
4547  if (data.isEmpty())
4548  {
4549  parser->warn(m_templateName,line,"resource tag is missing resource file argument");
4550  m_resExpr.reset();
4551  m_asExpr.reset();
4552  }
4553  else if ((i=data.find(" as "))!=-1) // resource a as b
4554  {
4555  m_resExpr = ep.parse(data.left(i)); // part before as
4556  m_asExpr = ep.parse(data.mid(i+4)); // part after as
4557  }
4558  else if ((i=data.find(" append "))!=-1) // resource a appends to b
4559  {
4560  m_resExpr = ep.parse(data.left(i)); // part before append
4561  m_asExpr = ep.parse(data.mid(i+8)); // part after append
4562  m_append = true;
4563  }
4564  else // resource a
4565  {
4566  m_resExpr = ep.parse(data);
4567  m_asExpr.reset();
4568  }
4569  TRACE(("}TemplateNodeResource(%s)\n",qPrint(data)));
4570  }

引用了 QCString::find(), QCString::isEmpty(), QCString::left(), m_append, m_asExpr, m_resExpr, TemplateNodeCreator< TemplateNodeResource >::m_templateName, QCString::mid(), ExpressionParser::parse(), qPrint(), TRACE , 以及 TemplateParser::warn().

成员函数说明

◆ render()

void TemplateNodeResource::render ( TextStream ,
TemplateContext c 
)
inlinevirtual

实现了 TemplateNode.

在文件 template.cpp4571 行定义.

4572  {
4573  TemplateContextImpl *ci = dynamic_cast<TemplateContextImpl*>(c);
4574  if (ci==0) return; // should not happen
4576  if (m_resExpr)
4577  {
4578  QCString resourceFile = m_resExpr->resolve(c).toString();
4579  if (resourceFile.isEmpty())
4580  {
4581  ci->warn(m_templateName,m_line,"invalid parameter for resource command\n");
4582  }
4583  else
4584  {
4585  QCString outputDirectory = ci->outputDirectory();
4586  if (m_asExpr)
4587  {
4588  QCString targetFile = m_asExpr->resolve(c).toString();
4589  mkpath(ci,targetFile.str());
4590  if (targetFile.isEmpty())
4591  {
4592  ci->warn(m_templateName,m_line,"invalid parameter at right side of '%s' for resource command\n", m_append ? "append" : "as");
4593  }
4594  else
4595  {
4596  ResourceMgr::instance().copyResourceAs(resourceFile,outputDirectory,targetFile,m_append);
4597  }
4598  }
4599  else
4600  {
4601  ResourceMgr::instance().copyResource(resourceFile,outputDirectory);
4602  }
4603  }
4604  }
4605  }

引用了 ResourceMgr::copyResource(), ResourceMgr::copyResourceAs(), ResourceMgr::instance(), QCString::isEmpty(), m_append, m_asExpr, TemplateNodeCreator< TemplateNodeResource >::m_line, m_resExpr, TemplateNodeCreator< TemplateNodeResource >::m_templateName, TemplateNodeCreator< TemplateNodeResource >::mkpath(), TemplateContextImpl::outputDirectory(), TemplateContextImpl::setLocation(), QCString::str() , 以及 TemplateContextImpl::warn().

类成员变量说明

◆ m_append

bool TemplateNodeResource::m_append = false
private

在文件 template.cpp4609 行定义.

被这些函数引用 render() , 以及 TemplateNodeResource().

◆ m_asExpr

ExprAstPtr TemplateNodeResource::m_asExpr
private

在文件 template.cpp4608 行定义.

被这些函数引用 render() , 以及 TemplateNodeResource().

◆ m_resExpr

ExprAstPtr TemplateNodeResource::m_resExpr
private

在文件 template.cpp4607 行定义.

被这些函数引用 render() , 以及 TemplateNodeResource().


该类的文档由以下文件生成:
ResourceMgr::copyResource
bool copyResource(const QCString &name, const QCString &targetDir) const
Copies a registered resource to a given target directory
Definition: resourcemgr.cpp:180
TemplateContextImpl::warn
void warn(const QCString &fileName, int line, const char *fmt,...) const
Definition: template.cpp:2773
ResourceMgr::copyResourceAs
bool copyResourceAs(const QCString &name, const QCString &targetDir, const QCString &targetName, bool append=false) const
Copies a registered resource to a given target directory under a given target name
Definition: resourcemgr.cpp:79
ResourceMgr::instance
static ResourceMgr & instance()
Returns the one and only instance of this class
Definition: resourcemgr.cpp:32
TemplateNodeResource::m_resExpr
ExprAstPtr m_resExpr
Definition: template.cpp:4607
TemplateNodeCreator< TemplateNodeResource >::mkpath
void mkpath(const TemplateContextImpl *ci, const std::string &fileName)
Definition: template.cpp:3061
TemplateContextImpl::setLocation
void setLocation(const QCString &templateName, int line)
Definition: template.cpp:682
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
TemplateNodeCreator< TemplateNodeResource >
QCString::str
std::string str() const
Definition: qcstring.h:442
QCString::find
int find(char c, int index=0, bool cs=TRUE) const
Definition: qcstring.cpp:38
ExpressionParser
Recursive decent parser for Django style template expressions.
Definition: template.cpp:2010
TemplateParser::warn
void warn(const QCString &fileName, int line, const char *fmt,...) const
Definition: template.cpp:5163
QCString::left
QCString left(size_t len) const
Definition: qcstring.h:212
TRACE
#define TRACE(x)
Definition: template.cpp:40
TemplateNodeResource::m_append
bool m_append
Definition: template.cpp:4609
TemplateContextImpl::outputDirectory
QCString outputDirectory() const
Definition: template.cpp:686
TemplateNodeResource::m_asExpr
ExprAstPtr m_asExpr
Definition: template.cpp:4608
TemplateNodeCreator< TemplateNodeResource >::m_templateName
QCString m_templateName
Definition: template.cpp:3095
TemplateNode::parent
TemplateNode * parent()
Definition: template.cpp:1941
QCString::mid
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition: qcstring.h:224
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
TemplateContextImpl
Internal class representing the implementation of a template context
Definition: template.cpp:640
TemplateNodeCreator< TemplateNodeResource >::m_line
int m_line
Definition: template.cpp:3096
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108