added cacheadapter interface and memorycache of notification.
[platform/upstream/iotivity.git] / service / notification / src / provider / NSProviderScheduler.h
1 //******************************************************************\r
2 //\r
3 // Copyright 2016 Samsung Electronics All Rights Reserved.\r
4 //\r
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
6 //\r
7 // Licensed under the Apache License, Version 2.0 (the "License");\r
8 // you may not use this file except in compliance with the License.\r
9 // You may obtain a copy of the License at\r
10 //\r
11 //      http://www.apache.org/licenses/LICENSE-2.0\r
12 //\r
13 // Unless required by applicable law or agreed to in writing, software\r
14 // distributed under the License is distributed on an "AS IS" BASIS,\r
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 // See the License for the specific language governing permissions and\r
17 // limitations under the License.\r
18 //\r
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
20 \r
21 #ifndef _PROVIDER_SCHEDULER_H_\r
22 #define _PROVIDER_SCHEDULER_H_\r
23 \r
24 #include <stdio.h>\r
25 #include <pthread.h>\r
26 #include <semaphore.h>\r
27 #include <oic_malloc.h>\r
28 #include <stdbool.h>\r
29 #include "ocstack.h"\r
30 #include "NSCommon.h"\r
31 #include "NSConstants.h"\r
32 #include "NSStructs.h"\r
33 #include "logger.h"\r
34 \r
35 extern NSTask* NSHeadMsg[THREAD_COUNT]; // Current MSG;\r
36 extern NSTask* NSTailMsg[THREAD_COUNT]; // Recently MSG;\r
37 \r
38 extern pthread_t NSThread[THREAD_COUNT];\r
39 extern pthread_mutex_t NSMutex[THREAD_COUNT];\r
40 extern sem_t NSSemaphore[THREAD_COUNT];\r
41 extern bool NSIsRunning[THREAD_COUNT];\r
42 \r
43 extern void * NSResponseSchedule(void *ptr);\r
44 extern void * NSDiscoverySchedule(void *ptr);\r
45 extern void * NSSubScriptionSchedule(void *ptr);\r
46 extern void * NSNotificationSchedule(void *ptr);\r
47 \r
48 void NSSetList();\r
49 bool NSInitScheduler();\r
50 bool NSStartScheduler();\r
51 bool NSStopScheduler();\r
52 void NSPushQueue(NSSchedulerType, NSTaskType, void*);\r
53 \r
54 #endif /* _PROVIDER_SCHEDULER_H_ */\r