X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=pws%2Flauncher.h;fp=pws%2Flauncher.h;h=62f5040455ebac62d00e9337f09b62a4874ca2ba;hb=cd39ff2c9987904617c53685a75f5fe89513ce81;hp=0000000000000000000000000000000000000000;hpb=85a1f5f0305fda98d7077bab78070456bcd680ac;p=apps%2Fonscreenapp.git diff --git a/pws/launcher.h b/pws/launcher.h new file mode 100644 index 0000000..62f5040 --- /dev/null +++ b/pws/launcher.h @@ -0,0 +1,70 @@ +/* + * 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