1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef FOUNDATION_BUNDLEMANAGER_BUNDLE_FRAMEWORK_INNERKITS_APPEXECFWK_CORE_INCLUDE_QUICK_FIX_RESULT_INFO_H
17 #define FOUNDATION_BUNDLEMANAGER_BUNDLE_FRAMEWORK_INNERKITS_APPEXECFWK_CORE_INCLUDE_QUICK_FIX_RESULT_INFO_H
18 
19 #include <string>
20 #include <vector>
21 
22 #include "parcel.h"
23 #include "quick_fix/appqf_info.h"
24 
25 namespace OHOS {
26 namespace AppExecFwk {
27 struct QuickFixResult : public Parcelable {
28     QuickFixResult() = default;
29     virtual ~QuickFixResult() = default;
30 
31     virtual int32_t GetResCode() = 0;
32     virtual void SetResCode(int32_t resCode) = 0;
33     virtual std::string ToString() const = 0;
34 };
35 
36 struct DeployQuickFixResult final : public QuickFixResult {
37     int32_t resultCode = -1;
38     std::string bundleName;
39     uint32_t bundleVersionCode = 0; // bundle version code
40     uint32_t patchVersionCode = 0; // patch version code
41     bool isSoContained = false;
42     QuickFixType type = QuickFixType::UNKNOWN;
43     std::vector<std::string> moduleNames;
44 
45     DeployQuickFixResult() = default;
46     virtual ~DeployQuickFixResult() = default;
47 
48     virtual int32_t GetResCode() override;
49     virtual void SetResCode(int32_t resCode) override;
50     virtual std::string ToString() const override;
51 
52     bool ReadFromParcel(Parcel &parcel);
53     virtual bool Marshalling(Parcel &parcel) const override;
54     static DeployQuickFixResult *Unmarshalling(Parcel &parcel);
55 };
56 
57 struct SwitchQuickFixResult final : public QuickFixResult {
58     int32_t resultCode = -1;
59     std::string bundleName;
60 
61     SwitchQuickFixResult() = default;
62     virtual ~SwitchQuickFixResult() = default;
63 
64     virtual int32_t GetResCode() override;
65     virtual void SetResCode(int32_t resCode) override;
66     virtual std::string ToString() const override;
67 
68     bool ReadFromParcel(Parcel &parcel);
69     virtual bool Marshalling(Parcel &parcel) const override;
70     static SwitchQuickFixResult *Unmarshalling(Parcel &parcel);
71 };
72 
73 struct DeleteQuickFixResult final : public QuickFixResult {
74     int32_t resultCode = -1;
75     std::string bundleName;
76 
77     DeleteQuickFixResult() = default;
78     virtual ~DeleteQuickFixResult() = default;
79 
80     virtual int32_t GetResCode() override;
81     virtual void SetResCode(int32_t resCode) override;
82     virtual std::string ToString() const override;
83 
84     bool ReadFromParcel(Parcel &parcel);
85     virtual bool Marshalling(Parcel &parcel) const override;
86     static DeleteQuickFixResult *Unmarshalling(Parcel &parcel);
87 };
88 } // AppExecFwk
89 } // OHOS
90 #endif // FOUNDATION_BUNDLEMANAGER_BUNDLE_FRAMEWORK_INNERKITS_APPEXECFWK_CORE_INCLUDE_QUICK_FIX_RESULT_INFO_H