Lines Matching defs:trigger
28 int AddCommand(JobNode *trigger, uint32_t cmdKeyIndex, const char *content, const ConfigContext *cfgContext)
30 PARAM_CHECK(trigger != NULL, return -1, "trigger is null");
50 if (trigger->firstCmd == NULL) {
51 trigger->firstCmd = node;
52 trigger->lastCmd = node;
54 PARAM_CHECK(trigger->lastCmd != NULL, free(node);
56 trigger->lastCmd->next = node;
57 trigger->lastCmd = node;
62 CommandNode *GetNextCmdNode(const JobNode *trigger, const CommandNode *curr)
64 PARAM_CHECK(trigger != NULL, return NULL, "trigger is null");
66 return trigger->firstCmd;
79 PARAM_CHECK(ret == 0, return -1, "Failed to convert condition for trigger");
89 PARAM_CHECK(node != NULL, return NULL, "Failed to alloc memory for trigger");
102 static int32_t AddJobNode_(TriggerNode *trigger, const TriggerExtInfo *extInfo)
104 JobNode *node = (JobNode *)trigger;
106 PARAM_CHECK(ret == EOK, return -1, "Failed to copy name for trigger");
138 static void DelJobTrigger_(const TriggerWorkSpace *workSpace, TriggerNode *trigger)
141 PARAM_CHECK(trigger != NULL, return, "Trigger is null");
142 JobNode *jobNode = (JobNode *)trigger;
143 TriggerHeader *triggerHead = GetTriggerHeader(workSpace, trigger->type);
144 PARAM_CHECK(triggerHead != NULL, return, "Failed to get header %d", trigger->type);
158 OH_ListRemove(&trigger->node);
162 if (!TRIGGER_IN_QUEUE(trigger)) {
168 if (executeQueue->executeQueue[i] == trigger) {
189 PARAM_LOGE("Invalid trigger type %d", extInfo->type);
193 PARAM_CHECK(node != NULL, return NULL, "Failed to alloc memory for trigger");
203 static void DelWatchTrigger_(const TriggerWorkSpace *workSpace, TriggerNode *trigger)
205 PARAM_CHECK(workSpace != NULL && trigger != NULL, return, "Param is null");
206 TriggerHeader *triggerHead = GetTriggerHeader(workSpace, trigger->type);
207 PARAM_CHECK(triggerHead != NULL, return, "Failed to get header %d", trigger->type);
208 OH_ListRemove(&trigger->node);
209 if (trigger->type == TRIGGER_PARAM_WAIT) {
210 WaitNode *node = (WaitNode *)trigger;
212 } else if (trigger->type == TRIGGER_PARAM_WATCH) {
213 WatchNode *node = (WatchNode *)trigger;
216 PARAM_LOGV("DelWatchTrigger_ %s count %d", GetTriggerName(trigger), triggerHead->triggerCount);
218 if (trigger->condition != NULL) {
219 free(trigger->condition);
220 trigger->condition = NULL;
222 free(trigger);
240 static const char *GetTriggerCondition_(const TriggerNode *trigger)
242 return (trigger == NULL || trigger->condition == NULL) ? "" : trigger->condition;
245 static const char *GetBootCondition_(const TriggerNode *trigger)
247 PARAM_CHECK(trigger != NULL, return "", "Invalid trigger");
248 PARAM_CHECK(trigger->type == TRIGGER_BOOT, return "", "Invalid type");
249 const JobNode *node = (const JobNode *)trigger;
253 static const char *GetJobName_(const TriggerNode *trigger)
255 PARAM_CHECK(trigger != NULL, return "", "Invalid trigger");
256 PARAM_CHECK(trigger->type <= TRIGGER_UNKNOW, return "", "Invalid type");
257 const JobNode *node = (const JobNode *)trigger;
261 static const char *GetWatchName_(const TriggerNode *trigger)
263 PARAM_CHECK(trigger != NULL, return "", "Invalid trigger");
264 PARAM_CHECK(trigger->type < TRIGGER_MAX && trigger->type > TRIGGER_UNKNOW,
266 return trigger->condition;
298 JobNode *trigger = HASHMAP_ENTRY(node, JobNode, hashNode);
299 return trigger;
302 void FreeTrigger(const TriggerWorkSpace *workSpace, TriggerNode *trigger)
304 PARAM_CHECK(workSpace != NULL && trigger != NULL, return, "Invalid param");
305 TriggerHeader *head = GetTriggerHeader(workSpace, trigger->type);
307 head->delTrigger(workSpace, trigger);
316 TriggerNode *trigger = head->nextTrigger(head, NULL);
317 while (trigger != NULL) {
318 TriggerNode *next = head->nextTrigger(head, trigger);
319 FreeTrigger(workSpace, trigger);
320 trigger = next;
325 int ExecuteQueuePush(TriggerWorkSpace *workSpace, const TriggerNode *trigger)
329 workSpace->executeQueue.executeQueue[index] = (TriggerNode *)trigger;
336 TriggerNode *trigger = NULL;
342 trigger = workSpace->executeQueue.executeQueue[currIndex];
345 } while (trigger == NULL);
346 return trigger;
397 TriggerNode *trigger = head->nextTrigger(head, NULL);
398 while (trigger != NULL) {
399 TriggerNode *next = head->nextTrigger(head, trigger);
400 const char *condition = head->getCondition(trigger);
402 calculator->triggerCheckDone(trigger, content, contentSize);
404 trigger = next;
435 PARAM_CHECK(workSpace != NULL && content != NULL, return -1, "Failed arg for trigger");
448 PARAM_CHECK(workSpace != NULL && name != NULL, return 0, "Failed arg for trigger");
452 TriggerNode *trigger = head->nextTrigger(head, NULL);
453 while (trigger != NULL) {
454 if (head->getCondition(trigger) == NULL) {
455 trigger = head->nextTrigger(head, trigger);
458 if (CheckMatchSubCondition(head->getCondition(trigger), name, strlen(name)) == 1) {
459 TRIGGER_SET_FLAG(trigger, TRIGGER_FLAGS_RELATED);
462 trigger = head->nextTrigger(head, trigger);
471 return -1, "Failed arg for trigger");
484 static void DumpJobTrigger_(const TriggerWorkSpace *workSpace, const TriggerNode *trigger)
486 const JobNode *node = (const JobNode *)trigger;
487 PARAM_DUMP("trigger flags: 0x%08x \n", trigger->flags);
488 PARAM_DUMP("trigger name: %s \n", node->name);
489 PARAM_DUMP("trigger condition: %s \n", node->condition);
502 static void DumpWatchTrigger_(const TriggerWorkSpace *workSpace, const TriggerNode *trigger)
504 PARAM_CHECK(trigger != NULL, return, "Empty trigger");
505 const WatchNode *node = (const WatchNode *)trigger;
506 PARAM_DUMP("trigger flags: 0x%08x \n", trigger->flags);
507 PARAM_DUMP("trigger condition: %s \n", trigger->condition);
508 PARAM_DUMP("trigger watchId: %d \n", node->watchId);
511 static void DumpWaitTrigger_(const TriggerWorkSpace *workSpace, const TriggerNode *trigger)
513 PARAM_CHECK(trigger != NULL, return, "Empty trigger");
514 const WaitNode *node = (const WaitNode *)trigger;
515 PARAM_DUMP("trigger flags: 0x%08x \n", trigger->flags);
516 PARAM_DUMP("trigger name: %s \n", GetTriggerName(trigger));
517 PARAM_DUMP("trigger condition: %s \n", trigger->condition);
518 PARAM_DUMP("trigger waitId: %d \n", node->waitId);
519 PARAM_DUMP("trigger timeout: %d \n", node->timeout);
527 TriggerNode *trigger = head->nextTrigger(head, NULL);
528 while (trigger != NULL) {
529 head->dumpTrigger(workSpace, trigger);
530 trigger = head->nextTrigger(head, trigger);
558 TriggerNode *trigger = workSpace->executeQueue.executeQueue[index % workSpace->executeQueue.queueCount];
559 if (trigger != 0) {
560 PARAM_DUMP(" queue node trigger name: %s \n", GetTriggerName(trigger));
565 static int32_t CompareData_(const struct tagTriggerNode_ *trigger, const void *data)
567 PARAM_CHECK(trigger != NULL && data != NULL, return -1, "Invalid trigger");
568 if (trigger->type == TRIGGER_PARAM_WAIT) {
569 WaitNode *node = (WaitNode *)trigger;
571 } else if (trigger->type == TRIGGER_PARAM_WATCH) {
572 WatchNode *node = (WatchNode *)trigger;
653 // param trigger
659 // unknown trigger
665 // wait trigger
675 // watch trigger
693 TriggerNode *trigger = head->nextTrigger(head, NULL);
694 while (trigger != NULL) {
695 if (head->compareData(trigger, data) == 0) {
696 head->delTrigger(GetTriggerWorkSpace(), trigger);
699 trigger = head->nextTrigger(head, trigger);
710 TriggerNode *trigger = NULL;
712 trigger = (TriggerNode *)ListEntry(node, WaitNode, item);
714 trigger = (TriggerNode *)ListEntry(node, WatchNode, item);
716 if (trigger == NULL || type != trigger->type) {
717 PARAM_LOGE("ClearWatchTrigger %s error type %d", GetTriggerName(trigger), type);
720 PARAM_LOGV("ClearWatchTrigger %s", GetTriggerName(trigger));
722 FreeTrigger(GetTriggerWorkSpace(), trigger);
767 const char *GetTriggerName(const TriggerNode *trigger)
769 PARAM_CHECK(trigger != NULL, return "", "Invalid trigger");
770 TriggerHeader *triggerHead = GetTriggerHeader(GetTriggerWorkSpace(), trigger->type);
772 return triggerHead->getTriggerName(trigger);