MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
xmlEvolvedFileWriter.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2014 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
7 #pragma once
8 
10 
12 #include <mtl/xmlFedTags.h>
13 #include <mtl/fedReader.h>
14 #include <libxml/xmlwriter.h>
15 
16 
17 struct DtOMTTreePOC;
18 class DtOMTTree;
19 class DtOMTNode;
21 class DtEnumerationNode;
22 class DtAttributeFedNode;
23 class DtParameterFedNode;
28 class DtDimensionNode;
29 class DtTimeRepNode;
30 class DtTagNode;
31 class DtSynchroNode;
32 class DtDescriptionNode;
33 class DtBoolAttrNode;
34 class DtUpdateRateNode;
38 class DtEnumerationNode;
44 class DtNoteNode;
45 struct DtOMTTreeReference;
46 
48 {
49 
50 public:
51 
53 
55  virtual ~DtXMLEvolvedFileWriter();
56 
57  //Use the omtTree to write out a DtString
58  DtString writeString();
59 
60  //output to a file
61  void writeFile(const char* fileName);
62 
63 protected:
64 
65  //Functions to write out specific portions
66  //of the fed file
67  void writeAllXMLInformation();
68 
69  void writeVersionInformation();
70  void writeModelIdentification();
71  void writeName(const DtString & name);
72  void writeVersionNo(const DtString & version);
73  void writeType(const DtString & type);
74  void writePurpose(const DtString & purpose);
75  void writeApplicationDomain(const DtString & AppDomain);
76  void writeSponsorOrgName(xmlAttrPtr& ptr, DtOMTTree*);
77  void writeModificationDate(const DtString & date);
78  void writeSecurityClassification(const DtString & SecInfo);
79  void writeReleaseRestriction(const DtString & Restriction);
80  void writeDescription(const DtString & Description);
81  void writeOther(xmlAttrPtr& ptr, DtOMTTree*);
82 
83  void writeUseLimitation(const DtString & limitation);
84  void writeUseHistory(const DtString & history);
85 
86  //write out point of contact information
87  void writePOCs();
88  void writePOC(const DtOMTTreePOC & poc);
89  void writePOCOrgName(const DtString & Org);
90  void writePOCType(const DtString & type);
91  void writePOCFirstName(const DtString & name);
92  void writePOCPhone(const DtString & phone);
93  void writePOCEmail(const DtString & email);
94  void writePOCLastName(const DtString & lastName);
95  void writePOCHonorificName(const DtString & honorificName);
96 
97  //write out reference information
98  void writeReference(const DtOMTTreeReference& ref);
99  void writeReferenceType(const DtString & RefType);
100  void writeReferenceIdentification(const DtString & RefId);
101 
102  //write out all <objects> + write <attribute>
103  void writeObjectClass(const DtObjectClassFedNode & obj);
104  void writeObjectAttribute(const DtAttributeFedNode & attr);
105 
106  //write out all <interactions> + write <parameter>
107  void writeInteractionClass(const DtInteractionClassFedNode & inter);
108  void writeInteractionParameter(const DtParameterFedNode & param);
109 
110  //write <dimensions>
111  void writeDimensions();
112  void writeDimension(const DtDimensionNode & dim);
113 
114 
115  //write out <time>
116  void writeTime(const DtTimeRepNode & time);
117 
118  //write <tags>
119  void writeTags();
120  void writeTag(const DtTagNode & tag);
121 
122  //write <synchronizations>
123  void writeSynchronizations();
124  void writeSynchronizationPoint(const DtSynchroNode & syncro);
125 
126  //write <transportations>
127  void writeTransportations();
128  void writeTransportation(const DtDescriptionNode & trans);
129 
130  //write <switches>
131  void writeSwitches();
132  void writeSwitch(const DtBoolAttrNode & swtch);
133 
134  void writeUpdateRates();
135  void writeUpdateRate(const DtUpdateRateNode & update);
136 
137  //write all datatypes
138  void writeDataTypes();
139 
140  //write specific datatypes
141  void writeBasicDataType(const DtBasicDataRepresentationNode & node);
142  void writeSimpleDataType(const DtSimpleDatatypeNode & node);
143  void writeEnumeratedDataType(const DtEnumeratedDatatypeNode & node);
144  void writeEnumerator(const DtEnumerationNode & node);
145  void writeArrayDataType(const DtArrayDatatypeNode & node);
146  void writeFixedRecordDataType(const DtFixedDatatypeNode & node);
147  void writeFixedRecordFields(const DtFieldComponentNode & node);
148  void writeVariantRecordDataType(const DtVariantDatatypeNode & node);
149  void writeVariantAlternative(const DtAlternativeComponentNode & node);
150 
151  //write notes
152  void writeNotes();
153  void writeNote(const DtNoteNode & node);
154  void writeEmbeddedNote(const DtOMTNode& note);
155 
156  //Lots of elements only have one text item
157  //Helper function to write out an element with one text item
158  void writeElementWithText(const DtString & elementName, const DtString & text);
159 
160 protected:
161 
163  xmlTextWriterPtr myWriter;
164 };
165 
166 
167 

Document ID: Generated on Tue Aug 1 09:00:26 EDT 2017 from SVN revision 179128
Copyright © 2017 VT MÄK. All Rights Reserved (www.mak.com)