Doxygen
TemplateNodeEncoding类 参考

Class representing the 'encoding' tag in a template 更多...

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

Public 成员函数

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

Private 属性

ExprAstPtr m_encExpr
 
TemplateNodeList m_nodes
 

额外继承的成员函数

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

详细描述

Class representing the 'encoding' tag in a template

在文件 template.cpp4615 行定义.

构造及析构函数说明

◆ TemplateNodeEncoding()

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

在文件 template.cpp4618 行定义.

4620  {
4621  TRACE(("{TemplateNodeEncoding(%s)\n",qPrint(data)));
4622  ExpressionParser ep(parser,line);
4623  if (data.isEmpty())
4624  {
4625  parser->warn(m_templateName,line,"encoding tag is missing encoding argument");
4626  m_encExpr.reset();
4627  }
4628  else
4629  {
4630  m_encExpr = ep.parse(data);
4631  }
4632  StringVector stopAt = { "endencoding" };
4633  parser->parse(this,line,stopAt,m_nodes);
4634  parser->removeNextToken(); // skip over endencoding
4635  TRACE(("}TemplateNodeEncoding(%s)\n",qPrint(data)));
4636  }

引用了 QCString::isEmpty(), m_encExpr, m_nodes, TemplateNodeCreator< TemplateNodeEncoding >::m_templateName, TemplateParser::parse(), ExpressionParser::parse(), qPrint(), TemplateParser::removeNextToken(), TRACE , 以及 TemplateParser::warn().

成员函数说明

◆ render()

void TemplateNodeEncoding::render ( TextStream ts,
TemplateContext c 
)
inlinevirtual

实现了 TemplateNode.

在文件 template.cpp4637 行定义.

4638  {
4639  TemplateContextImpl *ci = dynamic_cast<TemplateContextImpl*>(c);
4640  if (ci==0) return; // should not happen
4642  QCString encStr;
4643  if (m_encExpr)
4644  {
4645  encStr = m_encExpr->resolve(c).toString();
4646  }
4647  QCString oldEncStr = ci->encoding();
4648  if (!encStr.isEmpty())
4649  {
4650  ci->setEncoding(m_templateName,m_line,encStr);
4651  }
4652  m_nodes.render(ts,c);
4653  ci->setEncoding(m_templateName,m_line,oldEncStr);
4654  }

引用了 TemplateContextImpl::encoding(), QCString::isEmpty(), m_encExpr, TemplateNodeCreator< TemplateNodeEncoding >::m_line, m_nodes, TemplateNodeCreator< TemplateNodeEncoding >::m_templateName, TemplateNodeList::render(), TemplateContextImpl::setEncoding() , 以及 TemplateContextImpl::setLocation().

类成员变量说明

◆ m_encExpr

ExprAstPtr TemplateNodeEncoding::m_encExpr
private

在文件 template.cpp4656 行定义.

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

◆ m_nodes

TemplateNodeList TemplateNodeEncoding::m_nodes
private

在文件 template.cpp4657 行定义.

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


该类的文档由以下文件生成:
TemplateContextImpl::encoding
QCString encoding() const
Definition: template.cpp:698
StringVector
std::vector< std::string > StringVector
Definition: containers.h:32
TemplateContextImpl::setEncoding
void setEncoding(const QCString &file, int line, const QCString &enc)
Definition: template.cpp:2589
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< TemplateNodeEncoding >
ExpressionParser
Recursive decent parser for Django style template expressions.
Definition: template.cpp:2010
TemplateParser::removeNextToken
void removeNextToken()
Definition: template.cpp:5153
TemplateParser::warn
void warn(const QCString &fileName, int line, const char *fmt,...) const
Definition: template.cpp:5163
TRACE
#define TRACE(x)
Definition: template.cpp:40
TemplateNodeList::render
void render(TextStream &ts, TemplateContext *c)
Definition: template.cpp:1971
TemplateNodeCreator< TemplateNodeEncoding >::m_templateName
QCString m_templateName
Definition: template.cpp:3095
TemplateNode::parent
TemplateNode * parent()
Definition: template.cpp:1941
TemplateNodeEncoding::m_encExpr
ExprAstPtr m_encExpr
Definition: template.cpp:4656
TemplateParser::parse
void parse(TemplateNode *parent, int line, const StringVector &stopAt, TemplateNodeList &nodes)
Definition: template.cpp:5057
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< TemplateNodeEncoding >::m_line
int m_line
Definition: template.cpp:3096
TemplateNodeEncoding::m_nodes
TemplateNodeList m_nodes
Definition: template.cpp:4657
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108