00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifdef __GNUG__
00029 #pragma interface
00030 #endif
00031
00032 #ifndef _util_misc_exenv_h
00033 #define _util_misc_exenv_h
00034
00035 #include <scconfig.h>
00036
00037 #include <iostream>
00038
00039 #include <util/misc/formio.h>
00040
00043 class ExEnv {
00044 protected:
00045 static int initialized_;
00046 static int *argc_;
00047 static char ***argv_;
00048 static char hostname_[256];
00049 static char username_[9];
00050
00051 static unsigned long mem_;
00052 static int nproc_;
00053
00054 static std::ostream *out_;
00055 public:
00057 static void init(int &argcref, char **&argvref);
00059 static int initialized() { return argc_ != 0; }
00061 static int &argc() { return *argc_; }
00063 static char **&argv() { return *argv_; }
00065 static const char *program_name();
00067 static const char *hostname() { return hostname_; }
00068 static const char *username() { return username_; }
00069
00070 static void set_out(std::ostream *o) { SCFormIO::init_ostream(*o);out_=o; }
00071 static std::ostream &out() { if (!out_)set_out(&std::cout);return *out_; }
00072 static std::ostream &err() { return out(); }
00073
00075 static unsigned long memory() { if (!initialized_) err(); return mem_; }
00077 static int nproc() { if (!initialized_) err(); return nproc_; }
00078 };
00079
00080 #endif
00081
00082
00083
00084
00085