0028564: Support of applications using old persistence (ShapeSchema)
[occt.git] / src / ShapePersistent / ShapePersistent_HSequence.hxx
index 87d5dd6..c22c1ed 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef _ShapePersistent_HSequence_HeaderFile
 #define _ShapePersistent_HSequence_HeaderFile
 
+#include <Standard_NotImplemented.hxx>
+
 #include <StdObjMgt_Persistent.hxx>
 #include <StdObject_gp_Vectors.hxx>
 
@@ -36,6 +38,23 @@ class ShapePersistent_HSequence
     //! Read persistent data from a file.
     Standard_EXPORT virtual void Read (StdObjMgt_ReadData& theReadData);
 
+    //! Write persistent data to a file.
+    Standard_EXPORT virtual void Write (StdObjMgt_WriteData& theWriteData) const;
+
+    //! Gets persistent objects
+    Standard_EXPORT virtual void PChildren (SequenceOfPersistent& theChildren) const
+    {
+      theChildren.Append(this->myPreviuos);
+      theChildren.Append(this->myNext);
+    }
+
+    //! Returns persistent type name
+    Standard_EXPORT virtual Standard_CString PName() const
+    {
+      Standard_NotImplemented::Raise("ShapePersistent_HSequence::node::PName - not implemented");
+      return "";
+    }
+
     const Handle(node)& Previuos() const  { return myPreviuos; } 
     const Handle(node)& Next()     const  { return myNext; } 
     const ItemType&     Item()     const  { return myItem; }
@@ -56,6 +75,23 @@ class ShapePersistent_HSequence
     //! Read persistent data from a file.
     Standard_EXPORT virtual void Read (StdObjMgt_ReadData& theReadData);
 
+    //! Write persistent data to a file.
+    Standard_EXPORT virtual void Write (StdObjMgt_WriteData& theWriteData) const;
+
+    //! Gets persistent objects
+    Standard_EXPORT virtual void PChildren(SequenceOfPersistent& theChildren) const
+    {
+      theChildren.Append(this->myFirst);
+      theChildren.Append(this->myLast);
+    }
+
+    //! Returns persistent type name
+    Standard_EXPORT virtual Standard_CString PName() const
+    {
+      Standard_NotImplemented::Raise("ShapePersistent_HSequence::instance::PName - not implemented");
+      return "";
+    }
+
     //! Import transient object from the persistent data.
     Standard_EXPORT Handle(SequenceClass) Import() const;
 
@@ -72,4 +108,48 @@ public:
   typedef instance<TColgp_HSequenceOfVec> Vec;
 };
 
+//=======================================================================
+// XYZ 
+//=======================================================================
+template<>
+Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfXYZ>
+  ::PName() const;
+
+template<>
+Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfXYZ>
+  ::PName() const;
+
+//=======================================================================
+// Pnt 
+//=======================================================================
+template<>
+Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfPnt>
+  ::PName() const;
+
+template<>
+Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfPnt>
+  ::PName() const;
+
+//=======================================================================
+// Dir 
+//=======================================================================
+template<>
+Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfDir>
+  ::PName() const;
+
+template<>
+Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfDir>
+  ::PName() const;
+
+//=======================================================================
+// Vec 
+//=======================================================================
+template<>
+Standard_CString ShapePersistent_HSequence::instance<TColgp_HSequenceOfVec>
+  ::PName() const;
+
+template<>
+Standard_CString ShapePersistent_HSequence::node<TColgp_HSequenceOfVec>
+  ::PName() const;
+
 #endif