Archived issue #0019403
Adding DeltaOnModification functioanlity to set of Standard attributes
Description
This patch adds new DeltaOnModification functionality for set of next standard
attributes: ByteArray, IntegerArray, RealArray, ExtStringArray, IntPackeMap.
With this patch the mentioned DeltaOnModification feature becomes ready to use
for specified attributes. The choice use or not this feature is driven by the
corresponding boolean variable <isDelta> of the <Set> command of the attributes.
The attached archive includes:
- <adm> directory with UDLIST file
- <work> directory with srcripts dedicated for attributes testing
- <src> directory with sources.
attributes: ByteArray, IntegerArray, RealArray, ExtStringArray, IntPackeMap.
With this patch the mentioned DeltaOnModification feature becomes ready to use
for specified attributes. The choice use or not this feature is driven by the
corresponding boolean variable <isDelta> of the <Set> command of the attributes.
The attached archive includes:
- <adm> directory with UDLIST file
- <work> directory with srcripts dedicated for attributes testing
- <src> directory with sources.
Additional information
Documentation remark, added by Author 2008-04-01 13:30:59:
New features:
Implemented the possibility to use the specified attributes as in standard mode
(default mode) when during CommitTransaction command the full attribute value is
backuping as in DeltaOnModification mode, when only delta of attribute value
relative to old state is backuping. The new feature can be used in case when
attribute's value (array or packed map) expected of very big size and using of
standard backup mode becomes not effective.
The implementation allows using in the same document the same attributes as in
standard mode as in DeltaOnModification mode. The choice is driven by boolean
parameter <isDelta> of the corresponding <Set> command of the specified attribute.
It is ready to use and doesn't requires any additional efforts from a developer.
The mode (Default delta of DeltaonModification) of attribute using is not
supposed to be changed after initial set. If it is requested by an application
business logic the attribute with undesirable mode removed using Forget command).
Changes:
Each modified attribute (using new feature) received new methods:
GetDelta(me) returns Boolean from Standard;
---C++: inline
SetDelta(me : mutable; isDelta : Boolean from Standard);
---C++: inline
---Purpose: for internal use only by the class developer!
RemoveArray(me : mutable) is private;
---C++: inline
DeltaOnModification(me; anOldAttribute : Attribute from TDF)
returns DeltaOnModification from TDF is redefined virtual;
---Purpose : Makes a DeltaOnModification between <me> and
-- <anOldAttribute>.
and new class supporting DeltaOnModification mechanism:
TDataStd_DeltaOnModificationOfByteArray,
TDataStd_DeltaOnModificationOfExtStringArray,
TDataStd_DeltaOnModificationOfIntArray,
TDataStd_DeltaOnModificationOfIntPackedMap,
TDataStd_DeltaOnModificationOfRealArray.
Corresponding persistence classes for all supporting formats (Standard, BinOcaf,
XmlOcaf) were modified too.
Modified entities:
BinLDrivers:
BinLDrivers.cxx
BinLDrivers_DocumentRetrievalDriver.cxx
BinMDataStd:
BinMDataStd.cdl
BinMDataStd.cxx
BinMDataStd_ByteArrayDriver.cxx
BinMDataStd_ExtStringArrayDriver.cxx
BinMDataStd_IntegerArrayDriver.cxx
BinMDataStd_IntPackedMapDriver.cxx
BinMDataStd_RealArrayDriver.cxx
DDataStd:
DDataStd_BasicCommands.cxx
MDataStd:
MDataStd.cdl
MDataStd.cxx
MDataStd_ByteArrayRetrievalDriver.cxx
MDataStd_ByteArrayRetrievalDriver_1.cdl
MDataStd_ByteArrayRetrievalDriver_1.cxx
MDataStd_ByteArrayStorageDriver.cxx
MDataStd_ExtStringArrayRetrievalDriver_1.cdl
MDataStd_ExtStringArrayRetrievalDriver_1.cxx
MDataStd_ExtStringArrayStorageDriver.cxx
MDataStd_IntegerArrayRetrievalDriver_1.cdl
MDataStd_IntegerArrayRetrievalDriver_1.cxx
MDataStd_IntegerArrayStorageDriver.cxx
MDataStd_IntPackedMapRetrievalDriver_1.cdl
MDataStd_IntPackedMapRetrievalDriver_1.cxx
MDataStd_IntPackedMapStorageDriver.cxx
MDataStd_RealArrayRetrievalDriver_1.cdl
MDataStd_RealArrayRetrievalDriver_1.cxx
MDataStd_RealArrayStorageDriver.cxx
PDataStd:
PDataStd.cdl
PDataStd_ByteArray_1.cdl
PDataStd_ByteArray_1.cxx
PDataStd_ExtStringArray_1.cdl
PDataStd_ExtStringArray_1.cxx
PDataStd_IntegerArray_1.cdl
PDataStd_IntegerArray_1.cxx
PDataStd_IntPackedMap_1.cdl
PDataStd_IntPackedMap_1.cxx
PDataStd_RealArray_1.cdl
PDataStd_RealArray_1.cxx
TDataStd:
TDataStd.cdl
TDataStd_ByteArray.cdl
TDataStd_ByteArray.cxx
TDataStd_ByteArray.lxx
TDataStd_DeltaOnModificationOfByteArray.cdl
TDataStd_DeltaOnModificationOfByteArray.cxx
TDataStd_DeltaOnModificationOfExtStringArray.cdl
TDataStd_DeltaOnModificationOfExtStringArray.cxx
TDataStd_DeltaOnModificationOfIntArray.cdl
TDataStd_DeltaOnModificationOfIntArray.cxx
TDataStd_DeltaOnModificationOfIntPackedMap.cdl
TDataStd_DeltaOnModificationOfIntPackedMap.cxx
TDataStd_DeltaOnModificationOfRealArray.cdl
TDataStd_DeltaOnModificationOfRealArray.cxx
TDataStd_ExtStringArray.cdl
TDataStd_ExtStringArray.cxx
TDataStd_ExtStringArray.lxx
TDataStd_Integer.cxx
TDataStd_IntegerArray.cdl
TDataStd_IntegerArray.cxx
TDataStd_IntegerArray.lxx
TDataStd_IntPackedMap.cdl
TDataStd_IntPackedMap.cxx
TDataStd_IntPackedMap.lxx
TDataStd_RealArray.cdl
TDataStd_RealArray.cxx
TDataStd_RealArray.lxx
XmlLDrivers:
XmlLDrivers.cdl
XmlLDrivers.cxx
XmlLDrivers_DocumentRetrievalDriver.cxx
XmlLDrivers_DocumentStorageDriver.cxx
XmlMDataStd:
XmlMDataStd.cdl
XmlMDataStd.cxx
XmlMDataStd_ByteArrayDriver.cxx
XmlMDataStd_ExtStringArrayDriver.cxx
XmlMDataStd_IntegerArrayDriver.cxx
XmlMDataStd_IntPackedMapDriver.cxx
XmlMDataStd_RealArrayDriver.cxx
New features:
Implemented the possibility to use the specified attributes as in standard mode
(default mode) when during CommitTransaction command the full attribute value is
backuping as in DeltaOnModification mode, when only delta of attribute value
relative to old state is backuping. The new feature can be used in case when
attribute's value (array or packed map) expected of very big size and using of
standard backup mode becomes not effective.
The implementation allows using in the same document the same attributes as in
standard mode as in DeltaOnModification mode. The choice is driven by boolean
parameter <isDelta> of the corresponding <Set> command of the specified attribute.
It is ready to use and doesn't requires any additional efforts from a developer.
The mode (Default delta of DeltaonModification) of attribute using is not
supposed to be changed after initial set. If it is requested by an application
business logic the attribute with undesirable mode removed using Forget command).
Changes:
Each modified attribute (using new feature) received new methods:
GetDelta(me) returns Boolean from Standard;
---C++: inline
SetDelta(me : mutable; isDelta : Boolean from Standard);
---C++: inline
---Purpose: for internal use only by the class developer!
RemoveArray(me : mutable) is private;
---C++: inline
DeltaOnModification(me; anOldAttribute : Attribute from TDF)
returns DeltaOnModification from TDF is redefined virtual;
---Purpose : Makes a DeltaOnModification between <me> and
-- <anOldAttribute>.
and new class supporting DeltaOnModification mechanism:
TDataStd_DeltaOnModificationOfByteArray,
TDataStd_DeltaOnModificationOfExtStringArray,
TDataStd_DeltaOnModificationOfIntArray,
TDataStd_DeltaOnModificationOfIntPackedMap,
TDataStd_DeltaOnModificationOfRealArray.
Corresponding persistence classes for all supporting formats (Standard, BinOcaf,
XmlOcaf) were modified too.
Modified entities:
BinLDrivers:
BinLDrivers.cxx
BinLDrivers_DocumentRetrievalDriver.cxx
BinMDataStd:
BinMDataStd.cdl
BinMDataStd.cxx
BinMDataStd_ByteArrayDriver.cxx
BinMDataStd_ExtStringArrayDriver.cxx
BinMDataStd_IntegerArrayDriver.cxx
BinMDataStd_IntPackedMapDriver.cxx
BinMDataStd_RealArrayDriver.cxx
DDataStd:
DDataStd_BasicCommands.cxx
MDataStd:
MDataStd.cdl
MDataStd.cxx
MDataStd_ByteArrayRetrievalDriver.cxx
MDataStd_ByteArrayRetrievalDriver_1.cdl
MDataStd_ByteArrayRetrievalDriver_1.cxx
MDataStd_ByteArrayStorageDriver.cxx
MDataStd_ExtStringArrayRetrievalDriver_1.cdl
MDataStd_ExtStringArrayRetrievalDriver_1.cxx
MDataStd_ExtStringArrayStorageDriver.cxx
MDataStd_IntegerArrayRetrievalDriver_1.cdl
MDataStd_IntegerArrayRetrievalDriver_1.cxx
MDataStd_IntegerArrayStorageDriver.cxx
MDataStd_IntPackedMapRetrievalDriver_1.cdl
MDataStd_IntPackedMapRetrievalDriver_1.cxx
MDataStd_IntPackedMapStorageDriver.cxx
MDataStd_RealArrayRetrievalDriver_1.cdl
MDataStd_RealArrayRetrievalDriver_1.cxx
MDataStd_RealArrayStorageDriver.cxx
PDataStd:
PDataStd.cdl
PDataStd_ByteArray_1.cdl
PDataStd_ByteArray_1.cxx
PDataStd_ExtStringArray_1.cdl
PDataStd_ExtStringArray_1.cxx
PDataStd_IntegerArray_1.cdl
PDataStd_IntegerArray_1.cxx
PDataStd_IntPackedMap_1.cdl
PDataStd_IntPackedMap_1.cxx
PDataStd_RealArray_1.cdl
PDataStd_RealArray_1.cxx
TDataStd:
TDataStd.cdl
TDataStd_ByteArray.cdl
TDataStd_ByteArray.cxx
TDataStd_ByteArray.lxx
TDataStd_DeltaOnModificationOfByteArray.cdl
TDataStd_DeltaOnModificationOfByteArray.cxx
TDataStd_DeltaOnModificationOfExtStringArray.cdl
TDataStd_DeltaOnModificationOfExtStringArray.cxx
TDataStd_DeltaOnModificationOfIntArray.cdl
TDataStd_DeltaOnModificationOfIntArray.cxx
TDataStd_DeltaOnModificationOfIntPackedMap.cdl
TDataStd_DeltaOnModificationOfIntPackedMap.cxx
TDataStd_DeltaOnModificationOfRealArray.cdl
TDataStd_DeltaOnModificationOfRealArray.cxx
TDataStd_ExtStringArray.cdl
TDataStd_ExtStringArray.cxx
TDataStd_ExtStringArray.lxx
TDataStd_Integer.cxx
TDataStd_IntegerArray.cdl
TDataStd_IntegerArray.cxx
TDataStd_IntegerArray.lxx
TDataStd_IntPackedMap.cdl
TDataStd_IntPackedMap.cxx
TDataStd_IntPackedMap.lxx
TDataStd_RealArray.cdl
TDataStd_RealArray.cxx
TDataStd_RealArray.lxx
XmlLDrivers:
XmlLDrivers.cdl
XmlLDrivers.cxx
XmlLDrivers_DocumentRetrievalDriver.cxx
XmlLDrivers_DocumentStorageDriver.cxx
XmlMDataStd:
XmlMDataStd.cdl
XmlMDataStd.cxx
XmlMDataStd_ByteArrayDriver.cxx
XmlMDataStd_ExtStringArrayDriver.cxx
XmlMDataStd_IntegerArrayDriver.cxx
XmlMDataStd_IntPackedMapDriver.cxx
XmlMDataStd_RealArrayDriver.cxx
Public activity
No public notes
Participants are labeled by their role within this record.