OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
task_sandesh.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include <base/task.h>
6 #include <base/task_monitor.h>
7 #include <base/sandesh/task_types.h>
9 
10 using std::string;
11 
12 static void HandleRequestCommon(const string &context, bool summary) {
13  SandeshTaskScheduler *resp = new SandeshTaskScheduler;
15  scheduler->GetSandeshData(resp, summary);
16  resp->set_context(context);
17  resp->set_more(false);
18  resp->Response();
19 }
20 
21 void SandeshTaskRequest::HandleRequest() const {
22  HandleRequestCommon(context(), false);
23 }
24 
25 void SandeshTaskSummaryRequest::HandleRequest() const {
26  HandleRequestCommon(context(), true);
27 }
28 
29 void SandeshTaskMonitorRequest::HandleRequest() const {
31 
32  SandeshMonitorResponse *resp = new SandeshMonitorResponse;
33  resp->set_context(context());
34  resp->set_more(false);
35 
36  const TaskMonitor *monitor = scheduler->task_monitor();
37  if (monitor && monitor->inactivity_time_usec() &&
38  monitor->poll_interval_msec()) {
39  resp->set_running(true);
40  resp->set_inactivity_time_msec(monitor->inactivity_time_msec());
41  resp->set_poll_interval_msec(monitor->poll_interval_msec());
42  resp->set_poll_count(monitor->poll_count());
43  resp->set_last_activity(monitor->last_activity());
44  resp->set_last_enqueue_count(monitor->last_enqueue_count());
45  resp->set_last_done_count(monitor->last_done_count());
46  resp->set_tbb_keepawake_time(monitor->tbb_keepawake_time_msec());
47  } else {
48  resp->set_running(false);
49  }
50 
51  resp->Response();
52 }
uint64_t inactivity_time_usec() const
Definition: task_monitor.h:39
void GetSandeshData(SandeshTaskScheduler *resp, bool summary)
Definition: task.cc:1622
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
Definition: task.h:178
uint64_t last_enqueue_count() const
Definition: task_monitor.h:36
const TaskMonitor * task_monitor() const
Definition: task.h:322
static TaskScheduler * GetInstance()
Definition: task.cc:547
uint64_t last_activity() const
Definition: task_monitor.h:35
uint64_t last_done_count() const
Definition: task_monitor.h:37
static void HandleRequestCommon(const string &context, bool summary)
Definition: task_sandesh.cc:12
uint64_t inactivity_time_msec() const
Definition: task_monitor.h:40
uint64_t poll_interval_msec() const
Definition: task_monitor.h:41
uint64_t poll_count() const
Definition: task_monitor.h:43
uint64_t tbb_keepawake_time_msec() const
Definition: task_monitor.h:42