mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
OCAF attributes TDataStd_AsciiString, TDataStd_Integer, TDataStd_Name, TDataStd_Real are extended by possibility to use custom GUID. Now multiple attributes of any of these types can be placed at the same label using different user-defined GUIDs. For this new "Set" methods were added into each attribute, which takes this custom GUID as an argument. Other aspects of management of attributes on labels remain the same. Version number of persistent OCAF documents is incremented. However, the attributes are stored in the same way unless non-standard GUID is used for particular attribute. Previously saved documents are fully supported, but the new documents with this extension used will be non-readable by the previous version of OCAF libraries.
59 lines
1.5 KiB
Plaintext
59 lines
1.5 KiB
Plaintext
#INTERFACE CAF
|
|
# Basic attributes
|
|
#
|
|
# Testing attribute: User defined (additional GUID) TDataStd_Integer
|
|
#
|
|
# Testing command: SetInteger
|
|
# Testing command: GetInteger
|
|
#
|
|
|
|
puts "caf001-A6"
|
|
|
|
# Add an attribute to a data framework
|
|
set aSetAttr1 100
|
|
set aSetAttr2 200
|
|
set aGuid1 "12e94541-6dbc-11d4-b9c8-0060b0ee281b"
|
|
set aGuid2 "12e94542-6dbc-11d4-b9c8-0060b0ee281b"
|
|
set aLabel 0:2
|
|
SetInteger D ${aLabel} ${aSetAttr1} ${aGuid1}
|
|
SetInteger D ${aLabel} ${aSetAttr2} ${aGuid2}
|
|
|
|
# Close/Open the transaction
|
|
NewCommand D
|
|
|
|
# Save the document
|
|
set aFile ${imagedir}/caf001-A6.cbf
|
|
file delete ${aFile}
|
|
SaveAs D ${aFile}
|
|
if { ![file exists ${aFile}] } {
|
|
puts "There is not ${aFile} file; SaveAs command: Error"
|
|
return
|
|
}
|
|
#catch {exec chmod 777 ${aFile}}
|
|
|
|
# Restore the document
|
|
Close D
|
|
Open ${aFile} DD
|
|
|
|
# Get a value of the attribute #1
|
|
set IsDone [catch {set aGetAttr3 [GetInteger DD ${aLabel} ${aGuid1}]} aResult]
|
|
if { ${IsDone} != 0 ||
|
|
${aSetAttr1}!=${aGetAttr3} } {
|
|
puts ${aResult}
|
|
puts "aSetAttr1=${aSetAttr1} aGetAttr3=${aGetAttr3}"
|
|
puts "Get a value of the first TDataStd_Integer attribute from restoring document: Error"
|
|
return
|
|
}
|
|
|
|
# Get a value of the attribute #2
|
|
set IsDone [catch {set aGetAttr4 [GetInteger DD ${aLabel} ${aGuid2}]} aResult]
|
|
if { ${IsDone} != 0 ||
|
|
${aSetAttr2}!=${aGetAttr4} } {
|
|
puts ${aResult}
|
|
puts "aSetAttr2=${aSetAttr2} aGetAttr4=${aGetAttr4}"
|
|
puts "Get a value of the second TDataStd_Integer attribute from restoring document: Error"
|
|
return
|
|
}
|
|
|
|
puts "Get a value of user defined TDataStd_Integer attributes from restoring document: OK"
|