//---------------------------- PROTECTED -----------------------------// void RuleExtensionMixin::ExecuteExtensions(const DataObject &object) { IRuleEngine::StringHash::const_iterator it, itEnd(hash_end()); for(it = hash_begin(); it != itEnd; ++it) { RULE.Execute(it->second, object); } }
static hash_iter_t firstiter(hash_t tab, int s) { for (int i = s; i < tab->size; ++i) { list_t lst = tab->ptr[i]; if (list_begin(lst) != list_end(lst)) return list_begin(lst); } return hash_end(tab); }
static bool param_more(uint8_t seq, uint8_t limit, const uint8_t *payload) { switch (limit-seq) { default: hash_merge(payload, PAYLOAD); break; case 1: hash_end(); failed = !hash_eq(payload, PAYLOAD, 0); break; case 0: if (!hash_eq(payload, PAYLOAD, PAYLOAD)) failed = 1; if (failed) return 0; new_params(); break; } return 1; }