X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fexternal%2Fprocess-cpp-minimal%2Fsrc%2Fcore%2Fposix%2Flinux%2Fproc%2Fprocess%2Fstat.cpp;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fexternal%2Fprocess-cpp-minimal%2Fsrc%2Fcore%2Fposix%2Flinux%2Fproc%2Fprocess%2Fstat.cpp;h=6cb4484ed4f08ad39e02636905305c35dee884b5;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/external/process-cpp-minimal/src/core/posix/linux/proc/process/stat.cpp b/src/type3_AndroidCloud/anbox-master/external/process-cpp-minimal/src/core/posix/linux/proc/process/stat.cpp new file mode 100644 index 0000000..6cb4484 --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/external/process-cpp-minimal/src/core/posix/linux/proc/process/stat.cpp @@ -0,0 +1,106 @@ +/* + * Copyright © 2013 Canonical Ltd. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License version 3, + * as published by the Free Software Foundation. + * + * This program 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authored by: Thomas Voß + */ + +#include + +#include + +#include +#include +#include + +namespace core +{ +namespace posix +{ +namespace linux +{ +namespace proc +{ +namespace process +{ +std::istream& operator>>(std::istream& in, State& state) +{ + char c; in >> c; state = static_cast(c); + return in; +} + +std::istream& operator>>(std::istream& in, Stat& stat) +{ + in >> stat.pid + >> stat.executable + >> stat.state + >> stat.parent + >> stat.process_group + >> stat.session_id + >> stat.tty_nr + >> stat.controlling_process_group + >> stat.kernel_flags + >> stat.minor_faults_count + >> stat.minor_faults_count_by_children + >> stat.major_faults_count + >> stat.major_faults_count_by_children + >> stat.time.user + >> stat.time.system + >> stat.time.user_for_children + >> stat.time.system_for_children + >> stat.priority + >> stat.nice + >> stat.thread_count + >> stat.time_before_next_sig_alarm + >> stat.start_time + >> stat.size.virt + >> stat.size.resident_set + >> stat.size.resident_set_limit + >> stat.addresses.start_code + >> stat.addresses.end_code + >> stat.addresses.start_stack + >> stat.addresses.stack_pointer + >> stat.addresses.instruction_pointer + >> stat.signals.pending + >> stat.signals.blocked + >> stat.signals.ignored + >> stat.signals.caught + >> stat.channel + >> stat.swap_count + >> stat.swap_count_children + >> stat.exit_signal + >> stat.cpu_count + >> stat.realtime_priority + >> stat.scheduling_policy + >> stat.aggregated_block_io_delays + >> stat.guest_time + >> stat.guest_time_children; + + return in; +} + +const posix::Process& operator>>(const posix::Process& process, Stat& stat) +{ + std::stringstream ss; ss << "/proc/" << process.pid() << "/stat"; + std::ifstream in(ss.str()); + + in >> stat; + + return process; +} +} +} +} +} +}