Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ProcessResolver.h')
-rw-r--r--src/ProcessResolver.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/ProcessResolver.h b/src/ProcessResolver.h
new file mode 100644
index 000000000..59ada3a1c
--- /dev/null
+++ b/src/ProcessResolver.h
@@ -0,0 +1,40 @@
+// Copyright 2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_PROCESS_RESOLVER_H_
+#define MUMBLE_PROCESS_RESOLVER_H_
+
+#include <stdint.h>
+#include <QtCore/QVector>
+
+/// This ProcessResolver can be used to get a QVector of running process names and associated PIDs on multiple platforms.
+/// This object is by no means thread-safe!
+class ProcessResolver {
+ protected:
+ /// The vector for the pointers to the process names
+ QVector<const char*> m_processNames;
+ /// The vector for the process PIDs
+ QVector<uint64_t> m_processPIDs;
+
+ /// Deletes all names currently stored in processNames and clears processNames and processPIDs
+ void freeAndClearData();
+ /// The OS specific implementation of filling in details about running process names and PIDs
+ void doResolve();
+ public:
+ /// @param resolveImmediately Whether the constructor should directly invoke ProcesResolver::resolve()
+ ProcessResolver(bool resolveImmediately = true);
+ virtual ~ProcessResolver();
+
+ /// Resolves the namaes and PIDs of the running processes
+ void resolve();
+ /// Gets a reference to the stored process names
+ const QVector<const char*>& getProcessNames() const;
+ /// Gets a reference to the stored process PIDs (corresponding to the names returned by ProcessResolver::getProcessNames())
+ const QVector<uint64_t>& getProcessPIDs() const;
+ /// @returns The amount of processes that have been resolved by this object
+ size_t amountOfProcesses() const;
+};
+
+#endif // MUMBLE_PROCESS_RESOLVER_H_