2 * Copyright (c) 2022 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 AULCTL_BOOT_SEQUENCE_APP_INFO_HH_
18 #define AULCTL_BOOT_SEQUENCE_APP_INFO_HH_
20 #include <bundle_cpp.h>
28 namespace aul::internal {
30 namespace boot_sequence {
36 Builder& SetAppId(const tizen_base::Bundle& args);
37 Builder& SetUid(const tizen_base::Bundle& args);
38 Builder& SetPriority(const tizen_base::Bundle& args);
39 Builder& SetAfter(const tizen_base::Bundle& args);
40 Builder& SetBefore(const tizen_base::Bundle& args);
41 Builder& SetRequires(const tizen_base::Bundle& args);
42 Builder& SetConflicts(const tizen_base::Bundle& args);
43 Builder& SetArgs(const tizen_base::Bundle& args);
44 Builder& SetBackgroundLaunch(const tizen_base::Bundle& args);
45 Builder& SetWaitUntilReady(const tizen_base::Bundle& args);
46 Builder& SetTimeout(const tizen_base::Bundle& args);
47 Builder& SetActiveState(const tizen_base::Bundle& args);
48 Builder& SetSubState(const tizen_base::Bundle& args);
49 Builder& SetBeginTimestamp(const tizen_base::Bundle& args);
50 Builder& SetEndTimestamp(const tizen_base::Bundle& args);
51 Builder& SetSocketReadyTimestamp(const tizen_base::Bundle& args);
52 Builder& SetTerminatedTimestamp(const tizen_base::Bundle& args);
53 Builder& SetStatusMessage(const tizen_base::Bundle& args);
55 AppInfo* Build() const;
61 std::set<std::string> after_;
62 std::set<std::string> before_;
63 std::set<std::string> requires_;
64 std::set<std::string> conflicts_;
65 tizen_base::Bundle args_;
66 std::string active_state_;
67 std::string sub_state_;
68 std::string begin_timestamp_;
69 std::string end_timestamp_;
70 std::string socket_ready_timestamp_;
71 std::string terminated_timestamp_;
72 bool background_launch_;
73 bool wait_until_ready_;
74 unsigned int timeout_;
75 std::string status_msg_;
78 AppInfo(std::string appid, uid_t uid, int priority,
79 std::set<std::string> after, std::set<std::string> before,
80 std::set<std::string> requires, std::set<std::string> conflicts,
81 tizen_base::Bundle args,
82 std::string active_state, std::string sub_state,
83 std::string begin_timestamp, std::string end_timestamp,
84 std::string status_msg,
85 std::string socket_ready_timestamp, std::string terminated_timestamp,
86 bool background_launch, bool wait_until_ready, unsigned int timeout);
88 const std::string& GetAppId() const;
90 int GetPriority() const;
92 bool AfterContains(const std::string& appid);
93 const std::set<std::string>& AfterGet() const;
95 bool BeforeContains(const std::string& appid);
96 const std::set<std::string>& BeforeGet() const;
98 bool RequiresContains(const std::string& appid);
99 const std::set<std::string>& RequiresGet() const;
101 bool ConflictsContains(const std::string& appid);
102 const std::set<std::string>& ConflictsGet() const;
104 const tizen_base::Bundle& GetArgs() const;
105 bool IsBackgroundLaunch() const;
106 bool WaitUntilReady() const;
107 unsigned int GetTimeout() const;
108 const std::string& GetActiveState() const;
109 const std::string& GetSubState() const;
110 const std::string& GetBeginTimestamp() const;
111 const std::string& GetEndTimestamp() const;
112 const std::string& GetSocketReadyTimestamp() const;
113 const std::string& GetTerminatedTimestamp() const;
114 const std::string& GetStatusMessage() const;
120 std::set<std::string> after_;
121 std::set<std::string> before_;
122 std::set<std::string> requires_;
123 std::set<std::string> conflicts_;
124 std::vector<std::string> required_by_;
125 tizen_base::Bundle args_;
126 std::string active_state_;
127 std::string sub_state_;
128 std::string begin_timestamp_;
129 std::string end_timestamp_;
130 std::string socket_ready_timestamp_;
131 std::string terminated_timestamp_;
132 bool background_launch_;
133 bool wait_until_ready_;
134 unsigned int timeout_;
135 std::string status_msg_;
138 } // namespace boot_sequence
140 } // namespace aul::internal
142 #endif // AULCTL_BOOT_SEQUENCE_APP_INFO_HH_