From 547d531a847c4b6c9a721ee8c161bf169b849a79 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1=20K=C5=99enek?= Date: Thu, 16 Mar 2006 18:47:37 +0000 Subject: [PATCH] record fed jobs for continuous feeds only --- org.glite.jp.primary/src/feed.c | 4 +++- org.glite.jp.primary/src/feed.h | 3 ++- org.glite.jp.primary/src/soap_ops.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/org.glite.jp.primary/src/feed.c b/org.glite.jp.primary/src/feed.c index 948f9cf..9962d66 100644 --- a/org.glite.jp.primary/src/feed.c +++ b/org.glite.jp.primary/src/feed.c @@ -460,7 +460,7 @@ static int drain_feed(glite_jp_context_t ctx, struct jpfeed *f,int done) int i; ret = glite_jpps_multi_feed(ctx,f->id,done,f->njobs,f->destination,f->jobs,f->owners,f->job_attrs); - if (!ret) for (i=0; injobs; i++) glite_jppsbe_set_fed(ctx,f->id,f->jobs[i]); + if (!ret && f->continuous) for (i=0; injobs; i++) glite_jppsbe_set_fed(ctx,f->id,f->jobs[i]); drop_jobs(f); } return ret; @@ -662,6 +662,7 @@ int glite_jpps_run_feed( const char *destination, char const * const *attrs, const glite_jp_query_rec_t *qry, + int continuous, char **feed_id) { struct jpfeed *f; @@ -670,6 +671,7 @@ int glite_jpps_run_feed( if (!*feed_id) *feed_id = generate_feedid(); f = make_jpfeed(destination,attrs,qry,*feed_id,(time_t) 0); + f->continuous = continuous; glite_jp_add_deferred(ctx,run_feed_deferred,f); return 0; diff --git a/org.glite.jp.primary/src/feed.h b/org.glite.jp.primary/src/feed.h index 1cfa907..05d64f5 100644 --- a/org.glite.jp.primary/src/feed.h +++ b/org.glite.jp.primary/src/feed.h @@ -6,6 +6,7 @@ struct jpfeed { /* feed data */ char *id,*destination; time_t expires; + int continuous; /* complete and split query and attribute list */ char **attrs,**meta_attr,**other_attr; @@ -29,7 +30,7 @@ struct jpfeed { int glite_jpps_match_attr(glite_jp_context_t,const char *,const glite_jp_attrval_t[]); int glite_jpps_match_file(glite_jp_context_t,const char *,const char *,const char *); int glite_jpps_match_tag(glite_jp_context_t,const char *,const char *,const char *); -int glite_jpps_run_feed(glite_jp_context_t,const char *,char const * const *,const glite_jp_query_rec_t *,char **); +int glite_jpps_run_feed(glite_jp_context_t,const char *,char const * const *,const glite_jp_query_rec_t *,int,char **); int glite_jpps_register_feed(glite_jp_context_t,const char *,char const * const *,const glite_jp_query_rec_t *,char **,time_t *); #endif diff --git a/org.glite.jp.primary/src/soap_ops.c b/org.glite.jp.primary/src/soap_ops.c index 3943879..61ba754 100644 --- a/org.glite.jp.primary/src/soap_ops.c +++ b/org.glite.jp.primary/src/soap_ops.c @@ -346,7 +346,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __jpsrv__FeedIndex( for (i = 0; i__sizeconditions; i++) s2jp_query(in->conditions[i],qry+i); if (in->history) { - if (glite_jpps_run_feed(ctx,in->destination,attrs,qry,&feed_id)) { + if (glite_jpps_run_feed(ctx,in->destination,attrs,qry,in->continuous,&feed_id)) { err2fault(ctx,soap); ret = SOAP_FAULT; goto cleanup; -- 1.8.2.3