Line data Source code
1 : /* 2 : * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved. 3 : */ 4 : 5 : #include "task_map.h" 6 : 7 : #ifdef __cplusplus 8 : extern "C" { 9 : #endif 10 : #include "task_int.h" 11 : #include "task_timer_api.h" 12 : #ifdef __cplusplus 13 : } 14 : #endif 15 : 16 0 : TaskMap::TaskMap(Agent *agent, const std::string &name, int instance, 17 0 : boost::asio::io_context &io) : 18 0 : agent_(agent), name_(name), instance_(instance), 19 0 : io_(io) { 20 : 21 0 : task_ = NULL; 22 0 : } 23 : 24 0 : TaskMap::~TaskMap() { 25 0 : } 26 : 27 0 : task *task_create(void *task_map) 28 : { 29 : task *new_task; 30 0 : new_task = (task *)malloc(sizeof(task)); 31 0 : if (!new_task) { 32 0 : return NULL; 33 : } 34 0 : new_task->agent_task = task_map; 35 0 : return new_task; 36 : } 37 : 38 0 : TaskMap *TaskMapManager::CreateTaskMap(Agent *agent, const std::string &name, 39 : int instance, boost::asio::io_context &io) { 40 : 41 0 : TaskMap *task_map = new TaskMap(agent, name, instance, io); 42 0 : if (!task_map) { 43 0 : return NULL; 44 : } 45 : 46 0 : task_map->task_ = task_create(task_map); 47 0 : if (!task_map->task_) { 48 0 : delete task_map; 49 0 : return NULL; 50 : } 51 : 52 0 : task_timer_init(task_map->task_); 53 : 54 0 : return task_map; 55 : } 56 : 57 0 : bool TaskMapManager::DeleteTaskMap(TaskMap *task_map) { 58 0 : if (!task_map) { 59 0 : return false; 60 : } 61 : 62 0 : free(task_map->task_); 63 : 64 0 : delete task_map; 65 : 66 0 : return true; 67 : } 68 :