/* * Copyright (c) 2020 Collabora Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef LAUNCHER_H #define LAUNCHER_H #include #include #include #include #include #include #include "pws.h" class Launcher : public QObject { Q_OBJECT public: Launcher(const QString &sock_name, QObject *parent = nullptr) : QObject(parent), afm_sock_name(sock_name) { pws = nullptr; connection_set = false; } ~Launcher() { destroy(); } // call this before to any start-up int setup_pws_connection(void); bool connection_is_set(void); public slots: int start(const QString &app); bool terminate(const QString &app); bool is_running(const QString &app); size_t get_list_runnables(QString &data); private: struct pws_data_source *pws; bool connection_set; QString afm_sock_name; QHash applications; // stores the apps started void destroy(void) { pws_data_source_destroy(pws); } }; #endif // LAUNCHER_H