Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Environment.cc

Go to the documentation of this file.
00001 /*
00002  * Environment.cc
00003  *
00004  * Smalltalk like class library for C++
00005  * Application environment accessor.
00006  *
00007  * Copyright (c) 2005 Milan Cermak
00008  */
00009 /*
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Lesser General Public
00012  * License as published by the Free Software Foundation; either
00013  * version 2.1 of the License, or (at your option) any later version.
00014  *
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Lesser General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU Lesser General Public
00021  * License along with this library; if not, write to the Free Software
00022  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023  */
00024 #include <stdlib.h>
00025 
00026 #include <stlib/String.h>
00027 #include <stlib/KeyNotFoundError.h>
00028 
00029 #include <stlib/os/Environment.h>
00030 
00031 using namespace OS;
00032 
00033 String *Environment::getEnv(String *name)
00034 {
00035     return getEnv(name->asCString());
00036 }
00037 
00038 String *Environment::getEnv(const char *name)
00039 {
00040     char *value;
00041     value = getenv(name);
00042     if (value == NULL) {
00043         Error *error = new KeyNotFoundError(__PRETTY_FUNCTION__, new String(name));
00044         error->raise();
00045     }
00046     return new String(value);
00047 }
00048 
00049 void Environment::setEnv(String *name, String* value)
00050 {
00051     setEnv(name->asCString(),
00052            value == nil ? NULL : value->asCString());
00053 }
00054 
00055 void Environment::setEnv(String *name, const char *value)
00056 {
00057     setEnv(name->asCString(), value);
00058 }
00059 
00060 void Environment::setEnv(const char *name, String *value)
00061 {
00062     setEnv(name, value == nil ? NULL : value->asCString());
00063 }
00064 
00065 void Environment::setEnv(const char *name, const char *value)
00066 {
00067     if (value == NULL) unsetenv(name);
00068                   else setenv(name, value, 1);
00069 }

Generated on Mon Nov 27 09:47:55 2006 for Smalltalk like C++ Class Library by  doxygen 1.4.2