KCoreAddons

klistopenfilesjob.h
1 /*
2  This file is part of the KDE project
3 
4  SPDX-FileCopyrightText: 2010 Jacopo De Simoi <[email protected]>
5  SPDX-FileCopyrightText: 2014 Lukáš Tinkl <[email protected]>
6  SPDX-FileCopyrightText: 2016 Kai Uwe Broulik <[email protected]>
7  SPDX-FileCopyrightText: 2019 David Hallas <[email protected]>
8 
9  SPDX-License-Identifier: LGPL-2.0-only
10 */
11 
12 #ifndef KLISTOPENFILESJOB_H
13 #define KLISTOPENFILESJOB_H
14 
15 #include <QObject>
16 #include <QString>
17 #include <kcoreaddons_export.h>
18 #include <kjob.h>
19 #include <kprocesslist.h>
20 
21 #include <memory>
22 
23 class KListOpenFilesJobPrivate;
24 
25 /**
26  * @brief Provides information about processes that have open files in a given path or subdirectory of path.
27  *
28  * When start() is invoked it starts to collect information about processes that have any files open in path or a
29  * subdirectory of path. When it is done the KJob::result signal is emitted and the result can be retrieved with the
30  * processInfoList function.
31  *
32  * On Unix like systems the lsof utility is used to get the list of processes.
33  * On Windows the listing always fails with error code NotSupported.
34  *
35  * @since 5.63
36  */
37 class KCOREADDONS_EXPORT KListOpenFilesJob : public KJob
38 {
39  Q_OBJECT
40 public:
41  explicit KListOpenFilesJob(const QString &path);
42  ~KListOpenFilesJob() override;
43  void start() override;
44  /**
45  * @brief Returns the list of processes with open files for the requested path
46  * @return The list of processes with open files for the requested path
47  */
48  KProcessList::KProcessInfoList processInfoList() const;
49 
50 public:
51  /**
52  * @brief Special error codes emitted by KListOpenFilesJob
53  *
54  * The KListOpenFilesJob uses the error codes defined here besides the standard error codes defined by KJob
55  */
56  enum class Error {
57  /*** Indicates that the platform doesn't support listing open files by processes */
58  NotSupported = KJob::UserDefinedError + 1,
59  /*** Internal error has ocurred */
60  InternalError = KJob::UserDefinedError + 2,
61  /*** The specified path does not exist */
62  DoesNotExist = KJob::UserDefinedError + 11,
63  };
64 
65 private:
66  friend class KListOpenFilesJobPrivate;
67  std::unique_ptr<KListOpenFilesJobPrivate> const d;
68 };
69 
70 #endif // KLISTOPENFILESJOB_H
Error
Special error codes emitted by KListOpenFilesJob.
Provides information about processes that have open files in a given path or subdirectory of path...
virtual Q_SCRIPTABLE void start()=0
Starts the job asynchronously.
The base class for all jobs.
Definition: kjob.h:76
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 10 2021 23:01:55 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.