Twitch SDK (Internal)
task.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #pragma once
10 
12 #include <atomic>
13 
14 namespace ttv
15 {
16  class Task;
17 }
18 
19 class ttv::Task
20 {
21 public:
23 
24 public:
25  Task()
26  : mCallback(nullptr)
27  , mUserData(nullptr)
28  {
29  mAborted = false;
30  }
31 
32  Task(TaskCallback callback, void* userData)
33  : mCallback(callback)
34  , mUserData(userData)
35  {
36  mAborted = false;
37  }
38 
39  virtual ~Task();
40 
41  virtual void Run() = 0;
42  virtual void Abort();
43  virtual void OnComplete() = 0;
44  virtual const char* GetTaskName() const = 0;
45 
46 protected:
47  TaskCallback mCallback;
48  void* mUserData;
49  std::atomic_bool mAborted;
50 };
51 
Definition: task.h:19
virtual ~Task()
virtual void Run()=0
virtual const char * GetTaskName() const =0
Task()
Definition: task.h:25
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
TTV_TaskCallback TaskCallback
Definition: task.h:22
Task(TaskCallback callback, void *userData)
Definition: task.h:32
void * mUserData
Definition: task.h:48
void(* TTV_TaskCallback)(TTV_ErrorCode result, void *userData)
Definition: tasktypes.h:16
virtual void Abort()
std::atomic_bool mAborted
Definition: task.h:49
TaskCallback mCallback
Definition: task.h:47
virtual void OnComplete()=0