File indexing completed on 2024-04-28 04:36:30

0001 /*
0002     SPDX-FileCopyrightText: 2009 Andreas Pakulat <apaku@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_ILAUNCHCONFIGURATION_H
0008 #define KDEVPLATFORM_ILAUNCHCONFIGURATION_H
0009 
0010 #include "interfacesexport.h"
0011 
0012 class KConfigGroup;
0013 class QString;
0014 
0015 namespace KDevelop
0016 {
0017 
0018 class LaunchConfigurationType;
0019 class IProject;
0020 
0021 /**
0022  * A specific configuration to start a launchable, this could be a native
0023  * compiled application, or some script file or byte-compiled file or something else
0024  * Provides access to the various configurations, as well as their type and name
0025  */
0026 class KDEVPLATFORMINTERFACES_EXPORT ILaunchConfiguration
0027 {
0028 public:
0029     virtual ~ILaunchConfiguration();
0030 
0031     /**
0032      * Access to the configuration group for this launch configuration.
0033      * @returns the config to read values from
0034      */
0035     virtual const KConfigGroup config() const = 0;
0036     
0037     /**
0038      * Access to the configuration group for this launch configuration.
0039      * @returns the config to write to
0040      */
0041     virtual KConfigGroup config() = 0;
0042     
0043     /**
0044      * Each launch configuration has a type, which identifies which launcher and launch modes
0045      * are supported.
0046      * @returns the configuration type
0047      */
0048     virtual LaunchConfigurationType* type() const = 0;
0049     
0050     /**
0051      * The user-chosen name for the launch configuration.
0052      * @returns the config name.
0053      */
0054     virtual QString name() const = 0;
0055     
0056     /**
0057      * Provides access to the project where the launch config is stored.
0058      * @returns the project in which the configuration is stored or 0 if the configuration is stored globally
0059      */
0060     virtual IProject* project() const = 0;
0061 };
0062 
0063 }
0064 
0065 #endif
0066