LILAC
Language to language Interop LAyer Compiler
Loading...
Searching...
No Matches
lilac::shared::AssemblyVisitor< TContext > Class Template Referenceabstract

An interface visitor for a whole assembly. More...

#include <interfacevisitor.h>

Inheritance diagram for lilac::shared::AssemblyVisitor< TContext >:
Collaboration diagram for lilac::shared::AssemblyVisitor< TContext >:

Public Member Functions

std::string GetName () const final
 Gets the name of this interface visitor.
 
void Begin (TContext &ctx, const frxml::dom &parent, const frxml::dom &current, int depth) override=0
 
void End (TContext &ctx, const frxml::dom &parent, const frxml::dom &current, int depth) override=0
 
- Public Member Functions inherited from lilac::shared::InterfaceVisitor< TContext >
virtual ~InterfaceVisitor ()=default
 

Detailed Description

template<typename TContext>
class lilac::shared::AssemblyVisitor< TContext >

An interface visitor for a whole assembly.

To traverse whole assembly, Implement visitor derived from lilac::shared::AssemblyVisitor with your context object. Use lilac::shared::GenericInterfaceVisitor to traverse XML elements tagged as ‘assembly’ is not intended usage of lilac::shared::GenericInterfaceVisitor. Do NOT use lilac::shared::GenericInterfaceVisitor to traverse assembly element.

Template Parameters
TContextType of context object

Definition at line 134 of file interfacevisitor.h.

Member Function Documentation

◆ Begin()

template<typename TContext >
void lilac::shared::AssemblyVisitor< TContext >::Begin ( TContext & ctx,
const frxml::dom & parent,
const frxml::dom & current,
int depth )
overridepure virtual
Parameters
ctxContext object for interface visitors
parentParent DOM object
currentCurrent DOM object
depthDepth of current DOM object

Implements lilac::shared::InterfaceVisitor< TContext >.

◆ End()

template<typename TContext >
void lilac::shared::AssemblyVisitor< TContext >::End ( TContext & ctx,
const frxml::dom & parent,
const frxml::dom & current,
int depth )
overridepure virtual
Parameters
ctxContext object for interface visitors
parentParent DOM object
currentCurrent DOM object
depthDepth of current DOM object

Implements lilac::shared::InterfaceVisitor< TContext >.

◆ GetName()

template<typename TContext >
std::string lilac::shared::AssemblyVisitor< TContext >::GetName ( ) const
inlinenodiscardfinalvirtual

Gets the name of this interface visitor.

To traverse interface graph and matching proper visitor for XML tag, Interface visitors should have key corresponding to XML tag.

Interface visitor is reserved for special purpose if its name starts with ‘__’.

Returns
Name of this interface visitor

Implements lilac::shared::InterfaceVisitor< TContext >.

Definition at line 138 of file interfacevisitor.h.


The documentation for this class was generated from the following file: