Store smack deny logs into files
[platform/core/security/security-manager.git] / src / server2 / service / exec-path.h
1 /*
2  *  Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *  Contact: Bumjin Im <bj.im@samsung.com>
5  *
6  *  Licensed under the Apache License, Version 2.0 (the "License");
7  *  you may not use this file except in compliance with the License.
8  *  You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License
17  */
18 /*
19  * @file        exec-path.h
20  * @author      Zofia Abramowska (z.abramowska@samsung.com)
21  * @version     1.0
22  * @brief       Implementation of api-exec-path
23  */
24
25 #ifndef _SECURITY_SERVER_EXEC_PATH_
26 #define _SECURITY_SERVER_EXEC_PATH_
27
28 #include <service-thread.h>
29 #include <generic-socket-manager.h>
30
31 #include <message-buffer.h>
32
33 namespace SecurityServer {
34
35 class ExecPathService
36   : public SecurityServer::GenericSocketService
37   , public SecurityServer::ServiceThread<ExecPathService>
38 {
39 public:
40     typedef std::map<int, MessageBuffer> MessageBufferMap;
41
42     ServiceDescriptionVector GetServiceDescription();
43
44     DECLARE_THREAD_EVENT(AcceptEvent, accept)
45     DECLARE_THREAD_EVENT(WriteEvent, write)
46     DECLARE_THREAD_EVENT(ReadEvent, process)
47     DECLARE_THREAD_EVENT(CloseEvent, close)
48
49     void accept(const AcceptEvent &event);
50     void write(const WriteEvent &event);
51     void process(const ReadEvent &event);
52     void close(const CloseEvent &event);
53 private:
54     bool processOne(const ConnectionID &conn, MessageBuffer &buffer);
55     MessageBufferMap m_messageBufferMap;
56 };
57
58 } // namespace SecurityServer
59
60 #endif // _SECURITY_SERVER_EXEC_PATH_