7b2e26084aabf755982115dac9e30df2c706e9cf
[platform/core/appfw/pkgmgr-info.git] / src / common / parcel / query_parcelable.hh
1 #ifndef QUERY_PARCELABLE_HH_
2 #define QUERY_PARCELABLE_HH_
3
4 #include "abstract_parcelable.hh"
5 #include "abstract_db_handler.hh"
6
7 #include <vector>
8
9 #include "pkgmgrinfo_private.h"
10
11 using namespace pkgmgr_common::database;
12
13 namespace pkgmgr_common {
14 namespace parcel {
15
16 #ifndef EXPORT_API
17 #define EXPORT_API __attribute__((visibility("default")))
18 #endif
19
20 class EXPORT_API QueryParcelable : public AbstractParcelable {
21  public:
22   class EXPORT_API Factory : IFactory {
23    public:
24     std::unique_ptr<AbstractParcelable> CreateParcel();
25   };
26
27   QueryParcelable();
28   QueryParcelable(uid_t uid, std::string query, AbstractDBHandler::DBType db_type, AbstractDBHandler::OperationType op_type);
29   const std::string& GetQuery();
30   AbstractDBHandler::DBType GetDBType();
31   AbstractDBHandler::OperationType GetOpType();
32
33   void WriteToParcel(tizen_base::Parcel* parcel) const override;
34   void ReadFromParcel(tizen_base::Parcel* parcel) override;
35
36  private:
37   std::string query_;
38   AbstractDBHandler::DBType db_type_;
39   AbstractDBHandler::OperationType op_type_;
40 };
41
42 }  // namespace parcel
43 }  // namespace pkgmgr_common
44
45 #endif  // QUERY_PARCELABLE_HH_