ce175f9add362e3859073ca830fb0aaae37176d5
[platform/core/security/privacy-guard.git] / client / inc / PrivacyGuardClient.h
1 /*
2  * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16
17 #ifndef _PRIVACYGUARDCLIENT_H_
18 #define _PRIVACYGUARDCLIENT_H_
19
20 #include <string>
21 #include <mutex>
22 #include <list>
23 #include <vector>
24 #include <memory>
25 #include "PrivacyGuardTypes.h"
26 #include <sqlite3.h>
27
28 class SocketClient;
29
30 class EXTERN_API PrivacyGuardClient
31 {
32 private:
33         std::mutex m_dbMutex;
34         sqlite3* m_sqlHandler;
35         sqlite3_stmt* m_stmt;
36         bool m_bDBOpen;
37
38         static PrivacyGuardClient* m_pInstance;
39         static const std::string INTERFACE_NAME;
40
41         std::unique_ptr< SocketClient > m_pSocketClient;
42
43         static std::mutex m_singletonMutex;
44
45         PrivacyGuardClient();
46         ~PrivacyGuardClient();
47
48 public:
49         static PrivacyGuardClient* getInstance(void);
50
51         virtual void openSqliteDB(void);
52
53         int PgAddMonitorPolicyOffline(const int userId, const std::string packageId, const std::list < std::string > privacyList, bool monitorPolicy);
54
55         int PgAddPrivacyAccessLog(const int userId, const std::string packageId, const std::string privacyId, const time_t accessTime);
56
57         int PgAddMonitorPolicy(const int userId, const std::string packageId, const std::list < std::string >& list, int monitorPolicy);
58
59         int PgAddMonitorPolicy(const int userId, const std::string packageId, const std::string privacyId, int monitorPolicy);
60
61         int PgDeleteAllLogs(void);
62
63         int PgDeleteLogsByPackageId(const std::string packageId);
64
65         int PgDeleteMonitorPolicyByPackageId(const std::string packageId);
66
67         int PgForeachTotalPrivacyCountOfPackage(const int userId, const int startDate, const int endDate, std::list < std::pair <std::string, int > > & packageInfoList) const;
68
69         int PgForeachTotalPrivacyCountOfPrivacy(const int userId, const int startDate, const int endDate, std::list < std::pair <std::string, int > > & privacyInfoList) const;
70
71         int PgForeachPrivacyCountByPrivacyId(const int userId, const int startDate, const int endDate, const std::string privacyId, std::list < std::pair <std::string, int > > & packageInfoList) const;
72
73         int PgForeachPrivacyCountByPackageId(const int userId, const int startDate, const int endDate, const std::string packageId, std::list < std::pair <std::string, int > > & privacyInfoList) const;
74
75         int PgForeachPackageIdUsingPrivacy(const int userId, std::list < std::string > & packageList) const;
76
77         int PgForeachPackageInfoByPrivacyId(const int userId, const std::string privacyId, std::list < package_data_s > & packageList) const;
78
79         int PgForeachMonitorPolicyByPackageId(const int userId, const std::string packageId, std::list <privacy_data_s> & privacyInfoList) const;
80
81         int PgGetMonitorPolicy(const int userId, const std::string packageId, const std::string privacyId, int& monitorPolicy) const;
82
83         int PgGetAllMonitorPolicy(std::list < std::pair < std::string, int > > & monitorPolicyList) const;
84
85         int PgCheckPrivacyPackage(const int userId, const std::string packageId, bool &isPrivacyPackage);
86
87         int PgUpdateMonitorPolicy(const int userId, const std::string packageId, const std::string privacyId, const int monitorPolicy);
88
89         int PgGetMainMonitorPolicy(const int userId, int &mainMonitorPolicy) const;
90
91         int PgUpdateMainMonitorPolicy(const int userId, const int mainMonitorPolicy);
92 };
93
94 #endif // _PRIVACYGUARDCLIENT_H_