diff options
| author | Ted Ross <tross@apache.org> | 2009-02-24 14:15:28 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2009-02-24 14:15:28 +0000 |
| commit | 1b3a5d652c92cf5b091964110f4ba1251acbf9f4 (patch) | |
| tree | 31bde11f895d8750a67b6a43c5fe4aa6578ac308 /cpp/src/qpid/sys/posix | |
| parent | 29f3702dedf1753f350a412a6c026df72caa8534 (diff) | |
| download | qpid-python-1b3a5d652c92cf5b091964110f4ba1251acbf9f4.tar.gz | |
QPID-1676 - Added client process name and pid to connection object for management.
Supported in C++, Python, and Ruby clients.
Still needs to be added to the Java clients.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@747389 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/posix')
| -rwxr-xr-x | cpp/src/qpid/sys/posix/SystemInfo.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/cpp/src/qpid/sys/posix/SystemInfo.cpp b/cpp/src/qpid/sys/posix/SystemInfo.cpp index 938d4861c4..5d9eda605d 100755 --- a/cpp/src/qpid/sys/posix/SystemInfo.cpp +++ b/cpp/src/qpid/sys/posix/SystemInfo.cpp @@ -27,6 +27,9 @@ #include <arpa/inet.h> #include <stdio.h> #include <unistd.h> +#include <iostream> +#include <fstream> +#include <sstream> #ifndef HOST_NAME_MAX # define HOST_NAME_MAX 256 @@ -104,6 +107,27 @@ uint32_t SystemInfo::getParentProcessId() return (uint32_t) ::getppid(); } +string SystemInfo::getProcessName() +{ + uint32_t pid = getProcessId(); + string value; + + stringstream pathStream; + pathStream << "/proc/" << pid << "/status"; + ifstream input(pathStream.str().c_str()); + if (input.good()) { + while (!input.eof()) { + string key; + input >> key; + if (key == "Name:") { + input >> value; + break; + } + } + input.close(); + } + return value; +} }} // namespace qpid::sys |
