3 #ifndef __ARC_UTILS_H__     4 #define __ARC_UTILS_H__    17   std::string 
GetEnv(
const std::string& var);
    21   std::string 
GetEnv(
const std::string& var, 
bool &found);
    24   std::list<std::string> 
GetEnv();
    27   bool SetEnv(
const std::string& var, 
const std::string& value, 
bool overwrite = 
true);
    30   void UnsetEnv(
const std::string& var);
    81     void (*saved_sigint_handler)(int);
    85   std::string 
StrError(
int errnum = errno);
    98     static void DefaultDeleter(T* o) { 
delete o; }
   100 #if __cplusplus >= 201103L   108       : object(NULL), deleter(&DefaultDeleter) {
   115       : object(NULL), deleter(d) {}
   118       : object(o), deleter(d) {}
   121       : object(o.
Release()), deleter(o.deleter) {}
   124       if (
object) 
if(deleter) (*deleter)(object);
   128       if (
object) 
if(deleter) (*deleter)(object);
   132     AutoPointer<T>& operator=(AutoPointer<T>& o) {
   133       if (
object) 
if(deleter) (*deleter)(object);
   147     operator bool(
void)
 const {
   148       return (
object != NULL);
   152       return (
object == NULL);
   158     T& operator[](
int pos) {
   161     T 
const& operator[](
int pos)
 const {
   200         if (ptr && !released)
   209           if(!released) 
delete this;
   218       : object(
new Base<T>(p)) {}
   220       : object(p.object->add()) {}
   225       if (p != object->ptr) {
   227         object = 
new Base<T>(p);
   232       if (p.object->ptr != object->ptr) {
   234         object = p.object->add();
   240       return *(
object->ptr);
   244       return (object->ptr);
   247     operator bool(
void)
 const {
   248       return ((object->ptr) != NULL);
   252       return ((object->ptr) == NULL);
   256       return ((object->ptr) == (p.object->ptr));
   260       return ((object->ptr) != (p.object->ptr));
   264       return ((object->ptr) < (p.object->ptr));
   268       return (object->ptr);
   272       T* tmp = 
object->ptr;
   273       object->released = 
true;
   285 #endif // __ARC_UTILS_H__ Arc namespace contains all core ARC classes. 
Definition: ArcConfig.h:11
 
Class to provide automatic locking/unlocking of environment on creation/destruction. 
Definition: Utils.h:63
 
T * operator->(void) const
For referring wrapped object. 
Definition: Utils.h:143
 
~EnvLockWrapper(void)
Release environment lock. 
Definition: Utils.h:71
 
T * operator->(void) const
For referring wrapped object. 
Definition: Utils.h:243
 
bool operator!(void) const
Returns true if pointer is NULL and false otherwise. 
Definition: Utils.h:151
 
T & operator*(void) const
For referring wrapped object. 
Definition: Utils.h:139
 
AutoPointer(T *o, void(*d)(T *)=&DefaultDeleter)
Constructor which wraps pointer and optionally defines deletion function. 
Definition: Utils.h:117
 
bool operator<(const CountedPointer &p) const
Comparison operator. 
Definition: Utils.h:263
 
void EnvLockUnwrapComplete(void)
Use after fork() to reset all internal variables and release all locks. 
 
Wrapper for pointer with automatic destruction and multiple references. 
Definition: Utils.h:183
 
T * Ptr(void) const
Cast to original pointer. 
Definition: Utils.h:155
 
T & operator*(void) const
For referring wrapped object. 
Definition: Utils.h:239
 
void EnvLockWrap(bool all=false)
Start code which is using setenv/getenv. 
 
std::string StrError(int errnum=errno)
Portable function for obtaining description of last system error. 
 
EnvLockWrapper(bool all=false)
Create a new environment lock for using setenv/getenv. 
Definition: Utils.h:69
 
AutoPointer(AutoPointer< T > &o)
Moving constructor. 
Definition: Utils.h:120
 
bool operator!(void) const
Returns true if pointer is NULL and false otherwise. 
Definition: Utils.h:251
 
AutoPointer(void(*d)(T *)=&DefaultDeleter)
NULL pointer constructor. 
Definition: Utils.h:114
 
void EnvLockUnwrap(bool all=false)
End code which is using setenv/getenv. 
 
void EnvLockAcquire(void)
Obtain lock on environment. 
 
Marks off a section of code which should not be interrupted by signals. 
Definition: Utils.h:76
 
void UnsetEnv(const std::string &var)
Portable function for unsetting environment variables. Protected by exclusive lock. 
 
bool PersistentLibraryInit(const std::string &name)
Load library and keep persistent. 
 
void EnvLockRelease(void)
Release lock on environment. 
 
Wrapper for pointer with automatic destruction. 
Definition: Utils.h:94
 
bool SetEnv(const std::string &var, const std::string &value, bool overwrite=true)
Portable function for setting environment variables. Protected by exclusive lock. ...
 
T * Release(void)
Release referred object so that it can be passed to other container. 
Definition: Utils.h:165
 
bool operator!=(const CountedPointer &p) const
Returns true if pointers are not equal. 
Definition: Utils.h:259
 
T * Release(void)
Release referred object so that it can be passed to other container. 
Definition: Utils.h:271
 
T * Ptr(void) const
Cast to original pointer. 
Definition: Utils.h:267
 
std::string GetEnv(const std::string &var)
Portable function for getting environment variables. Protected by shared lock. 
 
~AutoPointer(void)
Destructor destroys wrapped object using assigned deleter. 
Definition: Utils.h:123
 
bool operator==(const CountedPointer &p) const
Returns true if pointers are equal. 
Definition: Utils.h:255