@@ -38,16 +38,6 @@ version(cdr::CDR; verbose = true) = verbose ? (cdr.version, cdr.release, cdr.inc
3838Majority(cdr:: CDR ) = (cdr. flags & 0x01 ) != 0 ? Majority(0 ) : Majority(1 ) # Row=0, Column=1
3939is_cdf_v3(cdr:: CDR ) = cdr. version == 3
4040
41- """
42- File header containing parsed information from CDR
43- """
44- struct FileHeader
45- version:: Tuple{UInt32, UInt32, UInt32}
46- majority:: Majority
47- compression:: CompressionType
48- cdr:: CDR # Store the parsed CDR for reference
49- end
50-
5141"""
5242Global Descriptor Record (GDR) - contains global information about the CDF file
5343Points to variable and attribute descriptor records
@@ -143,6 +133,15 @@ struct VVR{T}
143133 data:: Vector{T} # Raw variable data
144134end
145135
136+ for R in (:CDR, :GDR, :VXR, :VDR)
137+ @eval begin
138+ @inline function $ R(io:: IO , offset, RecordSizeType)
139+ seek(io, offset)
140+ return $ R(io, RecordSizeType)
141+ end
142+ end
143+ end
144+
146145# Utility functions to decode CDR flags
147146"""
148147 decode_cdr_flags(flags::UInt32)
@@ -165,20 +164,6 @@ function decode_cdr_flags(flags)
165164 )
166165end
167166
168- """
169- extract_file_properties(cdr::CDR)
170-
171- Extract high-level file properties from parsed CDR record.
172- """
173- function extract_file_properties(cdr)
174- # Extract version tuple
175- version = (cdr. version, cdr. release, cdr. increment)
176-
177- # Extract majority from flags (bit 0: 1=row major, 0=column major)
178- majority = (cdr. flags & 0x01 ) != 0 ? Majority(0 ) : Majority(1 ) # Row=0, Column=1
179- return (version, majority)
180- end
181-
182167# Pretty printing for CDR structure
183168function Base. show(io:: IO , cdr:: CDR )
184169 flag_info = decode_cdr_flags(cdr. flags)
@@ -195,11 +180,4 @@ function Base.show(io::IO, cdr::CDR)
195180 println(io, " - Checksum Used: $(flag_info. checksum_used) " )
196181 println(io, " - MD5 Checksum: $(flag_info. md5_checksum) " )
197182 return println(io, " Identifier: $(cdr. identifier) " )
198- end
199-
200- function Base. show(io:: IO , header:: FileHeader )
201- println(io, " CDF File Header:" )
202- println(io, " Version: $(header. version) " )
203- println(io, " Majority: $(header. majority) " )
204- return println(io, " Compression: $(header. compression) " )
205- end
183+ end
0 commit comments