X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fhla%2FHLAPropertyDataElement.hxx;h=da21b2ab5c7176a59eba1500ff8a191aaecf67b0;hb=610ec6fe68c04422789fbc5d07f1c776b048e39d;hp=076d85ba5ce5e5c0aad1c39e365583bbc8dc297f;hpb=92976b7735635e60843a688a86e75a5707f35b98;p=simgear.git diff --git a/simgear/hla/HLAPropertyDataElement.hxx b/simgear/hla/HLAPropertyDataElement.hxx index 076d85ba..da21b2ab 100644 --- a/simgear/hla/HLAPropertyDataElement.hxx +++ b/simgear/hla/HLAPropertyDataElement.hxx @@ -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& dataType, const SGSharedPtr& propertyNode); + + class ScalarDecodeVisitor; + class ScalarEncodeVisitor; + class ScalarDataElement; + class StringDecodeVisitor; + class StringEncodeVisitor; + class StringDataElement; + class DataElementFactoryVisitor; SGSharedPtr _dataType; + SGSharedPtr _dataElement; SGSharedPtr _propertyNode; };