3 #ifndef __ARC_UTILS_H__ 
    4 #define __ARC_UTILS_H__ 
   17   std::string 
GetEnv(
const std::string& var);
 
   20   std::string 
GetEnv(
const std::string& var, 
bool &found);
 
   23   bool SetEnv(
const std::string& var, 
const std::string& value, 
bool overwrite = 
true);
 
   26   void UnsetEnv(
const std::string& var);
 
   76     void (*saved_sigint_handler)(int);
 
   80   std::string 
StrError(
int errnum = errno);
 
  103       if (
object) 
delete object;
 
  105     void operator=(T* o) {
 
  106       if (
object) 
delete object;
 
  118     operator bool(
void)
 const {
 
  119       return (
object != NULL);
 
  123       return (
object == NULL);
 
  165         if (ptr && !released)
 
  174           if(!released) 
delete this;
 
  183       : object(
new Base<T>(p)) {}
 
  185       : object(p.object->add()) {}
 
  190       if (p != object->ptr) {
 
  192         object = 
new Base<T>(p);
 
  197       if (p.object->ptr != object->ptr) {
 
  199         object = p.object->add();
 
  205       return *(
object->ptr);
 
  209       return (object->ptr);
 
  212     operator bool(
void)
 const {
 
  213       return ((object->ptr) != NULL);
 
  217       return ((object->ptr) == NULL);
 
  221       return ((object->ptr) == (p.object->ptr));
 
  225       return ((object->ptr) != (p.object->ptr));
 
  229       return ((object->ptr) < (p.object->ptr));
 
  233       return (object->ptr);
 
  237       T* tmp = 
object->ptr;
 
  238       object->released = 
true;
 
  250 # endif // __ARC_UTILS_H__