MCPcopy Create free account
hub / github.com/acl-dev/acl / trigger

Method trigger

lib_acl_cpp/include/acl_cpp/stdlib/trigger.hpp:164–189  ·  view source on GitHub ↗

* Trigger all expired timer tasks * @return {long long} Returns timestamp of the next timer task to be * triggered. Returns -1 * indicates there are no timer tasks */

Source from the content-addressed store, hash-verified

162 * indicates there are no timer tasks
163 */
164 long long trigger() {
165 long long key = get_curr_stamp();
166 std::vector<trigger_item<T>*> items;
167 trigger_iter_t iter;
168 for (iter = items_.begin(); iter != items_.end();) {
169 if (iter->first > key) {
170 break;
171 }
172
173 items.push_back(iter->second);
174 items_.erase(iter++);
175 }
176
177 for (typename std::vector<trigger_item<T>*>::iterator
178 it = items.begin(); it != items.end(); ++it) {
179
180 trigger(*it);
181 delete *it;
182 }
183
184 iter = items_.begin();
185 if (iter == items_.end()) {
186 return -1;
187 }
188 return iter->first;
189 }
190
191private:
192 trigger_items_t items_;

Callers 1

runMethod · 0.45

Calls 9

get_curr_stampFunction · 0.85
beginMethod · 0.80
get_ttlMethod · 0.80
endMethod · 0.45
push_backMethod · 0.45
on_triggerMethod · 0.45
findMethod · 0.45
addMethod · 0.45
set_keyMethod · 0.45

Tested by

no test coverage detected