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__