From 240752d800d98c4a3dd9a7048ea1d7d1b0c5f600 Mon Sep 17 00:00:00 2001 From: "Pawel \"l0ner\" Soltys" Date: Thu, 19 Feb 2015 19:47:45 +0100 Subject: [PATCH] Code Refactornig Since the headers for cpu, memory and load functions are virtually the same for all platforms, I've decided to move them into common/ dir and do some refacotring: * removed per-platform header files * implemented get_cpu_count() function across all platforms. We are using it cpu on every platform, yet not on every one this was implemented as a separate function. * removed platform detection through preprocessor from main: we don't need this there anymore, since the headers are common for all platforms. CMake will handle setting of correct source files for us now. * Unified used defines for CPU states across all platforms and made linux use them. Added some platform detection to cpu.h in order to set them correctly across the platforms. * moved getsysctl.h to common/ dir, since it's used on Net and Free BSD, and thus become a common include. --- {openbsd => common}/cpu.h | 28 ++++++++++++++++++++++------ {freebsd => common}/getsysctl.h | 0 {freebsd => common}/load.h | 0 common/main.cc | 29 +++-------------------------- {freebsd => common}/memory.h | 0 freebsd/cpu.cc | 12 ++++++++++-- freebsd/cpu.h | 31 ------------------------------- freebsd/load.cc | 5 ++--- linux/cpu.cc | 14 +++++++++++--- linux/cpu.h | 24 ------------------------ linux/load.cc | 6 ++---- linux/load.h | 26 -------------------------- linux/memory.h | 26 -------------------------- netbsd/cpu.cc | 14 +++++++++++--- netbsd/cpu.h | 31 ------------------------------- netbsd/memory.h | 26 -------------------------- openbsd/cpu.cc | 4 ++-- openbsd/load.cc | 5 +---- openbsd/load.h | 26 -------------------------- openbsd/memory.h | 26 -------------------------- osx/cpu.cc | 21 +++++++++++++-------- osx/cpu.h | 23 ----------------------- osx/load.cc | 6 ++---- osx/load.h | 25 ------------------------- osx/memory.h | 26 -------------------------- 25 files changed, 79 insertions(+), 355 deletions(-) rename {openbsd => common}/cpu.h (64%) rename {freebsd => common}/getsysctl.h (100%) rename {freebsd => common}/load.h (100%) rename {freebsd => common}/memory.h (100%) delete mode 100644 freebsd/cpu.h delete mode 100644 linux/cpu.h delete mode 100644 linux/load.h delete mode 100644 linux/memory.h delete mode 100644 netbsd/cpu.h delete mode 100644 netbsd/memory.h delete mode 100644 openbsd/load.h delete mode 100644 openbsd/memory.h delete mode 100644 osx/cpu.h delete mode 100644 osx/load.h delete mode 100644 osx/memory.h diff --git a/openbsd/cpu.h b/common/cpu.h similarity index 64% rename from openbsd/cpu.h rename to common/cpu.h index 5bb6e87..4fe0b98 100644 --- a/openbsd/cpu.h +++ b/common/cpu.h @@ -21,12 +21,28 @@ #include -#define CP_USER 0 -#define CP_NICE 1 -#define CP_SYS 2 -#define CP_INTR 3 -#define CP_IDLE 4 -#define CPUSTATES 5 +#if defined(__APPLE__) && defined(__MACH__) + #define CP_USER 0 + #define CP_SYS 1 + #define CP_IDLE 2 + #define CP_NICE 3 + #define CP_STATES 4 +#else + #define CP_USER 0 + #define CP_NICE 1 + #define CP_SYS 2 + + #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) + // *BSD or OSX + #define CP_INTR 3 + #define CP_IDLE 4 + #define CP_STATES 5 + #else + //linux + #define CP_IDLE 3 + #define CP_STATES 4 + #endif +#endif float cpu_percentage( unsigned ); uint8_t get_cpu_count(); diff --git a/freebsd/getsysctl.h b/common/getsysctl.h similarity index 100% rename from freebsd/getsysctl.h rename to common/getsysctl.h diff --git a/freebsd/load.h b/common/load.h similarity index 100% rename from freebsd/load.h rename to common/load.h diff --git a/common/main.cc b/common/main.cc index 33c5d8f..f9c3264 100644 --- a/common/main.cc +++ b/common/main.cc @@ -29,32 +29,9 @@ // Tmux color lookup tables for the different metrics. #include "luts.h" -#if defined(__APPLE__) && defined(__MACH__) - // Apple osx system - #include "osx/cpu.h" - #include "osx/memory.h" - #include "osx/load.h" -#elif defined(__FreeBSD__) || defined(__NetBSD__) - // BSD system - #define BSD_BASED 1 - #include "freebsd/cpu.h" - #include "freebsd/load.h" - #include "freebsd/memory.h" -#elif defined(__OpenBSD__) - #define BSD_BASED 1 - #include "freebsd/cpu.h" - #include "freebsd/load.h" - #include "freebsd/memory.h" -#elif defined(__NetBSD__) - #include "freebsd/cpu.h" - #include "freebsd/load.h" - #include "netbsd/memory.h" -#else - // assume linux system - #include "linux/cpu.h" - #include "linux/memory.h" - #include "linux/load.h" -#endif +#include "cpu.h" +#include "memory.h" +#include "load.h" std::string cpu_string( unsigned int cpu_usage_delay, unsigned int graph_lines, bool use_colors = false ) diff --git a/freebsd/memory.h b/common/memory.h similarity index 100% rename from freebsd/memory.h rename to common/memory.h diff --git a/freebsd/cpu.cc b/freebsd/cpu.cc index a9f056e..f6a4e62 100644 --- a/freebsd/cpu.cc +++ b/freebsd/cpu.cc @@ -26,10 +26,18 @@ #include "getsysctl.h" #include "cpu.h" +uint8_t get_cpu_cout() +{ + int32_t cpu_count = 0; + GETSYSCTL( "hw.ncpu", cpu_count ); + + return static_cast( cpu_count ); +} + float cpu_percentage( unsigned int cpu_usage_delay ) { - u_long load1[CPUSTATES]; - u_long load2[CPUSTATES]; + u_long load1[CP_STATES]; + u_long load2[CP_STATES]; GETSYSCTL( "kern.cp_time", load1 ); usleep( cpu_usage_delay ); diff --git a/freebsd/cpu.h b/freebsd/cpu.h deleted file mode 100644 index 3840650..0000000 --- a/freebsd/cpu.h +++ /dev/null @@ -1,31 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CPU_H_ -#define CPU_H_ - -#define CP_USER 0 -#define CP_NICE 1 -#define CP_SYS 2 -#define CP_INTR 3 -#define CP_IDLE 4 -#define CPUSTATES 5 - -float cpu_percentage( unsigned ); - -#endif diff --git a/freebsd/load.cc b/freebsd/load.cc index 3a8517e..60a3597 100644 --- a/freebsd/load.cc +++ b/freebsd/load.cc @@ -27,6 +27,7 @@ #include #include "getsysctl.h" +#include "cpu.h" #include "load.h" #include "luts.h" @@ -48,11 +49,9 @@ std::string load_string( bool use_colors = false ) if( use_colors ) { // may not work - int32_t cpu_count = 0; - GETSYSCTL( "hw.ncpu", cpu_count ); unsigned load_percent = static_cast( averages[0] / - cpu_count * 0.5f * 100.0f ); + get_cpu_count() * 0.5f * 100.0f ); if( load_percent > 100 ) { diff --git a/linux/cpu.cc b/linux/cpu.cc index c105bac..2fcc4c9 100644 --- a/linux/cpu.cc +++ b/linux/cpu.cc @@ -23,6 +23,11 @@ #include "cpu.h" #include "luts.h" +uint8_t get_cpu_count() +{ + return sysconf( _SC_NPROCESSORS_ONLN ); +} + float cpu_percentage( unsigned cpu_usage_delay ) { std::string line; @@ -32,7 +37,7 @@ float cpu_percentage( unsigned cpu_usage_delay ) // cpu stats // user, nice, system, idle // in that order - unsigned long long stats[4]; + unsigned long long stats[CP_STATES]; std::ifstream stat_file( "/proc/stat" ); getline( stat_file, line ); @@ -64,7 +69,10 @@ float cpu_percentage( unsigned cpu_usage_delay ) stats[i] = std::stoll( line.substr( substr_start, substr_len ) ) - stats[i]; } - return static_cast( stats[0] + stats[1] + stats[2]) / - static_cast( stats[0] + stats[1] + stats[2] + stats[3] ) * 100.0; + return static_cast( + stats[CP_USER] + stats[CP_NICE] + stats[CP_SYS] + ) / static_cast( + stats[CP_USER] + stats[CP_NICE] + stats[CP_SYS] + stats[CP_IDLE] + ) * 100.0; } diff --git a/linux/cpu.h b/linux/cpu.h deleted file mode 100644 index ebc0e8e..0000000 --- a/linux/cpu.h +++ /dev/null @@ -1,24 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CPU_H_ -#define CPU_H_ - -float cpu_percentage( unsigned ); - -#endif diff --git a/linux/load.cc b/linux/load.cc index a93c1fa..1414e04 100644 --- a/linux/load.cc +++ b/linux/load.cc @@ -18,11 +18,11 @@ #include #include -#include // sysconf()? #include #include // SI_LOAD_SHIFT #include "load.h" +#include "cpu.h" #include "luts.h" std::string load_string( bool use_colors = false ) @@ -37,14 +37,12 @@ std::string load_string( bool use_colors = false ) if( use_colors ) { // Likely does not work on BSD, but not tested - unsigned number_of_cpus = sysconf( _SC_NPROCESSORS_ONLN ); - float recent_load = sinfo.loads[0] / f; // colors range from zero to twice the number of cpu's // for the most recent load metric unsigned load_percent = static_cast< unsigned int >( - recent_load / number_of_cpus * 0.5f * 100.0f ); + recent_load / get_cpu_count() * 0.5f * 100.0f ); if( load_percent > 100 ) { diff --git a/linux/load.h b/linux/load.h deleted file mode 100644 index f1bbc58..0000000 --- a/linux/load.h +++ /dev/null @@ -1,26 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef LOAD_H_ -#define LOAD_H_ - -#include - -std::string load_string( bool ); - -#endif diff --git a/linux/memory.h b/linux/memory.h deleted file mode 100644 index 3a123bb..0000000 --- a/linux/memory.h +++ /dev/null @@ -1,26 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MEMORY_H_ -#define MEMORY_H_ - -#include - -std::string mem_string( bool ); - -#endif diff --git a/netbsd/cpu.cc b/netbsd/cpu.cc index 2afab53..cbee70e 100644 --- a/netbsd/cpu.cc +++ b/netbsd/cpu.cc @@ -23,13 +23,21 @@ #include #include // usleep -#include "../freebsd/getsysctl.h" +#include "getsysctl.h" #include "cpu.h" +uint8_t get_cpu_count() +{ + int cpu_count = 0; + GETSYSCTL( "hw.ncpu", cpu_count ); + + return static_cast( cpu_count ); +} + float cpu_percentage( unsigned int cpu_usage_delay ) { - u_int64_t load1[CPUSTATES]; - u_int64_t load2[CPUSTATES]; + u_int64_t load1[CP_STATES]; + u_int64_t load2[CP_STATES]; GETSYSCTL( "kern.cp_time", load1 ); usleep( cpu_usage_delay ); diff --git a/netbsd/cpu.h b/netbsd/cpu.h deleted file mode 100644 index 3840650..0000000 --- a/netbsd/cpu.h +++ /dev/null @@ -1,31 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CPU_H_ -#define CPU_H_ - -#define CP_USER 0 -#define CP_NICE 1 -#define CP_SYS 2 -#define CP_INTR 3 -#define CP_IDLE 4 -#define CPUSTATES 5 - -float cpu_percentage( unsigned ); - -#endif diff --git a/netbsd/memory.h b/netbsd/memory.h deleted file mode 100644 index 3a123bb..0000000 --- a/netbsd/memory.h +++ /dev/null @@ -1,26 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MEMORY_H_ -#define MEMORY_H_ - -#include - -std::string mem_string( bool ); - -#endif diff --git a/openbsd/cpu.cc b/openbsd/cpu.cc index 223f51b..e016c27 100644 --- a/openbsd/cpu.cc +++ b/openbsd/cpu.cc @@ -42,8 +42,8 @@ float cpu_percentage( unsigned int cpu_usage_delay ) { int cpu_ctl[] = { CTL_KERN, KERN_CPTIME }; - u_long load1[CPUSTATES]; - u_long load2[CPUSTATES]; + u_long load1[CP_STATES]; + u_long load2[CP_STATES]; size_t size = sizeof( load1 ); diff --git a/openbsd/load.cc b/openbsd/load.cc index 7c4a138..4aacab9 100644 --- a/openbsd/load.cc +++ b/openbsd/load.cc @@ -43,11 +43,8 @@ std::string load_string( bool use_colors = false ) { if( use_colors ) { - // may not work - uint8_t cpu_count = get_cpu_count(); - unsigned load_percent = static_cast( - averages[0] / cpu_count * 0.5f * 100.0f); + averages[0] / get_cpu_count() * 0.5f * 100.0f); if( load_percent > 100 ) { diff --git a/openbsd/load.h b/openbsd/load.h deleted file mode 100644 index f1bbc58..0000000 --- a/openbsd/load.h +++ /dev/null @@ -1,26 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef LOAD_H_ -#define LOAD_H_ - -#include - -std::string load_string( bool ); - -#endif diff --git a/openbsd/memory.h b/openbsd/memory.h deleted file mode 100644 index 3a123bb..0000000 --- a/openbsd/memory.h +++ /dev/null @@ -1,26 +0,0 @@ -/* vim: tabstop=2 shiftwidth=2 expandtab textwidth=80 linebreak wrap - * - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MEMORY_H_ -#define MEMORY_H_ - -#include - -std::string mem_string( bool ); - -#endif diff --git a/osx/cpu.cc b/osx/cpu.cc index f38fbe4..d287756 100644 --- a/osx/cpu.cc +++ b/osx/cpu.cc @@ -21,6 +21,11 @@ #include "cpu.h" +uint8_t get_cpu_count() +{ + return sysconf( _SC_NPROCESSORS_ONLN ); +} + // OSX or BSD based system, use BSD APIs instead // See: http://www.opensource.apple.com/source/xnu/xnu-201/osfmk/mach/host_info.h // and: http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/ @@ -53,15 +58,15 @@ float cpu_percentage( unsigned int cpu_usage_delay ) host_cpu_load_info_data_t load2 = _get_cpu_percentage(); // Current load times - unsigned long long current_user = load1.cpu_ticks[CPU_STATE_USER]; - unsigned long long current_system = load1.cpu_ticks[CPU_STATE_SYSTEM]; - unsigned long long current_nice = load1.cpu_ticks[CPU_STATE_NICE]; - unsigned long long current_idle = load1.cpu_ticks[CPU_STATE_IDLE]; + unsigned long long current_user = load1.cpu_ticks[CP_USER]; + unsigned long long current_system = load1.cpu_ticks[CP_SYS]; + unsigned long long current_nice = load1.cpu_ticks[CP_NICE]; + unsigned long long current_idle = load1.cpu_ticks[CP_IDLE]; // Next load times - unsigned long long next_user = load2.cpu_ticks[CPU_STATE_USER]; - unsigned long long next_system = load2.cpu_ticks[CPU_STATE_SYSTEM]; - unsigned long long next_nice = load2.cpu_ticks[CPU_STATE_NICE]; - unsigned long long next_idle = load2.cpu_ticks[CPU_STATE_IDLE]; + unsigned long long next_user = load2.cpu_ticks[CP_USER]; + unsigned long long next_system = load2.cpu_ticks[CP_SYS]; + unsigned long long next_nice = load2.cpu_ticks[CP_NICE]; + unsigned long long next_idle = load2.cpu_ticks[CP_IDLE]; // Difference between the two unsigned long long diff_user = next_user - current_user; unsigned long long diff_system = next_system - current_system; diff --git a/osx/cpu.h b/osx/cpu.h deleted file mode 100644 index 1652c03..0000000 --- a/osx/cpu.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CPU_H_ -#define CPU_H_ - -float cpu_percentage ( unsigned ); - -#endif diff --git a/osx/load.cc b/osx/load.cc index cf4a816..11cd4ed 100644 --- a/osx/load.cc +++ b/osx/load.cc @@ -25,6 +25,7 @@ #include // getloadavg() #include "load.h" +#include "cpu.h" #include "luts.h" std::string load_string( bool use_colors = false ) @@ -57,9 +58,6 @@ std::string load_string( bool use_colors = false ) if( use_colors ) { - // Likely does not work on BSD, but not tested - unsigned number_of_cpus = sysconf( _SC_NPROCESSORS_ONLN ); - std::istringstream iss( load_line.substr( 0, 4 ) ); float recent_load; iss >> recent_load; @@ -67,7 +65,7 @@ std::string load_string( bool use_colors = false ) // cpu's for the most recent load metric unsigned load_percent = static_cast< unsigned int >( - recent_load / number_of_cpus * 0.5f * 100.0f ); + recent_load / get_cpu_count() * 0.5f * 100.0f ); if( load_percent > 100 ) { diff --git a/osx/load.h b/osx/load.h deleted file mode 100644 index 16cd762..0000000 --- a/osx/load.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2012 Matthew McCormick - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef LOAD_H_ -#define LOAD_H_ - -#include - -std::string load_string( bool ); - -#endif diff --git a/osx/memory.h b/osx/memory.h deleted file mode 100644 index 3d89aa3..0000000 --- a/osx/memory.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2012 Matthew McCormick - * Copyright 2013 Justin Crawford - * Copyright 2015 Pawel 'l0ner' Soltys - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MEMORY_H_ -#define MEMORY_H_ - -#include - -std::string mem_string( bool ); - -#endif