1
0
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:
szy
2018-10-09 17:30:10 +03:00
committed by apn
parent 90fd614536
commit b34d86cb28
58 changed files with 315 additions and 305 deletions

View File

@@ -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

View 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);
}

View File

@@ -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

View 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);
}

View File

@@ -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