tizen beta release
[framework/messaging/email-service.git] / ipc / stub / include / ipc-task-manager.h
1 /*
2 *  email-service
3 *
4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5 *
6 * Contact: Kyuho Jo <kyuho.jo@samsung.com>, Sunghyun Kwon <sh0701.kwon@samsung.com>
7
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 */
21
22
23 #ifndef _IPC_TASK_MANAGER_H_
24 #define _IPC_TASK_MANAGER_H_
25
26 #include <unistd.h>
27 #include <pthread.h>
28 #include "ipc-task.h"
29 #include "ipc-queue.h"
30 #include "emf-mutex.h"
31
32 #define IPC_TASK_MAX    64
33
34
35 class ipcEmailTaskManager
36 {
37 public:
38         ipcEmailTaskManager();
39         virtual ~ipcEmailTaskManager();
40
41 private:
42         ipcEmailQueue m_TaskQueue;
43         pthread_t       m_hTaskThread;
44         bool            m_bStopFlag;
45         Mutex mx;
46         CndVar cv;
47
48 public:
49         bool StartTaskThread();
50         bool StopTaskThread();
51
52         bool CreateTask(unsigned char* a_pTaskStream, int a_nResponseChannel);
53         bool DoTask();
54 private:
55         static void* TaskThreadProc(void *a_pOwner);
56 };
57
58 #endif  /* _IPC_TASK_MANAGER_H_ */
59
60