#ifndef _StdObject_Location_HeaderFile
#define _StdObject_Location_HeaderFile
-#include <StdObjMgt_ContentTypes.hxx>
+#include <StdObjMgt_ReadData.hxx>
+#include <StdObjMgt_WriteData.hxx>
+#include <StdObjMgt_Persistent.hxx>
+#include <StdObjMgt_TransientPersistentMap.hxx>
#include <TopLoc_Location.hxx>
-
-class StdObject_Location : private StdObjMgt_ContentTypes
+class StdObject_Location
{
public:
- //! Read persistent data from a file.
- inline void Read (StdObjMgt_ReadData& theReadData)
- { theReadData >> myData; }
+
+ //! Gets persistent child objects
+ Standard_EXPORT void PChildren(StdObjMgt_Persistent::SequenceOfPersistent& theChildren) const;
//! Import transient object from the persistent data.
TopLoc_Location Import() const;
+ //! Creates a persistent wrapper object for a location
+ Standard_EXPORT static StdObject_Location Translate (const TopLoc_Location& theLoc,
+ StdObjMgt_TransientPersistentMap& theMap);
+
private:
- Reference<> myData;
+ Handle(StdObjMgt_Persistent) myData;
+
+ friend StdObjMgt_ReadData& operator >>
+ (StdObjMgt_ReadData&, StdObject_Location&);
+ friend StdObjMgt_WriteData& operator <<
+ (StdObjMgt_WriteData&, const StdObject_Location&);
};
+//! Read persistent data from a file.
+inline StdObjMgt_ReadData& operator >>
+ (StdObjMgt_ReadData& theReadData, StdObject_Location& theLocation)
+{
+ StdObjMgt_ReadData::ObjectSentry aSentry (theReadData);
+ return theReadData >> theLocation.myData;
+}
+
+//! Write persistent data to a file.
+inline StdObjMgt_WriteData& operator <<
+ (StdObjMgt_WriteData& theWriteData, const StdObject_Location& theLocation)
+{
+ StdObjMgt_WriteData::ObjectSentry aSentry (theWriteData);
+ return theWriteData << theLocation.myData;
+}
+
#endif