00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.0 Alpha * 00004 * Copyright (C) 2010 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * OpenNI is free software: you can redistribute it and/or modify * 00009 * it under the terms of the GNU Lesser General Public License as published * 00010 * by the Free Software Foundation, either version 3 of the License, or * 00011 * (at your option) any later version. * 00012 * * 00013 * OpenNI is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00016 * GNU Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public License * 00019 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * 00020 * * 00021 *****************************************************************************/ 00022 00023 00024 00025 00026 #ifndef _XN_SCHEDULER_H_ 00027 #define _XN_SCHEDULER_H_ 00028 00029 //--------------------------------------------------------------------------- 00030 // Includes 00031 //--------------------------------------------------------------------------- 00032 #include <XnOS.h> 00033 00034 //--------------------------------------------------------------------------- 00035 // Defines 00036 //--------------------------------------------------------------------------- 00037 #define XN_MASK_SCHEDULER "Scheduler" 00038 00039 //--------------------------------------------------------------------------- 00040 // Types 00041 //--------------------------------------------------------------------------- 00042 struct XnScheduler; // forward declaration 00043 typedef struct XnScheduler XnScheduler; 00044 00045 struct XnScheduledTask; // forward declaration 00046 typedef struct XnScheduledTask XnScheduledTask; 00047 00048 typedef void (XN_CALLBACK_TYPE* XnTaskCallbackFuncPtr)(void* pCallbackArg); 00049 00050 //--------------------------------------------------------------------------- 00051 // Exported Function Declaration 00052 //--------------------------------------------------------------------------- 00053 00059 XN_C_API XnStatus xnSchedulerStart(XnScheduler** ppScheduler); 00060 00066 XN_C_API XnStatus xnSchedulerShutdown(XnScheduler** ppScheduler); 00067 00077 XN_C_API XnStatus xnSchedulerAddTask(XnScheduler* pScheduler, XnUInt64 nInterval, XnTaskCallbackFuncPtr pCallback, void* pCallbackArg, XnScheduledTask** ppTask); 00078 00085 XN_C_API XnStatus xnSchedulerRemoveTask(XnScheduler* pScheduler, XnScheduledTask** ppTask); 00086 00094 XN_C_API XnStatus xnSchedulerRescheduleTask(XnScheduler* pScheduler, XnScheduledTask* pTask, XnUInt64 nInterval); 00095 00096 #endif //_XN_SCHEDULER_H_