diff options
Diffstat (limited to 'class-tests.hpp')
-rw-r--r-- | class-tests.hpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/class-tests.hpp b/class-tests.hpp new file mode 100644 index 0000000..8ac10a2 --- /dev/null +++ b/class-tests.hpp @@ -0,0 +1,78 @@ +/* + Made this file mainly to just play around with classes and play around with the features. + No real use for this code. + */ +#ifndef CLASS_TESTS_HPP +#define CLASS_TESTS_HPP +#include <iostream> +#include <string> +#include <vector> +#include <sys/utsname.h> +#include <time.h> + +struct ERROR_RESULT { + friend class CLASS_TESTS; +private: + bool fail = false; + bool partial = false; + bool success = false; +}; + +class CLASS_TESTS { +public: + CLASS_TESTS(): Kernel(""), Distro_OS(""), EnvVarHOME(""), TotalMemoryBytes(0), CurTime(0) { } + CLASS_TESTS(std::string K, std::string D, std::string H, size_t B, time_t T): + Kernel(K), Distro_OS(D), EnvVarHOME(H), TotalMemoryBytes(B), CurTime(T){ } + void print_CT(); + ERROR_RESULT Get_System_Info(); + ERROR_RESULT Get_Errors() { return res; }; + bool isFailed() { return res.fail; } + bool isPartial() { return res.partial; } + bool isSuccess() { return res.success; } +private: + std::string Kernel; + std::string Distro_OS; + std::string EnvVarHOME; + size_t TotalMemoryBytes; + time_t CurTime; + ERROR_RESULT res; +}; + +void CLASS_TESTS::print_CT() { + std::cout << Kernel << "\n" + << Distro_OS << "\n" + << EnvVarHOME << "\n" + << TotalMemoryBytes << "\n" + << CurTime << std::endl; +} + +ERROR_RESULT CLASS_TESTS::Get_System_Info() { + + struct utsname gsi; + if(uname(&gsi) == -1) { + res.fail = true; + return res; + } + + Kernel = gsi.sysname; + Distro_OS = gsi.release; + char *r = std::getenv("HOME"); + if(r == NULL) { + res.fail = false; + res.partial = true; + return res; + } + + EnvVarHOME = r; + CurTime = time(NULL); + if(CurTime == -1) { + res.partial = true; + } + + TotalMemoryBytes = 4096; + res.partial = false; + res.success = true; + return res; +} + +#endif |