Twitch SDK (Internal)
lambdatask.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 
13 
14 #include <algorithm>
15 
16 namespace ttv
17 {
18  class LambdaTask;
19 }
20 
21 
25 class ttv::LambdaTask : public ttv::Task
26 {
27 public:
28  typedef std::function<TTV_ErrorCode()> JobCallback;
29  typedef std::function<void(LambdaTask* source, TTV_ErrorCode ec)> CompleteCallback;
30 
31 public:
32  LambdaTask(JobCallback lambda, CompleteCallback callback);
33  LambdaTask(const std::string& name, JobCallback lambda, CompleteCallback callback);
34 
35  virtual void Run() override;
36  virtual void OnComplete() override;
37  virtual const char* GetTaskName() const override { return mName.c_str(); }
38 
39 private:
40  std::string mName;
41  JobCallback mLambda;
42  CompleteCallback mCallback;
44 };
Definition: task.h:19
virtual void OnComplete() override
std::function< TTV_ErrorCode()> JobCallback
Definition: lambdatask.h:28
virtual void Run() override
JobCallback mLambda
Definition: lambdatask.h:41
virtual const char * GetTaskName() const override
Definition: lambdatask.h:37
Definition: lambdatask.h:25
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::function< void(LambdaTask *source, TTV_ErrorCode ec)> CompleteCallback
Definition: lambdatask.h:29
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
CompleteCallback mCallback
Definition: lambdatask.h:42
std::string mName
Definition: lambdatask.h:40
TTV_ErrorCode mTaskStatus
Definition: lambdatask.h:43
LambdaTask(JobCallback lambda, CompleteCallback callback)