1 /*
2  * Copyright (c) 2023 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 OHOS_ABILITY_RUNTIME_CHILD_PROCESS_INFO_H
17 #define OHOS_ABILITY_RUNTIME_CHILD_PROCESS_INFO_H
18 
19 #include <string>
20 
21 #include "parcel.h"
22 
23 namespace OHOS {
24 namespace AppExecFwk {
25 
26 constexpr int32_t CHILD_PROCESS_TYPE_NOT_CHILD = -1;
27 constexpr int32_t CHILD_PROCESS_TYPE_JS = 0;
28 constexpr int32_t CHILD_PROCESS_TYPE_NATIVE = 1;
29 constexpr int32_t CHILD_PROCESS_TYPE_ARK = 2;
30 constexpr int32_t CHILD_PROCESS_TYPE_NATIVE_ARGS = 3;
31 
32 struct ChildProcessInfo : public Parcelable {
33     int32_t pid = 0;
34     int32_t hostPid = 0;
35     int32_t uid = -1;
36     int32_t hostUid = -1;
37     int32_t userId = -1;
38     int32_t childProcessType = CHILD_PROCESS_TYPE_JS;
39     std::string bundleName;
40     std::string processName;
41     std::string srcEntry;
42     std::string entryFunc;
43     std::string entryParams;
44     bool jitEnabled = false;
45     bool isDebugApp = true;
46     bool isStartWithDebug = false;
47     bool isStartWithNative = false;
48 
49     bool ReadFromParcel(Parcel &parcel);
50     virtual bool Marshalling(Parcel &parcel) const override;
51     static ChildProcessInfo *Unmarshalling(Parcel &parcel);
52 };
53 }  // namespace AppExecFwk
54 }  // namespace OHOS
55 
56 #endif  // OHOS_ABILITY_RUNTIME_CHILD_PROCESS_INFO_H
57