VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
xmlEvolvedFileWriter.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *******************************************************************************/
7 #pragma once
8 
9 #include <omtReader/omtReader.h>
10 
12 #include <mtl/xmlFedTags.h>
13 #include <mtl/fedReader.h>
14 #include <libxml/xmlwriter.h>
15 
16 #ifdef DtUSE_UTILITIES_NAMESPACE
17 namespace DtUSE_UTILITIES_NAMESPACE
18 {
19 #endif
20 
21 struct DtOMTTreePOC;
22 class DtOMTTree;
23 class DtOMTNode;
25 class DtEnumerationNode;
26 class DtAttributeFedNode;
27 class DtParameterFedNode;
32 class DtDimensionNode;
33 class DtTimeRepNode;
34 class DtTagNode;
35 class DtSynchroNode;
36 class DtDescriptionNode;
37 class DtBoolAttrNode;
38 class DtUpdateRateNode;
42 class DtEnumerationNode;
48 class DtNoteNode;
49 struct DtOMTTreeReference;
50 
52 {
53 
54 public:
55 
57 
59  virtual ~DtXMLEvolvedFileWriter();
60 
61  //Use the omtTree to write out a DtString
62  DtString writeString();
63 
64  //output to a file
65  void writeFile(const char* fileName);
66 
67 protected:
68 
69  //Functions to write out specific portions
70  //of the fed file
71  void writeAllXMLInformation();
72 
73  void writeVersionInformation();
74  void writeModelIdentification();
75  void writeName(const DtString & name);
76  void writeVersionNo(const DtString & version);
77  void writeType(const DtString & type);
78  void writePurpose(const DtString & purpose);
79  void writeApplicationDomain(const DtString & AppDomain);
80  void writeSponsorOrgName(xmlAttrPtr& ptr, DtOMTTree*);
81  void writeModificationDate(const DtString & date);
82  void writeSecurityClassification(const DtString & SecInfo);
83  void writeReleaseRestriction(const DtString & Restriction);
84  void writeDescription(const DtString & Description);
85  void writeOther(xmlAttrPtr& ptr, DtOMTTree*);
86 
87  void writeUseLimitation(const DtString & limitation);
88  void writeUseHistory(const DtString & history);
89 
90  //write out point of contact information
91  void writePOCs();
92  void writePOC(const DtOMTTreePOC & poc);
93  void writePOCOrgName(const DtString & Org);
94  void writePOCType(const DtString & type);
95  void writePOCFirstName(const DtString & name);
96  void writePOCPhone(const DtString & phone);
97  void writePOCEmail(const DtString & email);
98  void writePOCLastName(const DtString & lastName);
99  void writePOCHonorificName(const DtString & honorificName);
100 
101  //write out reference information
102  void writeReference(const DtOMTTreeReference& ref);
103  void writeReferenceType(const DtString & RefType);
104  void writeReferenceIdentification(const DtString & RefId);
105 
106  //write out all <objects> + write <attribute>
107  void writeObjectClass(const DtObjectClassFedNode & obj);
108  void writeObjectAttribute(const DtAttributeFedNode & attr);
109 
110  //write out all <interactions> + write <parameter>
111  void writeInteractionClass(const DtInteractionClassFedNode & inter);
112  void writeInteractionParameter(const DtParameterFedNode & param);
113 
114  //write <dimensions>
115  void writeDimensions();
116  void writeDimension(const DtDimensionNode & dim);
117 
118 
119  //write out <time>
120  void writeTime(const DtTimeRepNode & time);
121 
122  //write <tags>
123  void writeTags();
124  void writeTag(const DtTagNode & tag);
125 
126  //write <synchronizations>
127  void writeSynchronizations();
128  void writeSynchronizationPoint(const DtSynchroNode & syncro);
129 
130  //write <transportations>
131  void writeTransportations();
132  void writeTransportation(const DtDescriptionNode & trans);
133 
134  //write <switches>
135  void writeSwitches();
136  void writeSwitch(const DtBoolAttrNode & swtch);
137 
138  void writeUpdateRates();
139  void writeUpdateRate(const DtUpdateRateNode & update);
140 
141  //write all datatypes
142  void writeDataTypes();
143 
144  //write specific datatypes
145  void writeBasicDataType(const DtBasicDataRepresentationNode & node);
146  void writeSimpleDataType(const DtSimpleDatatypeNode & node);
147  void writeEnumeratedDataType(const DtEnumeratedDatatypeNode & node);
148  void writeEnumerator(const DtEnumerationNode & node);
149  void writeArrayDataType(const DtArrayDatatypeNode & node);
150  void writeFixedRecordDataType(const DtFixedDatatypeNode & node);
151  void writeFixedRecordFields(const DtFieldComponentNode & node);
152  void writeVariantRecordDataType(const DtVariantDatatypeNode & node);
153  void writeVariantAlternative(const DtAlternativeComponentNode & node);
154 
155  //write notes
156  void writeNotes();
157  void writeNote(const DtNoteNode & node);
158  void writeEmbeddedNote(const DtOMTNode& note);
159 
160  //Lots of elements only have one text item
161  //Helper function to write out an element with one text item
162  void writeElementWithText(const DtString & elementName, const DtString & text);
163 
164 protected:
165 
167  xmlTextWriterPtr myWriter;
168 };
169 
170 #ifdef DtUSE_UTILITIES_NAMESPACE
171 } // end of namespace DtUSE_UTILITIES_NAMESPACE
172 #endif
Definition: dimensionNode.h:18
Represents an attribute inside a object class.
Definition: attributeFedNode.h:33
Definition: omtTree.h:54
Definition: tagNode.h:18
Definition: timeRepNode.h:17
Definition: enumeratedDatatypeNode.h:25
Definition: synchroNode.h:17
Definition: descriptionNode.h:18
This file declares DtFedReader and several helper classes.
Contains defines for export control for OMT Reader.
Definition: omtTree.h:43
#define DT_DLL_OMTREADER
Definition: omtReader.h:27
static const xmlChar * poc
Definition: xmlFedTags.h:232
Definition: basicDataRepresentationNode.h:22
Definition: updateRateNode.h:18
defines an object class inside our Fed Tree
Definition: interactionClassFedNode.h:31
represents a node in an OMT tree.
Definition: omtNode.h:20
Definition: fieldComponentNode.h:18
Definition: complexComponentNode.h:21
defines an object class inside our Fed Tree
Definition: objectClassFedNode.h:36
This is a generic switch with an enabled disabled category.
Definition: boolAttrNode.h:21
Definition: arrayDatatypeNode.h:19
A tree using the an OMT File information.
Definition: omtTree.h:64
Definition: xmlEvolvedFileWriter.h:51
This file declares constants for XML Fed File Parsing.
Definition: variantDatatypeNode.h:20
Instances of DtString are used to represent strings.
Definition: vlString.h:36
Definition: fixedDatatypeNode.h:23
Definition: enumerationNode.h:17
DtOMTTree * myOmtTree
Definition: xmlEvolvedFileWriter.h:166
Definition: alternativeComponentNode.h:19
Definition: simpleDatatypeNode.h:18
Definition: noteNode.h:17
xmlTextWriterPtr myWriter
Definition: xmlEvolvedFileWriter.h:167
Represents an parameter inside a object class.
Definition: parameterFedNode.h:33

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)