From ffd98b770d6dfa7c1bef4b2ae54e0b637f2e7ac3 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 4 May 2022 12:14:27 +0200 Subject: indexamajig: Add --asapo-stream --- src/im-sandbox.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/im-sandbox.c') diff --git a/src/im-sandbox.c b/src/im-sandbox.c index 8137db9e..8e1e5004 100644 --- a/src/im-sandbox.c +++ b/src/im-sandbox.c @@ -112,6 +112,7 @@ struct sandbox const char *asapo_beamtime; const char *asapo_group_id; const char *asapo_source; + const char *asapo_stream; /* Final output */ Stream *stream; @@ -362,7 +363,8 @@ static int run_work(const struct index_args *iargs, Stream *st, sb->asapo_token, sb->asapo_beamtime, sb->asapo_group_id, - sb->asapo_source); + sb->asapo_source, + sb->asapo_stream); if ( asapostuff == NULL ) { ERROR("ASAP::O setup failed.\n"); return 1; @@ -480,13 +482,15 @@ static int run_work(const struct index_args *iargs, Stream *st, char *filename; char *event; + int finished = 0; profile_start("asapo-fetch"); pargs.asapo_data = im_asapo_fetch(asapostuff, &pargs.asapo_data_size, &pargs.asapo_meta, &filename, - &event); + &event, + &finished); profile_end("asapo-fetch"); if ( pargs.asapo_data != NULL ) { ok = 1; @@ -497,6 +501,11 @@ static int run_work(const struct index_args *iargs, Stream *st, free(pargs.event); pargs.filename = filename; pargs.event = event; + } else { + if ( finished ) { + sb->shared->should_shutdown = 1; + allDone = 1; + } } } else { @@ -1120,8 +1129,8 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, const char *zmq_address, char **zmq_subscriptions, int n_zmq_subscriptions, const char *zmq_request, const char *asapo_endpoint, const char *asapo_token, - const char *asapo_beamtime, - const char *asapo_group_id, const char *asapo_source, + const char *asapo_beamtime, const char *asapo_group_id, + const char *asapo_source, const char *asapo_stream, int timeout, int profile) { int i; @@ -1168,6 +1177,7 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, sb->asapo_token = asapo_token; sb->asapo_beamtime = asapo_beamtime; sb->asapo_source = asapo_source; + sb->asapo_stream = asapo_stream; } else { sb->asapo = 0; } -- cgit v1.2.3