1 // Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by an apache-2.0 license that can be
3 // found in the LICENSE file.
5 #include "query_request_handler.hh"
6 #include "../common/parcel/parcelable_factory.hh"
7 #include "../common/parcel/query_parcelable.hh"
8 #include "../common/database/query_handler.hh"
12 using namespace pkgmgr_common::parcel;
13 using namespace pkgmgr_common::database;
15 namespace pkgmgr_server {
16 namespace request_handler {
18 bool QueryRequestHandler::HandleRequest(unsigned char* data, int size,
20 auto abstract_parcel = ParcelableFactory::GetInst().CreateParcel(data, size);
22 if (abstract_parcel == nullptr ||
23 abstract_parcel->GetType() != ParcelableType::Query)
26 auto* parcel = dynamic_cast<QueryParcelable*>(abstract_parcel.get());
27 if (parcel == nullptr) return false;
29 QueryHandler db(parcel->GetUid());
31 db.SetQuery(parcel->GetQuery());
32 if (db.Execute() == false) return false;
34 // TODO: result_ = std::make_shared<ResultParcelable>(db.GetString());
39 std::vector<uint8_t> QueryRequestHandler::GetResult() {
40 tizen_base::Parcel parcel;
42 result_->WriteToParcel(&parcel);
43 std::vector<uint8_t> raw = parcel.GetRaw();
48 } // namespace request_handler
49 } // namespace pkgmgr_server