Now you can download a copy of these docs so you can use them offline! Download now
OSAL/Task.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) FIRST 2008. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
5 /*----------------------------------------------------------------------------*/
6 
7 #ifndef __NTTASK_H__
8 #define __NTTASK_H__
9 
10 #if (defined __vxworks || defined WIN32)
11 
12 #include "ErrorBase.h"
13 #ifdef __vxworks
14 #include <vxWorks.h>
15 #endif
16 
21 class NTTask : public ErrorBase
22 {
23 public:
24  static const UINT32 kDefaultPriority = 101;
25  static const INT32 kInvalidTaskID = -1;
26 
27  NTTask(const char* name, FUNCPTR function, INT32 priority = kDefaultPriority, UINT32 stackSize = 20000);
28  virtual ~NTTask();
29 
30  #ifdef WIN32
31  bool Start(void * arg0);
32  #else
33  bool Start(UINT32 arg0 = 0, UINT32 arg1 = 0, UINT32 arg2 = 0, UINT32 arg3 = 0, UINT32 arg4 = 0,
34  UINT32 arg5 = 0, UINT32 arg6 = 0, UINT32 arg7 = 0, UINT32 arg8 = 0, UINT32 arg9 = 0);
35  #endif
36 
37  bool Restart();
38  bool Stop();
39 
40  bool IsReady();
41  bool IsSuspended();
42 
43  bool Suspend();
44  bool Resume();
45 
46  bool Verify();
47 
48  INT32 GetPriority();
49  bool SetPriority(INT32 priority);
50  const char* GetName();
51  INT32 GetID();
52 
53  #ifdef WIN32
54  FUNCPTR m_function;
55  void * m_Arg;
56  #endif
57 private:
58  char* m_taskName;
59 
60  #ifdef WIN32
61  bool StartInternal();
62  HANDLE m_Handle;
63  DWORD m_ID;
64  #else
65  FUNCPTR m_function;
66  INT32 m_taskID;
67  #endif
68 
69  UINT32 m_stackSize;
70  INT32 m_priority;
71  bool HandleError(STATUS results);
72  DISALLOW_COPY_AND_ASSIGN(NTTask);
73 };
74 
75 #endif // __vxworks
76 #endif // __TASK_H__

Generated on Sat Apr 26 2014 12:26:45 for WPILibC++ by doxygen 1.8.6