1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00
occt/src/BinObjMgt/BinObjMgt_RRelocationTable.hxx
Benjamin Bihler fe21f79693 0029014: Managing Binary Format Version Is Not Possible for Own TDF_Attributes
CDM_Application has been extended to provide application name and version.

Application name and version is stored by BinLDrivers_DocumentStorageDriver.

BinLDrivers_DocumentStorageDriver propagates application name and version
by passing it to BinMDataStd.

Made BinObjMgt_RRelocationTable store a handle to the header data of the file
begin read in to make it accessible by binary attribute drivers.

Undone storing application name and version as static fields in BinMDataStd
which is bad style and not thread-safe.

Moved method implementations to .cxx files.

Clearing a BinObjMgt_RRelocationTable now nullifies the reference to the
file header data and BinLDrivers_DocumentRetrievalDriver therefore sets
the reference after the relocation table has been cleared before reading
in the document subtree.
2017-09-22 11:51:29 +03:00

53 lines
1.7 KiB
C++

// Created on: 2002-10-29
// Created by: Michael SAZONOV
// Copyright (c) 2002-2014 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.
#ifndef _BinObjMgt_RRelocationTable_HeaderFile
#define _BinObjMgt_RRelocationTable_HeaderFile
#include <TColStd_DataMapOfIntegerTransient.hxx>
#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 BinObjMgt_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 // _BinObjMgt_RRelocationTable_HeaderFile