diff options
author | Thomas White <taw@physics.org> | 2023-12-22 14:04:13 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2024-02-06 16:59:35 +0100 |
commit | 4799a7012e2d7bc482af4c4aafc0bb6927722eeb (patch) | |
tree | 820d27004b776cdc21a9dbbb975daa47d80052af | |
parent | adad37bb1f15aef265b6e9ac17fbc263e055311e (diff) |
Julia: set filename and event ID for image
-rw-r--r-- | julia/CrystFEL/src/image.jl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/julia/CrystFEL/src/image.jl b/julia/CrystFEL/src/image.jl index 7a7ce76e..3f74d8cd 100644 --- a/julia/CrystFEL/src/image.jl +++ b/julia/CrystFEL/src/image.jl @@ -88,6 +88,9 @@ function Base.getproperty(image::Image, name::Symbol) end +strdup(str) = @ccall strdup(str::Cstring)::Cstring + + function Base.setproperty!(image::Image, name::Symbol, val) if name === :internalptr setfield!(image, :internalptr, val) @@ -105,6 +108,23 @@ function Base.setproperty!(image::Image, name::Symbol, val) else throw(ArgumentError("Must be a PeakList")) end + + elseif name === :filename + if val isa AbstractString + setproperty!(idata, :filename, strdup(val)) + unsafe_store!(image.internalptr, idata) + else + throw(ArgumentError("Must be a string")) + end + + elseif name === :ev + if val isa AbstractString + setproperty!(idata, :ev, strdup(val)) + unsafe_store!(image.internalptr, idata) + else + throw(ArgumentError("Must be a string")) + end + else setproperty!(idata, name, val) unsafe_store!(image.internalptr, idata) |