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
00041
namespace sc {
00042
00045 class ExEnv {
00046
protected:
00047
static int initialized_;
00048
static int *argc_;
00049
static char ***argv_;
00050
static char hostname_[256];
00051
static char username_[9];
00052
00053
static size_t mem_;
00054
static int nproc_;
00055
00056
static std::ostream *out_;
00057
static std::ostream *nullstream_;
00058
public:
00060
static void init(
int &argcref,
char **&argvref);
00062 static int initialized() {
return argc_ != 0; }
00064 static int &
argc() {
return *argc_; }
00066 static char **&
argv() {
return *argv_; }
00068
static const char *
program_name();
00070 static const char *
hostname() {
return hostname_; }
00072 static const char *
username() {
return username_; }
00073
00074
static void set_out(std::ostream *o) { SCFormIO::init_ostream(*o);out_=o; }
00076 static std::ostream &
outn() {
if (!out_)set_out(&std::cout);
return *out_; }
00078 static std::ostream &
errn() {
return outn(); }
00080
static std::ostream &
out0();
00082 static std::ostream &
err0() {
return out0(); }
00083
00085 static size_t
memory() {
return mem_; }
00087 static int nproc() {
return nproc_; }
00088 };
00089
00090 }
00091
00092
#endif
00093
00094
00095
00096
00097