42#define STACKALLOC(type, name, size) type *name = static_cast<type*>(_alloca((size)*sizeof(type)))
45#define STACKALLOC(type, name, size) type name[size]
54 pthread_mutexattr_t attr;
55 pthread_mutexattr_init(&attr);
56 pthread_mutexattr_settype(&attr,
type);
57 pthread_mutex_init(&
pm, &attr);
58 pthread_mutexattr_destroy(&attr);
63 return pthread_mutex_lock(&
pm) == 0;
68 return pthread_mutex_trylock(&
pm) == 0;
73 pthread_mutex_unlock(&
pm);
78 pthread_mutex_destroy(&
pm);
136template<
class T,
class Tref = T&>
159 virtual const char *
what()
const throw () {
return text; }
170 virtual const char *
what()
const throw () {
return text; }
186extern std::string
f2s(
double value);
195std::string
xml_escape(
const std::string &src);
198std::string
load_file(
const std::string &src);
201std::string
indent(
const std::string &src,
const std::string &
indent);
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
ptmutex & mutex
Definition utils.h:85
~ptlock_base()
Definition utils.h:108
bool is_locked()
Definition utils.h:95
bool locked
Definition utils.h:86
void unlocked()
Definition utils.h:104
ptlock_base(ptmutex &_m)
Definition utils.h:88
void unlock()
Definition utils.h:99
ptlock(ptmutex &_m)
Definition utils.h:119
Pthreads based mutex class.
Definition utils.h:48
ptmutex(int type=PTHREAD_MUTEX_RECURSIVE)
Definition utils.h:52
bool lock()
Definition utils.h:61
void unlock()
Definition utils.h:71
~ptmutex()
Definition utils.h:76
pthread_mutex_t pm
Definition utils.h:50
bool trylock()
Definition utils.h:66
pttrylock(ptmutex &_m)
Definition utils.h:129
bool old_value
Definition utils.h:140
scope_assign(Tref _data, T new_value)
Definition utils.h:142
vector< bool >::reference data
Definition utils.h:139
~scope_assign()
Definition utils.h:147
struct huft * t
Definition inflate.c:943
unsigned f
Definition inflate.c:1572
static PuglViewHint int value
Definition pugl.h:1708
JSAMPIMAGE data
Definition jpeglib.h:945
Definition gui_config.h:8
std::string ff2s(double value)
float-to-string-that-doesn't-resemble-an-int
Definition utils.cpp:127
std::string f2s(double value)
float-to-string
Definition utils.cpp:120
void decode_map(dictionary &data, const std::string &src)
Deserialize a dictionary from a string.
std::map< std::string, std::string > dictionary
String-to-string mapping.
Definition utils.h:175
std::vector< direntry > list_directory(const std::string &path)
std::string to_xml_attr(const std::string &key, const std::string &value)
Encode a key-value pair as XML attribute.
Definition utils.cpp:86
std::string indent(const std::string &src, const std::string &indent)
Indent a string by another string (prefix each line).
Definition utils.cpp:135
std::string xml_escape(const std::string &src)
Escape a string to be used in XML file.
Definition utils.cpp:73
std::string encode_map(const dictionary &data)
Serialize a dictionary to a string.
Definition utils.cpp:44
std::string i2s(int value)
int-to-string
Definition utils.cpp:112
std::string load_file(const std::string &src)
Load file from disk into a std::string blob, or throw file_exception.
Definition utils.cpp:91
#define false
Definition ordinals.h:83
List contents of a directory.
Definition utils.h:204
std::string name
Definition utils.h:205
std::string directory
Definition utils.h:207
std::string full_path
Definition utils.h:206
std::string container
Definition utils.h:166
virtual ~file_exception()
Definition utils.h:171
const char * text
Definition utils.h:165
file_exception(const std::string &f)
Definition utils.cpp:153
std::string message
Definition utils.h:166
virtual const char * what() const
Definition utils.h:170
std::string filename
Definition utils.h:166
text_exception(const std::string &t)
Definition utils.h:158
virtual const char * what() const
Definition utils.h:159
std::string container
Definition utils.h:156
virtual ~text_exception()
Definition utils.h:160
const char * text
Definition utils.h:155
ZCONST char * key
Definition crypt.c:587