2 * Copyright (c) 2024 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 LAUNCHPAD_PROCESS_POOL_LOADER_MOUNT_HH_
18 #define LAUNCHPAD_PROCESS_POOL_LOADER_MOUNT_HH_
20 #include <sys/types.h>
26 #include <app_info.hh>
30 #include "launchpad-process-pool/executor.hh"
34 class LoaderMount : public Executor::Delegator, public Executor {
37 virtual ~LoaderMount();
41 void HandleSigchld(pid_t pid);
43 int Mount(pid_t pid, const AppInfo* app_info);
46 void OnExecution() override;
47 int CreatePipe(int (*pipe_fd)[2]);
48 int Write(const tizen_base::Parcel& parcel);
49 int Read(tizen_base::Parcel* parcel);
50 int ProcessRequests();
53 pid_t launchpad_ppid_ = -1;
55 std::unique_ptr<Socket> read_socket_;
56 std::unique_ptr<Socket> write_socket_;
59 } // namespace launchpad
61 #endif // LAUNCHPAD_PROCESS_POOL_LOADER_MOUNT_HH_