2 * Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #ifndef _PRIVACYGUARDCLIENT_H_
18 #define _PRIVACYGUARDCLIENT_H_
25 #include "PrivacyGuardTypes.h"
30 class EXTERN_API PrivacyGuardClient
34 sqlite3* m_sqlHandler;
38 static PrivacyGuardClient* m_pInstance;
39 static const std::string INTERFACE_NAME;
41 std::unique_ptr< SocketClient > m_pSocketClient;
43 static std::mutex m_singletonMutex;
46 ~PrivacyGuardClient();
49 static PrivacyGuardClient* getInstance(void);
51 virtual void openSqliteDB(void);
53 int PgAddMonitorPolicyOffline(const int userId, const std::string packageId, const std::list < std::string > privacyList, bool monitorPolicy);
55 int PgAddPrivacyAccessLog(const int userId, const std::string packageId, const std::string privacyId, const time_t accessTime);
57 int PgAddMonitorPolicy(const int userId, const std::string packageId, const std::list < std::string >& list, int monitorPolicy);
59 int PgAddMonitorPolicy(const int userId, const std::string packageId, const std::string privacyId, int monitorPolicy);
61 int PgDeleteAllLogs(void);
63 int PgDeleteLogsByPackageId(const std::string packageId);
65 int PgDeleteMonitorPolicyByPackageId(const std::string packageId);
67 int PgForeachTotalPrivacyCountOfPackage(const int userId, const int startDate, const int endDate, std::list < std::pair <std::string, int > > & packageInfoList) const;
69 int PgForeachTotalPrivacyCountOfPrivacy(const int userId, const int startDate, const int endDate, std::list < std::pair <std::string, int > > & privacyInfoList) const;
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;
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;
75 int PgForeachPackageIdUsingPrivacy(const int userId, std::list < std::string > & packageList) const;
77 int PgForeachPackageInfoByPrivacyId(const int userId, const std::string privacyId, std::list < package_data_s > & packageList) const;
79 int PgForeachMonitorPolicyByPackageId(const int userId, const std::string packageId, std::list <privacy_data_s> & privacyInfoList) const;
81 int PgGetMonitorPolicy(const int userId, const std::string packageId, const std::string privacyId, int& monitorPolicy) const;
83 int PgGetAllMonitorPolicy(std::list < std::pair < std::string, int > > & monitorPolicyList) const;
85 int PgCheckPrivacyPackage(const int userId, const std::string packageId, bool &isPrivacyPackage);
87 int PgUpdateMonitorPolicy(const int userId, const std::string packageId, const std::string privacyId, const int monitorPolicy);
89 int PgGetMainMonitorPolicy(const int userId, int &mainMonitorPolicy) const;
91 int PgUpdateMainMonitorPolicy(const int userId, const int mainMonitorPolicy);
94 #endif // _PRIVACYGUARDCLIENT_H_