aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2023-12-22 14:04:13 +0100
committerThomas White <taw@physics.org>2024-02-06 16:59:35 +0100
commit4799a7012e2d7bc482af4c4aafc0bb6927722eeb (patch)
tree820d27004b776cdc21a9dbbb975daa47d80052af
parentadad37bb1f15aef265b6e9ac17fbc263e055311e (diff)
Julia: set filename and event ID for image
-rw-r--r--julia/CrystFEL/src/image.jl20
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)