]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/HLAPropertyDataElement.hxx
Fix one more crash on Windows in HTTPRepository
[simgear.git] / simgear / hla / HLAPropertyDataElement.hxx
index 076d85ba5ce5e5c0aad1c39e365583bbc8dc297f..da21b2ab5c7176a59eba1500ff8a191aaecf67b0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2009 - 2010  Mathias Froehlich - Mathias.Froehlich@web.de
+// Copyright (C) 2009 - 2011  Mathias Froehlich - Mathias.Froehlich@web.de
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Library General Public
@@ -31,6 +31,9 @@ public:
     HLAPropertyDataElement(const HLADataType* dataType);
     virtual ~HLAPropertyDataElement();
 
+    virtual void accept(HLADataElementVisitor& visitor);
+    virtual void accept(HLAConstDataElementVisitor& visitor) const;
+
     virtual bool encode(HLAEncodeStream& stream) const;
     virtual bool decode(HLADecodeStream& stream);
 
@@ -42,10 +45,19 @@ public:
     const SGPropertyNode* getPropertyNode() const;
     
 private:
-    class DecodeVisitor;
-    class EncodeVisitor;
+    HLADataElement*
+    createDataElement(const SGSharedPtr<const HLADataType>& dataType, const SGSharedPtr<SGPropertyNode>& propertyNode);
+    
+    class ScalarDecodeVisitor;
+    class ScalarEncodeVisitor;
+    class ScalarDataElement;
+    class StringDecodeVisitor;
+    class StringEncodeVisitor;
+    class StringDataElement;
+    class DataElementFactoryVisitor;
 
     SGSharedPtr<const HLADataType> _dataType;
+    SGSharedPtr<HLADataElement> _dataElement;
     SGSharedPtr<SGPropertyNode> _propertyNode;
 };