ADTF  3.18.2
ddlvisitor_intf.h
Go to the documentation of this file.
1 
7 #ifndef _DDL_VISITOR_H_INCLUDED_
8 #define _DDL_VISITOR_H_INCLUDED_
9 
10 namespace adtf_ddl
11 {
12  class cDDLHeader;
13  class cDDLDataType;
14  class cDDLComplex;
15  class cDDLStream;
16  class cDDLUnit;
17  class cDDLBaseunit;
18  class cDDLExtDeclaration;
19  class cDDLElement;
20  class cDDLDescription;
21  class cDDLPrefix;
22  class cDDLRefUnit;
23  class cDDLStreamStruct;
24  class cDDLEnum;
25  class cDDLStreamMetaType;
26  class cDDLProperty;
27 
32  {
33  public:
37  virtual ~IDDLVisitor(){}
38 
46  virtual tResult VisitDDL(cDDLDescription* poDescription) = 0;
53  virtual tResult Visit(cDDLHeader* poHeader) = 0;
61  virtual tResult Visit(cDDLDataType* poDataType) = 0;
68  virtual tResult Visit(cDDLComplex* poStruct) = 0;
75  virtual tResult Visit(cDDLStream* poStream) = 0;
82  virtual tResult Visit(cDDLUnit* poUnit) = 0;
89  virtual tResult Visit(cDDLBaseunit* poBaseunit) = 0;
96  virtual tResult Visit(cDDLExtDeclaration* poExtDeclaration) = 0;
103  virtual tResult Visit(cDDLElement* poElement) = 0;
110  virtual tResult Visit(cDDLPrefix* poPrefix) = 0;
117  virtual tResult Visit(cDDLRefUnit* poRefUnit) = 0;
124  virtual tResult Visit(cDDLStreamStruct* poStreamStruct) = 0;
125 
132  virtual tResult Visit(cDDLEnum* poEnum) = 0;
133 
140  virtual tResult Visit(cDDLStreamMetaType* poStreamMetaType) = 0;
141 
148  virtual tResult Visit(cDDLProperty* poProperty) = 0;
149  };
150 
151 } // namespace adtf_ddl
152 
153 #endif // _DDL_VISITOR_H_INCLUDED_
Abstract base class/interface for Visitor design-pattern.
virtual tResult Visit(cDDLStream *poStream)=0
Visitor for DDL stream objects.
virtual tResult Visit(cDDLExtDeclaration *poExtDeclaration)=0
Visitor for external DDL declaration objects.
virtual tResult VisitDDL(cDDLDescription *poDescription)=0
Visitor for a whole DDL description.
virtual tResult Visit(cDDLEnum *poEnum)=0
Visitor for DDL enum objects.
virtual tResult Visit(cDDLRefUnit *poRefUnit)=0
Visitor for DDL reference unit objects.
virtual tResult Visit(cDDLUnit *poUnit)=0
Visitor for DDL unit objects.
virtual tResult Visit(cDDLStreamMetaType *poStreamMetaType)=0
Visitor for DDL stream meta type objects.
virtual tResult Visit(cDDLComplex *poStruct)=0
Visitor for DDL struct objects.
virtual tResult Visit(cDDLHeader *poHeader)=0
Visitor for DDL header objects.
virtual ~IDDLVisitor()
DTOR.
virtual tResult Visit(cDDLPrefix *poPrefix)=0
Visitor for DDL prefix objects.
virtual tResult Visit(cDDLBaseunit *poBaseunit)=0
Visitor for DDL baseunit objects.
virtual tResult Visit(cDDLElement *poElement)=0
Visitor for DDL element objects.
virtual tResult Visit(cDDLProperty *poProperty)=0
Visitor for DDL property objects.
virtual tResult Visit(cDDLDataType *poDataType)=0
Visitor for DDL datatype objects.
virtual tResult Visit(cDDLStreamStruct *poStreamStruct)=0
Visitor for DDL streamstruct objects.
Representation of a base unit inside a DDL description.
Definition: ddlbaseunit.h:16
Representation for a complex datatype inside a DDL specification.
Definition: ddlcomplex.h:35
Representation for a (simple) data type inside a DDL description.
Definition: ddldatatype.h:19
Main class representing a whole DDL description.
Representation of an element inside a struct in DDL a description.
Definition: ddlelement.h:19
Representation for an enum inside a DDL description.
Definition: ddlenum.h:20
Representation of an external declaration inside the header of a DDL description.
Representation of the header of a DDL description.
Definition: ddlheader.h:28
Representation of a prefix in a DDL description.
Definition: ddlprefix.h:17
Representation of a stream inside a DDL description.
Definition: ddlproperty.h:16
Decorator class for IDDLUnit objects to be used inside other cDDLUnit objects.
Definition: ddlrefunit.h:18
Representation of a stream inside a DDL description.
Definition: ddlstream.h:28
Representation of a stream inside a DDL description.
Decorator class for cDDLComplex to be used inside cDDLStream objects.
Representation object of a unit.
Definition: ddlunit.h:28
Namespace for the mainpage_pkg_ddl.