OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Task Class Referenceabstract

Task is a wrapper over tbb::task to support policies. More...

#include <task.h>

Inherited by BgpSenderPartition::Worker, cass::cql::impl::WorkerTask, ChannelEventProcTask, ConcurrencyScope::ScopeTask, ConfigAmqpClient::RabbitMQReader, ConfigEtcdClient::EtcdWatcher, ConfigPhysicalDeviceVnSandesh, DBPartition::QueueRunner, DBTable::WalkWorker, DBTableWalker::Worker, FlowKState, FlowStatsCollector::AgeingTask, HttpSession::RequestHandler, IFMapAgentStaleCleaner::IFMapAgentStaleCleanerWorker, IFMapServer::IFMapStaleEntriesCleaner, IFMapServer::IFMapVmSubscribe, IFMapUpdateSender::SendTask, KSyncSockTcpReadTask, KSyncSockUdsReadTask, KSyncTxQueueTask, MacLearningSandeshResp, MockGenerator::SendMessageTask, MockGenerator::SendSessionTask, OVSDB::LogicalSwitchEntry::ProcessDeleteOvsReqTask, OVSDB::LogicalSwitchTable::ProcessDeleteTableReqTask, OVSDB::OvsdbSandeshTask, OvsdbClientSandesTask, PhysicalSwitchSandeshTask, PipelineWorker, PktSandeshFlow, QueueTaskRunner< QueueEntryT, QueueT >, QueueTaskRunner< AgentSandeshManager::PageRequest, WorkQueue< AgentSandeshManager::PageRequest > >, QueueTaskRunner< BgpSession *, WorkQueue< BgpSession * > >, QueueTaskRunner< BgpXmppChannel *, WorkQueue< BgpXmppChannel * > >, QueueTaskRunner< boost::intrusive_ptr< const sc::event_base >, WorkQueue< boost::intrusive_ptr< const sc::event_base > > >, QueueTaskRunner< boost::shared_ptr< FlowExportReq >, WorkQueue< boost::shared_ptr< FlowExportReq > > >, QueueTaskRunner< boost::shared_ptr< FlowStatsCollectorReq >, WorkQueue< boost::shared_ptr< FlowStatsCollectorReq > > >, QueueTaskRunner< boost::shared_ptr< FlowUveStatsRequest >, WorkQueue< boost::shared_ptr< FlowUveStatsRequest > > >, QueueTaskRunner< boost::shared_ptr< PacketBufferEnqueueItem >, WorkQueue< boost::shared_ptr< PacketBufferEnqueueItem > > >, QueueTaskRunner< boost::shared_ptr< PktInfo >, WorkQueue< boost::shared_ptr< PktInfo > > >, QueueTaskRunner< boost::shared_ptr< RecordRequest >, WorkQueue< boost::shared_ptr< RecordRequest > > >, QueueTaskRunner< boost::shared_ptr< SessionStatsReq >, WorkQueue< boost::shared_ptr< SessionStatsReq > > >, QueueTaskRunner< boost::uuids::uuid, WorkQueue< boost::uuids::uuid > >, QueueTaskRunner< ControllerWorkQueueDataType, WorkQueue< ControllerWorkQueueDataType > >, QueueTaskRunner< CryptTunnelEvent *, WorkQueue< CryptTunnelEvent * > >, QueueTaskRunner< DiagEntryOp *, WorkQueue< DiagEntryOp * > >, QueueTaskRunner< EnqueuedCb, WorkQueue< EnqueuedCb > >, QueueTaskRunner< EventContainer, WorkQueue< EventContainer > >, QueueTaskRunner< EventNotifier::WorkQueueMessage::Ptr, WorkQueue< EventNotifier::WorkQueueMessage::Ptr > >, QueueTaskRunner< FlowMgmtRequestPtr, WorkQueue< FlowMgmtRequestPtr > >, QueueTaskRunner< HealthCheckInstanceEvent *, WorkQueue< HealthCheckInstanceEvent * > >, QueueTaskRunner< IFMapChannelManager::ConfigTaskQueueEntry, WorkQueue< IFMapChannelManager::ConfigTaskQueueEntry > >, QueueTaskRunner< IFMapServer::QueueEntry, WorkQueue< IFMapServer::QueueEntry > >, QueueTaskRunner< InstanceManager::InstanceManagerChildEvent, WorkQueue< InstanceManager::InstanceManagerChildEvent > >, QueueTaskRunner< IntrusivePtrRef< VrfEntry >, WorkQueue< IntrusivePtrRef< VrfEntry > > >, QueueTaskRunner< IoContext *, WorkQueue< IoContext * > >, QueueTaskRunner< IPeerUpdate *, WorkQueue< IPeerUpdate * > >, QueueTaskRunner< KSyncObjectEvent *, WorkQueue< KSyncObjectEvent * > >, QueueTaskRunner< KSyncRxQueueData, WorkQueue< KSyncRxQueueData > >, QueueTaskRunner< LifetimeManager::LifetimeActorRef, WorkQueue< LifetimeManager::LifetimeActorRef > >, QueueTaskRunner< MacLearningEntryRequestPtr, WorkQueue< MacLearningEntryRequestPtr > >, QueueTaskRunner< MacLearningMgmtRequestPtr, WorkQueue< MacLearningMgmtRequestPtr > >, QueueTaskRunner< McastSGEntry *, WorkQueue< McastSGEntry * > >, QueueTaskRunner< NdpEntry::EventContainer, WorkQueue< NdpEntry::EventContainer > >, QueueTaskRunner< OVSDB::OvsdbClientIdl::OvsdbMsg *, WorkQueue< OVSDB::OvsdbClientIdl::OvsdbMsg * > >, QueueTaskRunner< OvsdbSessionEvent, WorkQueue< OvsdbSessionEvent > >, QueueTaskRunner< PathPreferenceModule::PathPreferenceEventContainer, WorkQueue< PathPreferenceModule::PathPreferenceEventContainer > >, QueueTaskRunner< QueueEntryT, WorkQueue< QueueEntryT > >, QueueTaskRunner< ResourceBackupReqPtr, WorkQueue< ResourceBackupReqPtr > >, QueueTaskRunner< ResourceRestoreReqPtr, WorkQueue< ResourceRestoreReqPtr > >, QueueTaskRunner< SandeshClientSMImpl::EventContainer, WorkQueue< SandeshClientSMImpl::EventContainer > >, QueueTaskRunner< StateMachine::EventContainer, WorkQueue< StateMachine::EventContainer > >, QueueTaskRunner< StaticRouteRequest *, WorkQueue< StaticRouteRequest * > >, QueueTaskRunner< std::string, WorkQueue< std::string > >, QueueTaskRunner< TcpSessionPtr, WorkQueue< TcpSessionPtr > >, QueueTaskRunner< uint16_t, WorkQueue< uint16_t > >, QueueTaskRunner< VnswInterfaceListenerBase::Event *, WorkQueue< VnswInterfaceListenerBase::Event * > >, QueueTaskRunner< XmppServerConnection *, WorkQueue< XmppServerConnection * > >, RequestPipeline::StageWorker, RestServerGetVmCfgTask, SandeshPortSubscribeTask, SessionStatsCollector::SessionTask, SslSession::SslReader, TaskTrigger::WorkerTask, TcpSession::Reader, Timer::TimerTask, UdpServer::Reader, and VxLanConfigSandeshTask.

Public Types

enum  State { INIT, WAIT, RUN }
 Task states. More...
 
enum  TbbState { TBB_INIT, TBB_ENQUEUED, TBB_EXEC, TBB_DONE }
 

Public Member Functions

 Task (int task_id, int task_instance)
 
 Task (int task_id)
 
virtual ~Task ()
 
virtual bool Run ()=0
 Code to execute. Returns true if task is completed. Return false to reschedule the task. More...
 
virtual void OnTaskCancel ()
 Called on task exit, if it is marked for cancellation. If the user wants to do any cleanup on task cancellation, then he/she can overload this function. More...
 
State GetState () const
 
int GetTaskId () const
 
int GetTaskInstance () const
 
uint64_t GetSeqno () const
 
bool task_cancelled () const
 
virtual std::string Description () const =0
 
uint64_t enqueue_time () const
 
uint64_t schedule_time () const
 
uint32_t execute_delay () const
 
uint32_t schedule_delay () const
 

Static Public Member Functions

static TaskRunning ()
 Returns a pointer to the current task the code is executing under. More...
 

Static Public Attributes

static const int kTaskInstanceAny = -1
 

Private Member Functions

void SetSeqNo (uint64_t seqno)
 
void SetTbbState (TbbState s)
 
void SetState (State s)
 
void SetTaskRecycle ()
 
void SetTaskComplete ()
 
void StartTask (TaskScheduler *scheduler)
 Starts execution of a task. More...
 
 DISALLOW_COPY_AND_ASSIGN (Task)
 

Private Attributes

int task_id_
 The code path executed by the task. More...
 
int task_instance_
 The dataset id within a code path. More...
 
tbb::tasktask_impl_
 
State state_
 
TbbState tbb_state_
 
uint64_t seqno_
 
bool task_recycle_
 
bool task_cancel_
 
uint64_t enqueue_time_
 
uint64_t schedule_time_
 
uint32_t execute_delay_
 
uint32_t schedule_delay_
 
boost::intrusive::list_member_hook waitq_hook_
 

Friends

class TaskEntry
 
class TaskScheduler
 
class TaskImpl
 
std::ostream & operator<< (std::ostream &out, const Task &task)
 

Detailed Description

Task is a wrapper over tbb::task to support policies.

There are two kind of tasks,

  • <task-id, instance-id> specifies task with a given instance-id
  • <task-id> specifies task without any instance

The policies can be specified in the form of, task(tid0) => <tid1, -1> <tid2, 2> <tid3, 3> The rule implies that:

  • Task <tid0, *> cannot run as long as <tid1, *> is running
  • Task <tid0, 2> cannot run as long as task <tid2, 2> is running
  • Task <tid0, 3> cannot run as long as task <tid3, 3> is running

The policy rules are symmetric. That is:

  • Task <tid1, *> cannot run as long as <tid0, *> is running
  • Task <tid2, 2> cannot run as long as task <tid0, 2> is running
  • Task <tid3, 3> cannot run as long as task <tid0, 3> is running

If task_instance == -1, means instance is not applicable. It implies that, any number of tasks with instance -1 can run at a time

If task_instance != -1, only one task of given instnace can run at a time

When there are multiple tasks ready to run, they are scheduled in their order of enqueue

Definition at line 86 of file task.h.

Member Enumeration Documentation

Task states.

Enumerator
INIT 
WAIT 
RUN 

Definition at line 89 of file task.h.

Enumerator
TBB_INIT 
TBB_ENQUEUED 
TBB_EXEC 
TBB_DONE 

Definition at line 95 of file task.h.

Constructor & Destructor Documentation

Task::Task ( int  task_id,
int  task_instance 
)

Definition at line 1529 of file task.cc.

Task::Task ( int  task_id)

Definition at line 1535 of file task.cc.

virtual Task::~Task ( )
inlinevirtual

Definition at line 105 of file task.h.

Member Function Documentation

virtual std::string Task::Description ( ) const
pure virtual

Implemented in cass::cql::impl::WorkerTask, SandeshVmVnToVmiTask, SandeshVmiToVmVnTask, SandeshVmVnPortSubscribeTask, IFMapAgentStaleCleaner::IFMapAgentStaleCleanerWorker, SandeshVmiPortSubscribeTask, VxLanConfigSandeshTask, BgpSenderPartition::Worker, ConfigPhysicalDeviceVnSandesh, MockGenerator::SendSessionTask, MacLearningSandeshResp, DBTable::WalkWorker, KSyncSockTcpReadTask, PhysicalSwitchSandeshTask, DBPartition::QueueRunner, HttpSession::RequestHandler, SessionStatsCollector::SessionTask, IFMapServer::IFMapVmSubscribe, OVSDB::LogicalSwitchEntry::ProcessDeleteOvsReqTask, MockGenerator::SendMessageTask, IFMapServer::IFMapStaleEntriesCleaner, OvsdbClientSandesTask, FlowStatsCollector::AgeingTask, RequestPipeline::StageWorker, KSyncTxQueueTask, TcpSession::Reader, DBTableWalker::Worker, ConfigEtcdClient::EtcdWatcher, ChannelEventProcTask, Timer::TimerTask, SslSession::SslReader, IFMapUpdateSender::SendTask, RestServerGetVmCfgTask, OVSDB::LogicalSwitchTable::ProcessDeleteTableReqTask, QueueTaskRunner< QueueEntryT, QueueT >, QueueTaskRunner< std::string, WorkQueue< std::string > >, QueueTaskRunner< BgpSession *, WorkQueue< BgpSession * > >, QueueTaskRunner< boost::shared_ptr< FlowExportReq >, WorkQueue< boost::shared_ptr< FlowExportReq > > >, QueueTaskRunner< AgentSandeshManager::PageRequest, WorkQueue< AgentSandeshManager::PageRequest > >, QueueTaskRunner< KSyncRxQueueData, WorkQueue< KSyncRxQueueData > >, QueueTaskRunner< IoContext *, WorkQueue< IoContext * > >, QueueTaskRunner< MacLearningEntryRequestPtr, WorkQueue< MacLearningEntryRequestPtr > >, QueueTaskRunner< boost::shared_ptr< SessionStatsReq >, WorkQueue< boost::shared_ptr< SessionStatsReq > > >, QueueTaskRunner< TcpSessionPtr, WorkQueue< TcpSessionPtr > >, QueueTaskRunner< BgpXmppChannel *, WorkQueue< BgpXmppChannel * > >, QueueTaskRunner< ResourceBackupReqPtr, WorkQueue< ResourceBackupReqPtr > >, QueueTaskRunner< boost::shared_ptr< FlowUveStatsRequest >, WorkQueue< boost::shared_ptr< FlowUveStatsRequest > > >, QueueTaskRunner< boost::shared_ptr< RecordRequest >, WorkQueue< boost::shared_ptr< RecordRequest > > >, QueueTaskRunner< boost::shared_ptr< PacketBufferEnqueueItem >, WorkQueue< boost::shared_ptr< PacketBufferEnqueueItem > > >, QueueTaskRunner< OVSDB::OvsdbClientIdl::OvsdbMsg *, WorkQueue< OVSDB::OvsdbClientIdl::OvsdbMsg * > >, QueueTaskRunner< InstanceManager::InstanceManagerChildEvent, WorkQueue< InstanceManager::InstanceManagerChildEvent > >, QueueTaskRunner< boost::shared_ptr< FlowStatsCollectorReq >, WorkQueue< boost::shared_ptr< FlowStatsCollectorReq > > >, QueueTaskRunner< NdpEntry::EventContainer, WorkQueue< NdpEntry::EventContainer > >, QueueTaskRunner< IntrusivePtrRef< VrfEntry >, WorkQueue< IntrusivePtrRef< VrfEntry > > >, QueueTaskRunner< PathPreferenceModule::PathPreferenceEventContainer, WorkQueue< PathPreferenceModule::PathPreferenceEventContainer > >, QueueTaskRunner< XmppServerConnection *, WorkQueue< XmppServerConnection * > >, QueueTaskRunner< FlowMgmtRequestPtr, WorkQueue< FlowMgmtRequestPtr > >, QueueTaskRunner< ControllerWorkQueueDataType, WorkQueue< ControllerWorkQueueDataType > >, QueueTaskRunner< StateMachine::EventContainer, WorkQueue< StateMachine::EventContainer > >, QueueTaskRunner< LifetimeManager::LifetimeActorRef, WorkQueue< LifetimeManager::LifetimeActorRef > >, QueueTaskRunner< uint16_t, WorkQueue< uint16_t > >, QueueTaskRunner< McastSGEntry *, WorkQueue< McastSGEntry * > >, QueueTaskRunner< IPeerUpdate *, WorkQueue< IPeerUpdate * > >, QueueTaskRunner< OvsdbSessionEvent, WorkQueue< OvsdbSessionEvent > >, QueueTaskRunner< QueueEntryT, WorkQueue< QueueEntryT > >, QueueTaskRunner< ResourceRestoreReqPtr, WorkQueue< ResourceRestoreReqPtr > >, QueueTaskRunner< DiagEntryOp *, WorkQueue< DiagEntryOp * > >, QueueTaskRunner< StaticRouteRequest *, WorkQueue< StaticRouteRequest * > >, QueueTaskRunner< IFMapChannelManager::ConfigTaskQueueEntry, WorkQueue< IFMapChannelManager::ConfigTaskQueueEntry > >, QueueTaskRunner< HealthCheckInstanceEvent *, WorkQueue< HealthCheckInstanceEvent * > >, QueueTaskRunner< EnqueuedCb, WorkQueue< EnqueuedCb > >, QueueTaskRunner< boost::uuids::uuid, WorkQueue< boost::uuids::uuid > >, QueueTaskRunner< CryptTunnelEvent *, WorkQueue< CryptTunnelEvent * > >, QueueTaskRunner< boost::intrusive_ptr< const sc::event_base >, WorkQueue< boost::intrusive_ptr< const sc::event_base > > >, QueueTaskRunner< SandeshClientSMImpl::EventContainer, WorkQueue< SandeshClientSMImpl::EventContainer > >, QueueTaskRunner< KSyncObjectEvent *, WorkQueue< KSyncObjectEvent * > >, QueueTaskRunner< IFMapServer::QueueEntry, WorkQueue< IFMapServer::QueueEntry > >, QueueTaskRunner< VnswInterfaceListenerBase::Event *, WorkQueue< VnswInterfaceListenerBase::Event * > >, QueueTaskRunner< MacLearningMgmtRequestPtr, WorkQueue< MacLearningMgmtRequestPtr > >, QueueTaskRunner< EventNotifier::WorkQueueMessage::Ptr, WorkQueue< EventNotifier::WorkQueueMessage::Ptr > >, QueueTaskRunner< EventContainer, WorkQueue< EventContainer > >, QueueTaskRunner< boost::shared_ptr< PktInfo >, WorkQueue< boost::shared_ptr< PktInfo > > >, ConfigAmqpClient::RabbitMQReader, OVSDB::OvsdbSandeshTask, ConcurrencyScope::ScopeTask, UdpServer::Reader, KSyncSockUdsReadTask, PipelineWorker, TaskTrigger::WorkerTask, PktSandeshFlow, and FlowKState.

Task::DISALLOW_COPY_AND_ASSIGN ( Task  )
private
uint64_t Task::enqueue_time ( ) const
inline

Definition at line 130 of file task.h.

uint32_t Task::execute_delay ( ) const
inline

Definition at line 132 of file task.h.

uint64_t Task::GetSeqno ( ) const
inline

Definition at line 120 of file task.h.

State Task::GetState ( ) const
inline

Definition at line 117 of file task.h.

int Task::GetTaskId ( ) const
inline

Definition at line 118 of file task.h.

int Task::GetTaskInstance ( ) const
inline

Definition at line 119 of file task.h.

virtual void Task::OnTaskCancel ( )
inlinevirtual

Called on task exit, if it is marked for cancellation. If the user wants to do any cleanup on task cancellation, then he/she can overload this function.

Reimplemented in Timer::TimerTask.

Definition at line 114 of file task.h.

virtual bool Task::Run ( )
pure virtual

Code to execute. Returns true if task is completed. Return false to reschedule the task.

Implemented in cass::cql::impl::WorkerTask, SandeshVmVnToVmiTask, SandeshVmiToVmVnTask, SandeshVmVnPortSubscribeTask, SandeshVmiPortSubscribeTask, IFMapAgentStaleCleaner::IFMapAgentStaleCleanerWorker, VxLanConfigSandeshTask, ConfigPhysicalDeviceVnSandesh, BgpSenderPartition::Worker, MacLearningSandeshResp, DBTable::WalkWorker, KSyncSockTcpReadTask, PhysicalSwitchSandeshTask, SessionStatsCollector::SessionTask, DBPartition::QueueRunner, HttpSession::RequestHandler, OVSDB::LogicalSwitchEntry::ProcessDeleteOvsReqTask, MockGenerator::SendSessionTask, IFMapServer::IFMapVmSubscribe, MockGenerator::SendMessageTask, OvsdbClientSandesTask, FlowStatsCollector::AgeingTask, RequestPipeline::StageWorker, KSyncTxQueueTask, DBTableWalker::Worker, ConfigEtcdClient::EtcdWatcher, TcpSession::Reader, ChannelEventProcTask, PktSandeshFlowStats, IFMapServer::IFMapStaleEntriesCleaner, OVSDB::LogicalSwitchTable::ProcessDeleteTableReqTask, ConfigAmqpClient::RabbitMQReader, SslSession::SslReader, OVSDB::OvsdbSandeshTask, RestServerGetVmCfgTask, ConcurrencyScope::ScopeTask, QueueTaskRunner< QueueEntryT, QueueT >, QueueTaskRunner< std::string, WorkQueue< std::string > >, QueueTaskRunner< BgpSession *, WorkQueue< BgpSession * > >, QueueTaskRunner< boost::shared_ptr< FlowExportReq >, WorkQueue< boost::shared_ptr< FlowExportReq > > >, QueueTaskRunner< AgentSandeshManager::PageRequest, WorkQueue< AgentSandeshManager::PageRequest > >, QueueTaskRunner< KSyncRxQueueData, WorkQueue< KSyncRxQueueData > >, QueueTaskRunner< IoContext *, WorkQueue< IoContext * > >, QueueTaskRunner< MacLearningEntryRequestPtr, WorkQueue< MacLearningEntryRequestPtr > >, QueueTaskRunner< boost::shared_ptr< SessionStatsReq >, WorkQueue< boost::shared_ptr< SessionStatsReq > > >, QueueTaskRunner< TcpSessionPtr, WorkQueue< TcpSessionPtr > >, QueueTaskRunner< BgpXmppChannel *, WorkQueue< BgpXmppChannel * > >, QueueTaskRunner< ResourceBackupReqPtr, WorkQueue< ResourceBackupReqPtr > >, QueueTaskRunner< boost::shared_ptr< FlowUveStatsRequest >, WorkQueue< boost::shared_ptr< FlowUveStatsRequest > > >, QueueTaskRunner< boost::shared_ptr< RecordRequest >, WorkQueue< boost::shared_ptr< RecordRequest > > >, QueueTaskRunner< boost::shared_ptr< PacketBufferEnqueueItem >, WorkQueue< boost::shared_ptr< PacketBufferEnqueueItem > > >, QueueTaskRunner< OVSDB::OvsdbClientIdl::OvsdbMsg *, WorkQueue< OVSDB::OvsdbClientIdl::OvsdbMsg * > >, QueueTaskRunner< InstanceManager::InstanceManagerChildEvent, WorkQueue< InstanceManager::InstanceManagerChildEvent > >, QueueTaskRunner< boost::shared_ptr< FlowStatsCollectorReq >, WorkQueue< boost::shared_ptr< FlowStatsCollectorReq > > >, QueueTaskRunner< NdpEntry::EventContainer, WorkQueue< NdpEntry::EventContainer > >, QueueTaskRunner< IntrusivePtrRef< VrfEntry >, WorkQueue< IntrusivePtrRef< VrfEntry > > >, QueueTaskRunner< PathPreferenceModule::PathPreferenceEventContainer, WorkQueue< PathPreferenceModule::PathPreferenceEventContainer > >, QueueTaskRunner< XmppServerConnection *, WorkQueue< XmppServerConnection * > >, QueueTaskRunner< FlowMgmtRequestPtr, WorkQueue< FlowMgmtRequestPtr > >, QueueTaskRunner< ControllerWorkQueueDataType, WorkQueue< ControllerWorkQueueDataType > >, QueueTaskRunner< StateMachine::EventContainer, WorkQueue< StateMachine::EventContainer > >, QueueTaskRunner< LifetimeManager::LifetimeActorRef, WorkQueue< LifetimeManager::LifetimeActorRef > >, QueueTaskRunner< uint16_t, WorkQueue< uint16_t > >, QueueTaskRunner< McastSGEntry *, WorkQueue< McastSGEntry * > >, QueueTaskRunner< IPeerUpdate *, WorkQueue< IPeerUpdate * > >, QueueTaskRunner< OvsdbSessionEvent, WorkQueue< OvsdbSessionEvent > >, QueueTaskRunner< QueueEntryT, WorkQueue< QueueEntryT > >, QueueTaskRunner< ResourceRestoreReqPtr, WorkQueue< ResourceRestoreReqPtr > >, QueueTaskRunner< DiagEntryOp *, WorkQueue< DiagEntryOp * > >, QueueTaskRunner< StaticRouteRequest *, WorkQueue< StaticRouteRequest * > >, QueueTaskRunner< IFMapChannelManager::ConfigTaskQueueEntry, WorkQueue< IFMapChannelManager::ConfigTaskQueueEntry > >, QueueTaskRunner< HealthCheckInstanceEvent *, WorkQueue< HealthCheckInstanceEvent * > >, QueueTaskRunner< EnqueuedCb, WorkQueue< EnqueuedCb > >, QueueTaskRunner< boost::uuids::uuid, WorkQueue< boost::uuids::uuid > >, QueueTaskRunner< CryptTunnelEvent *, WorkQueue< CryptTunnelEvent * > >, QueueTaskRunner< boost::intrusive_ptr< const sc::event_base >, WorkQueue< boost::intrusive_ptr< const sc::event_base > > >, QueueTaskRunner< SandeshClientSMImpl::EventContainer, WorkQueue< SandeshClientSMImpl::EventContainer > >, QueueTaskRunner< KSyncObjectEvent *, WorkQueue< KSyncObjectEvent * > >, QueueTaskRunner< IFMapServer::QueueEntry, WorkQueue< IFMapServer::QueueEntry > >, QueueTaskRunner< VnswInterfaceListenerBase::Event *, WorkQueue< VnswInterfaceListenerBase::Event * > >, QueueTaskRunner< MacLearningMgmtRequestPtr, WorkQueue< MacLearningMgmtRequestPtr > >, QueueTaskRunner< EventNotifier::WorkQueueMessage::Ptr, WorkQueue< EventNotifier::WorkQueueMessage::Ptr > >, QueueTaskRunner< EventContainer, WorkQueue< EventContainer > >, QueueTaskRunner< boost::shared_ptr< PktInfo >, WorkQueue< boost::shared_ptr< PktInfo > > >, IFMapUpdateSender::SendTask, UdpServer::Reader, KSyncSockUdsReadTask, PktSandeshFlow, PipelineWorker, Timer::TimerTask, FlowKState, and TaskTrigger::WorkerTask.

Task * Task::Running ( )
static

Returns a pointer to the current task the code is executing under.

Definition at line 1562 of file task.cc.

uint32_t Task::schedule_delay ( ) const
inline

Definition at line 133 of file task.h.

uint64_t Task::schedule_time ( ) const
inline

Definition at line 131 of file task.h.

void Task::SetSeqNo ( uint64_t  seqno)
inlineprivate

Definition at line 139 of file task.h.

void Task::SetState ( State  s)
inlineprivate

Definition at line 141 of file task.h.

void Task::SetTaskComplete ( )
inlineprivate

Definition at line 143 of file task.h.

void Task::SetTaskRecycle ( )
inlineprivate

Definition at line 142 of file task.h.

void Task::SetTbbState ( TbbState  s)
inlineprivate

Definition at line 140 of file task.h.

void Task::StartTask ( TaskScheduler scheduler)
private

Starts execution of a task.

Definition at line 1542 of file task.cc.

Here is the call graph for this function:

bool Task::task_cancelled ( ) const
inline

Definition at line 127 of file task.h.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const Task task 
)
friend
friend class TaskEntry
friend

Definition at line 136 of file task.h.

friend class TaskImpl
friend

Definition at line 138 of file task.h.

friend class TaskScheduler
friend

Definition at line 137 of file task.h.

Member Data Documentation

uint64_t Task::enqueue_time_
private

Definition at line 159 of file task.h.

uint32_t Task::execute_delay_
private

Definition at line 161 of file task.h.

const int Task::kTaskInstanceAny = -1
static

Definition at line 102 of file task.h.

uint32_t Task::schedule_delay_
private

Definition at line 162 of file task.h.

uint64_t Task::schedule_time_
private

Definition at line 160 of file task.h.

uint64_t Task::seqno_
private

Definition at line 156 of file task.h.

State Task::state_
private

Definition at line 154 of file task.h.

bool Task::task_cancel_
private

Definition at line 158 of file task.h.

int Task::task_id_
private

The code path executed by the task.

Definition at line 149 of file task.h.

tbb::task* Task::task_impl_
private

Definition at line 153 of file task.h.

int Task::task_instance_
private

The dataset id within a code path.

Definition at line 152 of file task.h.

bool Task::task_recycle_
private

Definition at line 157 of file task.h.

TbbState Task::tbb_state_
private

Definition at line 155 of file task.h.

boost::intrusive::list_member_hook Task::waitq_hook_
private

Definition at line 164 of file task.h.


The documentation for this class was generated from the following files: