mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
0030169: Application Framework - Document format version management improvement
This commit is contained in:
@@ -11,5 +11,7 @@ XmlObjMgt_GP.hxx
|
||||
XmlObjMgt_Persistent.cxx
|
||||
XmlObjMgt_Persistent.hxx
|
||||
XmlObjMgt_Persistent.lxx
|
||||
XmlObjMgt_RRelocationTable.cxx
|
||||
XmlObjMgt_RRelocationTable.hxx
|
||||
XmlObjMgt_SRelocationTable.cxx
|
||||
XmlObjMgt_SRelocationTable.hxx
|
||||
|
49
src/XmlObjMgt/XmlObjMgt_RRelocationTable.cxx
Normal file
49
src/XmlObjMgt/XmlObjMgt_RRelocationTable.cxx
Normal file
@@ -0,0 +1,49 @@
|
||||
// Created on: 2018-10-02
|
||||
// Created by: Sergey ZARITCHNY
|
||||
// Copyright (c) 2018 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <XmlObjMgt_RRelocationTable.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : GetHeaderData
|
||||
//purpose : getter for the file header data
|
||||
//=======================================================================
|
||||
|
||||
const Handle(Storage_HeaderData)& XmlObjMgt_RRelocationTable::GetHeaderData() const
|
||||
{
|
||||
return myHeaderData;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetHeaderData
|
||||
//purpose : setter for the file header data
|
||||
//=======================================================================
|
||||
|
||||
void XmlObjMgt_RRelocationTable::SetHeaderData(
|
||||
const Handle(Storage_HeaderData)& theHeaderData)
|
||||
{
|
||||
myHeaderData = theHeaderData;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Clear
|
||||
//purpose : The relocation table is cleared before/after reading in a document.
|
||||
// : In this case the reference to the file header data should also be
|
||||
// : cleared, because it is specific to the document.
|
||||
//=======================================================================
|
||||
void XmlObjMgt_RRelocationTable::Clear(const Standard_Boolean doReleaseMemory)
|
||||
{
|
||||
myHeaderData.Nullify();
|
||||
TColStd_DataMapOfIntegerTransient::Clear(doReleaseMemory);
|
||||
}
|
@@ -18,7 +18,36 @@
|
||||
|
||||
#include <TColStd_DataMapOfIntegerTransient.hxx>
|
||||
|
||||
typedef TColStd_DataMapOfIntegerTransient XmlObjMgt_RRelocationTable;
|
||||
#include <Storage_HeaderData.hxx>
|
||||
|
||||
//! Retrieval relocation table is modeled as a child class of
|
||||
//! TColStd_DataMapOfIntegerTransient that stores a handle to the file
|
||||
//! header section. With that attribute drivers have access to the file header
|
||||
//! section.
|
||||
class XmlObjMgt_RRelocationTable : public TColStd_DataMapOfIntegerTransient
|
||||
{
|
||||
public:
|
||||
|
||||
//! Returns a handle to the header data of the file that is begin read
|
||||
Standard_EXPORT const Handle(Storage_HeaderData)& GetHeaderData() const;
|
||||
|
||||
//! Sets the storage header data.
|
||||
//!
|
||||
//! @param theHeaderData header data of the file that is begin read
|
||||
Standard_EXPORT void SetHeaderData(
|
||||
const Handle(Storage_HeaderData)& theHeaderData);
|
||||
|
||||
Standard_EXPORT void Clear(const Standard_Boolean doReleaseMemory = Standard_True);
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Handle(Storage_HeaderData) myHeaderData;
|
||||
};
|
||||
|
||||
#endif // _XmlObjMgt_RRelocationTable_HeaderFile
|
||||
|
49
src/XmlObjMgt/XmlObjMgt_SRelocationTable.cxx
Normal file
49
src/XmlObjMgt/XmlObjMgt_SRelocationTable.cxx
Normal file
@@ -0,0 +1,49 @@
|
||||
// Created on: 2018-10-04
|
||||
// Created by: Sergey ZARITCHNY
|
||||
// Copyright (c) 2018 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <XmlObjMgt_SRelocationTable.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : GetHeaderData
|
||||
//purpose : getter for the file header data
|
||||
//=======================================================================
|
||||
|
||||
const Handle(Storage_HeaderData)& XmlObjMgt_SRelocationTable::GetHeaderData() const
|
||||
{
|
||||
return myHeaderData;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetHeaderData
|
||||
//purpose : setter for the file header data
|
||||
//=======================================================================
|
||||
|
||||
void XmlObjMgt_SRelocationTable::SetHeaderData(
|
||||
const Handle(Storage_HeaderData)& theHeaderData)
|
||||
{
|
||||
myHeaderData = theHeaderData;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Clear
|
||||
//purpose : The relocation table is cleared before/after reading in a document.
|
||||
// : In this case the reference to the file header data should also be
|
||||
// : cleared, because it is specific to the document.
|
||||
//=======================================================================
|
||||
void XmlObjMgt_SRelocationTable::Clear(const Standard_Boolean doReleaseMemory)
|
||||
{
|
||||
myHeaderData.Nullify();
|
||||
TColStd_IndexedMapOfTransient::Clear(doReleaseMemory);
|
||||
}
|
@@ -15,10 +15,37 @@
|
||||
|
||||
#ifndef _XmlObjMgt_SRelocationTable_HeaderFile
|
||||
#define _XmlObjMgt_SRelocationTable_HeaderFile
|
||||
|
||||
#include <Standard_Handle.hxx>
|
||||
#include <TColStd_IndexedMapOfTransient.hxx>
|
||||
#include <Storage_HeaderData.hxx>
|
||||
|
||||
typedef TColStd_IndexedMapOfTransient XmlObjMgt_SRelocationTable;
|
||||
//! Stored relocation table is modeled as a child class of
|
||||
//! TColStd_DataMapOfIntegerTransient that stores a handle to the file
|
||||
//! header section. With that attribute drivers have access to the file header
|
||||
//! section.
|
||||
class XmlObjMgt_SRelocationTable : public TColStd_IndexedMapOfTransient
|
||||
{
|
||||
public:
|
||||
|
||||
//! Returns a handle to the header data of the file that is begin read
|
||||
Standard_EXPORT const Handle(Storage_HeaderData)& GetHeaderData() const;
|
||||
|
||||
//! Sets the storage header data.
|
||||
//!
|
||||
//! @param theHeaderData header data of the file that is begin read
|
||||
Standard_EXPORT void SetHeaderData(
|
||||
const Handle(Storage_HeaderData)& theHeaderData);
|
||||
|
||||
Standard_EXPORT void Clear(const Standard_Boolean doReleaseMemory = Standard_True);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Handle(Storage_HeaderData) myHeaderData;
|
||||
};
|
||||
|
||||
#endif // _XmlObjMgt_SRelocationTable_HeaderFile
|
||||
|
Reference in New Issue
Block a user