OpenNI 1.5.4
XnScheduler.h
Go to the documentation of this file.
1 /****************************************************************************
2 * *
3 * OpenNI 1.x Alpha *
4 * Copyright (C) 2011 PrimeSense Ltd. *
5 * *
6 * This file is part of OpenNI. *
7 * *
8 * OpenNI is free software: you can redistribute it and/or modify *
9 * it under the terms of the GNU Lesser General Public License as published *
10 * by the Free Software Foundation, either version 3 of the License, or *
11 * (at your option) any later version. *
12 * *
13 * OpenNI is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU Lesser General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU Lesser General Public License *
19 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. *
20 * *
21 ****************************************************************************/
22 #ifndef _XN_SCHEDULER_H_
23 #define _XN_SCHEDULER_H_
24 
25 //---------------------------------------------------------------------------
26 // Includes
27 //---------------------------------------------------------------------------
28 #include <XnOS.h>
29 
30 //---------------------------------------------------------------------------
31 // Defines
32 //---------------------------------------------------------------------------
33 #define XN_MASK_SCHEDULER "Scheduler"
34 
35 //---------------------------------------------------------------------------
36 // Types
37 //---------------------------------------------------------------------------
38 struct XnScheduler; // forward declaration
39 typedef struct XnScheduler XnScheduler;
40 
41 struct XnScheduledTask; // forward declaration
43 
44 typedef void (XN_CALLBACK_TYPE* XnTaskCallbackFuncPtr)(void* pCallbackArg);
45 
46 //---------------------------------------------------------------------------
47 // Exported Function Declaration
48 //---------------------------------------------------------------------------
49 
55 XN_C_API XnStatus XN_C_DECL xnSchedulerStart(XnScheduler** ppScheduler);
56 
62 XN_C_API XnStatus XN_C_DECL xnSchedulerShutdown(XnScheduler** ppScheduler);
63 
73 XN_C_API XnStatus XN_C_DECL xnSchedulerAddTask(XnScheduler* pScheduler, XnUInt64 nInterval, XnTaskCallbackFuncPtr pCallback, void* pCallbackArg, XnScheduledTask** ppTask);
74 
81 XN_C_API XnStatus XN_C_DECL xnSchedulerRemoveTask(XnScheduler* pScheduler, XnScheduledTask** ppTask);
82 
90 XN_C_API XnStatus XN_C_DECL xnSchedulerRescheduleTask(XnScheduler* pScheduler, XnScheduledTask* pTask, XnUInt64 nInterval);
91 
92 #endif //_XN_SCHEDULER_H_
XN_C_API XnStatus XN_C_DECL xnSchedulerRemoveTask(XnScheduler *pScheduler, XnScheduledTask **ppTask)
XN_C_API XnStatus XN_C_DECL xnSchedulerRescheduleTask(XnScheduler *pScheduler, XnScheduledTask *pTask, XnUInt64 nInterval)
XnUInt32 XnStatus
Definition: XnStatus.h:34
#define XN_C_API
Definition: XnPlatform.h:117
struct XnScheduler XnScheduler
Definition: XnScheduler.h:39
void(* XnTaskCallbackFuncPtr)(void *pCallbackArg)
Definition: XnScheduler.h:44
XN_C_API XnStatus XN_C_DECL xnSchedulerShutdown(XnScheduler **ppScheduler)
XN_C_API XnStatus XN_C_DECL xnSchedulerAddTask(XnScheduler *pScheduler, XnUInt64 nInterval, XnTaskCallbackFuncPtr pCallback, void *pCallbackArg, XnScheduledTask **ppTask)
struct XnScheduledTask XnScheduledTask
Definition: XnScheduler.h:42
XN_C_API XnStatus XN_C_DECL xnSchedulerStart(XnScheduler **ppScheduler)