@@ -70,6 +70,11 @@ const std::string &resource_prop_t::get_prune_filters () const
7070 return m_prune_filters;
7171}
7272
73+ const int resource_prop_t::get_update_interval () const
74+ {
75+ return m_update_interval;
76+ }
77+
7378void resource_prop_t::set_load_file (const std::string &p)
7479{
7580 m_load_file = p;
@@ -125,6 +130,11 @@ void resource_prop_t::add_to_prune_filters (const std::string &p)
125130 m_prune_filters += p;
126131}
127132
133+ void resource_prop_t::set_update_interval (const int i)
134+ {
135+ m_update_interval = i;
136+ }
137+
128138bool resource_prop_t::is_load_file_set () const
129139{
130140 return m_load_file != RESOURCE_OPTS_UNSET_STR;
@@ -165,9 +175,14 @@ bool resource_prop_t::is_prune_filters_set () const
165175 return m_prune_filters != RESOURCE_OPTS_UNSET_STR;
166176}
167177
178+ bool resource_prop_t::is_update_interval_set () const
179+ {
180+ return m_update_interval != 0 ;
181+ }
182+
168183json_t *resource_prop_t ::jsonify () const
169184{
170- return json_pack (" { s:s? s:s? s:s? s:s? s:s? s:s? s:i s:s? }" ,
185+ return json_pack (" { s:s? s:s? s:s? s:s? s:s? s:s? s:i s:s? s:i }" ,
171186 " load-file" , is_load_file_set ()
172187 ? get_load_file ().c_str ()
173188 : nullptr ,
@@ -191,7 +206,10 @@ json_t *resource_prop_t::jsonify () const
191206 : 0 ,
192207 " prune-filters" , is_prune_filters_set ()
193208 ? get_prune_filters ().c_str ()
194- : nullptr );
209+ : nullptr ,
210+ " update-interval" , is_update_interval_set ()
211+ ? get_update_interval ()
212+ : 0 );
195213}
196214
197215
@@ -280,6 +298,12 @@ resource_opts_t::resource_opts_t ()
280298 ::resource_opts_key_t
281299 ::PRUNE_FILTERS)));
282300 inserted &= ret.second ;
301+ ret= m_tab.insert (std::pair<std::string, int > (
302+ " update-interval" ,
303+ static_cast <int > (resource_opts_t
304+ ::resource_opts_key_t
305+ ::UPDATE_INTERVAL)));
306+ inserted &= ret.second ;
283307
284308 if (!inserted)
285309 throw std::bad_alloc ();
@@ -325,6 +349,11 @@ const std::string &resource_opts_t::get_prune_filters () const
325349 return m_resource_prop.get_prune_filters ();
326350}
327351
352+ const int resource_opts_t::get_update_interval () const
353+ {
354+ return m_resource_prop.get_update_interval ();
355+ }
356+
328357const resource_prop_t &resource_opts_t ::get_resource_prop () const
329358{
330359 return m_resource_prop;
@@ -370,6 +399,11 @@ void resource_opts_t::set_prune_filters (const std::string &o)
370399 m_resource_prop.set_prune_filters (o);
371400}
372401
402+ void resource_opts_t::set_update_interval (const int i)
403+ {
404+ m_resource_prop.set_update_interval (i);
405+ }
406+
373407bool resource_opts_t::is_load_file_set () const
374408{
375409 return m_resource_prop.is_load_file_set ();
@@ -410,6 +444,11 @@ bool resource_opts_t::is_prune_filters_set () const
410444 return m_resource_prop.is_prune_filters_set ();
411445}
412446
447+ bool resource_opts_t::is_update_interval_set () const
448+ {
449+ return m_resource_prop.is_update_interval_set ();
450+ }
451+
413452resource_opts_t &resource_opts_t ::canonicalize ()
414453{
415454 return *this ;
@@ -441,6 +480,9 @@ resource_opts_t &resource_opts_t::operator+= (const resource_opts_t &src)
441480 if (src.m_resource_prop .is_prune_filters_set ())
442481 m_resource_prop.set_prune_filters (
443482 src.m_resource_prop .get_prune_filters ());
483+ if (src.m_resource_prop .is_update_interval_set ())
484+ m_resource_prop.set_update_interval (
485+ src.m_resource_prop .get_update_interval ());
444486 return *this ;
445487}
446488
@@ -543,6 +585,15 @@ int resource_opts_t::parse (const std::string &k,
543585 }
544586 break ;
545587
588+ case static_cast <int > (resource_opts_key_t ::UPDATE_INTERVAL):
589+ if (is_number (v)) {
590+ int s = std::stoi (v);
591+ if ( !(s <= 0 || s > 2000000 )) {
592+ m_resource_prop.set_update_interval (s);
593+ }
594+ }
595+ break ;
596+
546597 default :
547598 info += " Unknown option (" + k + " )." ;
548599 errno = EINVAL;
0 commit comments