This file is indexed.

/usr/include/kdevplatform/interfaces/iruncontroller.h is in kdevelop-dev 4:5.2.1-1ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
/* This file is part of KDevelop
Copyright 2007-2008 Hamish Rodda <rodda@kde.org>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/

#ifndef KDEVPLATFORM_IRUNCONTROLLER_H
#define KDEVPLATFORM_IRUNCONTROLLER_H

#include <kjobtrackerinterface.h>

#include "interfacesexport.h"

class KJob;

namespace KDevelop
{
class IProject;
class ILaunchMode;
class ILaunchConfiguration;
class LaunchConfigurationType;

/**
 * The main controller for running processes.
 */
class KDEVPLATFORMINTERFACES_EXPORT IRunController : public KJobTrackerInterface
{
    Q_OBJECT
    Q_ENUMS(State)
public:
    ///Constructor.
    explicit IRunController(QObject *parent);

    /**
     * Interrogate the current managed jobs
     */
    virtual QList<KJob*> currentJobs() const = 0;

    /**
     * An enumeration of the possible states for the run controller.
     */
    enum State {
        Idle     /**< No processes are currently running */,
        Running  /**< processes are currently running */
    };

    /**
     * Get a list of all launch modes that the app knows
     * @returns a list of registered launch modes
     */
    virtual QList<ILaunchMode*> launchModes() const = 0;

    /**
     * Get a list of all available launch configurations
     */
    virtual QList<ILaunchConfiguration*> launchConfigurations() const = 0;

    /**
     * Get a specific launch mode based using its \a id
     * @param id the identifier of the launchmode to get
     * @returns launch mode for the given id or 0 if no such mode is known
     */
    virtual ILaunchMode* launchModeForId( const QString& id ) const = 0;
    
    /**
     * add @p mode to the list of registered launch modes
     * @param mode the mode to be registered
     */
    virtual void addLaunchMode( ILaunchMode* mode ) = 0;
    
    /**
     * remove @p mode from the list of registered launch modes
     * @param mode the mode to be unregistered
     */
    virtual void removeLaunchMode( ILaunchMode* mode ) = 0;

    /**
     * Get a list of all configuration types that are registered
     * @returns a list of run configuration types
     */
    virtual QList<LaunchConfigurationType*> launchConfigurationTypes() const = 0;

    
    /**
     * Adds @p type to the list of known run config types
     * @param type the new run configuration type
     */
    virtual void addConfigurationType( LaunchConfigurationType* type ) = 0;

    /**
     * Removes @p type from the list of known run config types
     * @param type run configuration type that should be removed
     */
    virtual void removeConfigurationType( LaunchConfigurationType* type ) = 0;
    
    /**
     * Executes the default launch in the given mode
     * @param runMode the launch mode to start with
     */
    virtual void executeDefaultLaunch( const QString& runMode ) = 0;

    virtual KJob* execute(const QString& launchMode, ILaunchConfiguration* launch) = 0;

    /**
     * tries to find a launch config type for the given @p id
     * @param id the id of the launch configuration type to search
     * @returns the launch configuration type if found, or 0 otherwise
     */
    virtual LaunchConfigurationType* launchConfigurationTypeForId( const QString& id ) = 0;
    
    /**
     * Creates a new launch configuration in the given project or in the session if no project
     * was provided using the given launch configuration type and launcher. The configuration 
     * is also added to the list of configurations in the runcontroller.
     * 
     * @param type the launch configuration type to be used for the new config
     * @param launcher the mode and id of the launcher to be used in the config
     * @param project the project in which the launch configuration should be stored
     * @param name the name of the new launch configuration, if this is empty a new default name will be generated
     * @returns a new launch configuration
     */
    virtual ILaunchConfiguration* createLaunchConfiguration( LaunchConfigurationType* type,
                                                             const QPair<QString,QString>& launcher,
                                                             KDevelop::IProject* project = nullptr,
                                                             const QString& name = QString() ) = 0;

    /// Opens a dialog to setup new launch configurations, or to change the existing ones.
    virtual void showConfigurationDialog() const = 0;

public Q_SLOTS:
    /**
     * Request for all running processes to be killed.
     */
    virtual void stopAllProcesses() = 0;

Q_SIGNALS:
    /**
     * Notify that the state of the run controller has changed to \a {state}.
     */
    void runStateChanged(State state);

    /**
     * Notify that a new job has been registered.
     */
    void jobRegistered(KJob* job);

    /**
     * Notify that a job has been unregistered.
     */
    void jobUnregistered(KJob* job);
};

}

#endif // KDEVPLATFORM_IRUNCONTROLLER_H