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; i<f->njobs; i++) glite_jppsbe_set_fed(ctx,f->id,f->jobs[i]);
+ if (!ret && f->continuous) for (i=0; i<f->njobs; i++) glite_jppsbe_set_fed(ctx,f->id,f->jobs[i]);
drop_jobs(f);
}
return ret;
const char *destination,
char const * const *attrs,
const glite_jp_query_rec_t *qry,
+ int continuous,
char **feed_id)
{
struct jpfeed *f;
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;
/* feed data */
char *id,*destination;
time_t expires;
+ int continuous;
/* complete and split query and attribute list */
char **attrs,**meta_attr,**other_attr;
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
for (i = 0; i<in->__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;