UCommon
Data Structures | Typedefs | Functions
ucommon Namespace Reference

Common namespace for all ucommon objects. More...

Data Structures

class  _character_operators
 At least with gcc, linking of stream operators was broken. More...
class  _stream_operators
 At least with gcc, linking of stream operators was broken. More...
class  array_pointer
 Generic smart array class. More...
class  array_reuse
 An array of reusable types. More...
class  ArrayReuse
 An array of reusable objects. More...
class  assoc_pointer
 A typed template for using a key association with typed objects. More...
class  atomic
 Generic atomic class for referencing atomic objects and static functions. More...
class  auto_object
 A general purpose smart pointer helper class. More...
class  auto_protect
 A mutex locked object smart pointer helper class. More...
class  autorelease
 Create a linked list of auto-releasable objects. More...
class  barrier
 A portable implimentation of "barrier" thread sychronization. More...
class  bitmap
 A class to access bit fields in external bitmaps. More...
class  Buffer
 A thread-safe buffer for serializing and streaming class data. More...
class  bufferof
 A templated typed class for buffering of objects. More...
class  BufferProtocol
 Common buffer protocol class. More...
class  bufpager
 Buffered pager for storing paged strings for character protocol. More...
class  CharacterProtocol
 Common character processing protocol. More...
class  charbuf
 A template to create a character array that can be manipulated as a string. More...
class  cidr
 A class to hold internet segment routing rules. More...
class  Cipher
 A generic data ciphering class. More...
class  Conditional
 The conditional is a common base for other thread synchronizing classes. More...
class  ConditionalAccess
 The conditional rw seperates scheduling for optizming behavior or rw locks. More...
class  ConditionalLock
 An optimized and convertable shared lock. More...
class  CountedObject
 A base class for reference counted objects. More...
class  counter
 Automatic integer counting class. More...
class  Date
 The Date class uses a julian date representation of the current year, month, and day. More...
class  DateNumber
 A number class that manipulates a string buffer that is also a date. More...
class  DateTime
 The Datetime class uses a julian date representation of the current year, month, and day and a integer representation of the current time. More...
class  DateTimeString
 A DateTime string class. More...
class  DetachedThread
 A detached thread object that is stand-alone. More...
class  Digest
 A cryptographic digest class. More...
class  dir
 Convenience class for directories. More...
class  DirPager
 Directory pager is a paged string list for directory file names. More...
class  DLinkedObject
 A double-linked Object, used for certain kinds of lists. More...
class  dso
 Convenience class for library plugins. More...
class  exclusive_access
 A kind of smart pointer object to support exclusive locking protocol. More...
class  ExclusiveAccess
 An exclusive locking protocol interface base. More...
class  file
 Access standard files through character protocol. More...
class  filestream
 Streamable tcp connection between client and server. More...
class  fsys
 A container for generic and o/s portable threadsafe file system functions. More...
class  HMAC
 A cryptographic message authentication code class. More...
class  InputProtocol
 Used for processing input. More...
class  JoinableThread
 A child thread object that may be joined by parent. More...
class  keyassoc
 A class to hold memory pointers referenced by string names. More...
class  keydata
 Data keys parsed from a keyfile. More...
class  keyfile
 Traditional keypair config file parsing class. More...
class  keylist
 A template for ordered index of typed name key mapped objects. More...
class  keymap
 A template class for a hash map. More...
class  keypager
 A template class for a hash pager. More...
class  KeyProtocol
 Key data protocol used for things like maps and ordered lists. More...
class  keyrandom
 A template to create a random generated key of specified size. More...
class  keystring
 A template to create a string array that automatically erases. More...
class  linked_allocator
 Linked allocator template to gather linked objects. More...
class  linked_pointer
 A smart pointer template for iterating linked lists. More...
class  linked_pointer< sockaddr_struct >
 Linked pointer for address lists. More...
class  linked_value
 Template value class to embed data structure into a linked list. More...
class  LinkedAllocator
 Linked allocator helper for linked_allocator template. More...
class  LinkedList
 A double linked list object. More...
class  LinkedObject
 Common base class for all objects that can be formed into a linked list. More...
class  ListenSocket
 A bound socket used to listen for inbound socket connections. More...
class  locked_instance
 A templated smart pointer instance for lock protected objects. More...
class  locked_pointer
 Templated locked pointer for referencing locked objects of specific type. More...
class  locked_release
 Auto-pointer support class for locked objects. More...
class  LockedPointer
 An object pointer that uses mutex to assure thread-safe singleton use. More...
class  LockingProtocol
 Common locking protocol. More...
class  mapped_array
 Template class to map typed vector into shared memory. More...
class  mapped_reuse
 Template class to map typed reusable objects into shared memory heap. More...
class  mapped_view
 Class to access a named mapped segment published from another process. More...
class  MappedMemory
 Construct or access a named section of memory. More...
class  MappedReuse
 Map a reusable allocator over a named shared memory segment. More...
class  memalloc
 A memory protocol pager for private heap manager. More...
class  MemoryRedirect
 A redirection base class for the memory protocol. More...
class  mempager
 A managed private heap for small allocations. More...
class  memstring
 A string class that uses a cstring buffer that is fixed in memory. More...
class  MemVector
 Vector with fixed size member list. More...
class  multimap
 Embed data objects into a multipap structured memory database. More...
class  MultiMap
 A multipath linked list where membership is managed in multiple lists. More...
class  Mutex
 Generic non-recursive exclusive lock class. More...
class  mutex_pointer
 Typed smart locked pointer class. More...
class  named_value
 Template value class to embed data structure into a named list. More...
class  NamedObject
 A linked object base class with members found by name. More...
class  NamedTree
 The named tree class is used to form a tree oriented list of associated objects. More...
class  Number
 A number manipulation class. More...
class  object_pointer
 Typed smart pointer class. More...
class  object_value
 Template for embedding a data structure into a reference counted object. More...
class  ObjectProtocol
 A common base class for all managed objects. More...
class  ObjectQueue
 A queue of double linked object. More...
class  objfifo
 Template for typesafe basic object fifo container. More...
class  objqueue
 Template for typesafe basic object queue container. More...
class  objstack
 Template for typesafe basic object stack container. More...
class  OrderedIndex
 An index container for maintaining an ordered list of objects. More...
class  OrderedObject
 A linked object base class for ordered objects. More...
class  paged_reuse
 A reusable private pool of reusable types. More...
class  pager
 Mempager managed type factory for pager pool objects. More...
class  PagerObject
 This is a base class for objects that may be created in pager pools. More...
class  PagerPool
 Pager pool base class for managed memory pools. More...
class  PagerReuse
 A mempager source of reusable objects. More...
class  PersistEngine
 Stream serialization of persistent classes. More...
class  PersistObject
 PersistObject. More...
class  pipestream
 Streamable tcp connection between client and server. More...
class  pointer
 Generic smart pointer class. More...
class  PrintProtocol
 Used for forming stream output. More...
class  Queue
 Manage a thread-safe queue of objects through reference pointers. More...
class  queueof
 A templated typed class for thread-safe queue of object pointers. More...
class  Random
 Cryptographically relevant random numbers. More...
class  RecursiveMutex
 Portable recursive exclusive lock. More...
class  ReusableAllocator
 Class for resource bound memory pools between threads. More...
class  ReusableObject
 Reusable objects for forming private heaps. More...
class  sarray
 Generate a typed sparse managed object array. More...
class  save_restore
 Save and restore global objects in function call stack frames. More...
class  secure
 Common secure socket support. More...
class  Semaphore
 A portable counting semaphore class. More...
class  SeqCounter
 Automatically return a sequence of untyped objects. More...
class  sequence
 A template to return a sequence of objects of a specified type. More...
class  shared_access
 A kind of smart pointer object to support shared locking protocol. More...
class  shared_instance
 A templated smart pointer instance for shared singleton typed objects. More...
class  shared_pointer
 Templated shared pointer for singleton shared objects of specific type. More...
class  shared_release
 Auto-pointer support class for shared singleton objects. More...
class  SharedAccess
 An exclusive locking access interface base. More...
class  SharedObject
 Shared singleton object. More...
class  SharedPointer
 The shared pointer is used to manage a singleton instance of shared object. More...
class  Socket
 A generic socket base class. More...
class  SparseObjects
 A sparse array of managed objects. More...
class  SSLBuffer
 Secure socket buffer. More...
class  sstream
 Secure socket using std::iostream. More...
class  Stack
 Manage a thread-safe stack of objects through reference pointers. More...
class  stackof
 A templated typed class for thread-safe stack of object pointers. More...
class  StreamBuffer
 Common stream buffer for std C++ i/o classes. More...
class  String
 A copy-on-write string class that operates by reference count. More...
class  stringbuf
 A string class that has a predefined string buffer. More...
class  StringPager
 String pager for storing lists of NULL terminated strings. More...
class  TCPBuffer
 A generic tcp socket class that offers i/o buffering. More...
class  TCPServer
 A generic tcp server class. More...
class  tcpstream
 Streamable tcp connection between client and server. More...
class  temp_array
 Manage temporary array stored on the heap. More...
class  temporary
 Manage temporary object stored on the heap. More...
class  Thread
 An abstract class for defining classes that operate as a thread. More...
class  ThreadLock
 A generic and portable implimentation of Read/Write locking. More...
class  Time
 The Time class uses a integer representation of the current time. More...
class  TimedEvent
 Event notification to manage scheduled realtime threads. More...
class  Timer
 Timer class to use when scheduling realtime events. More...
class  TimerQueue
 A timer queue for timer events. More...
class  toggle
 Automatically toggle a bool on each reference. More...
class  treemap
 Embed data objects into a tree structured memory database. More...
class  TypeManager
 Type manager for persistence engine. More...
class  UnlockAccess
 Common unlock protocol for locking protocol interface classes. More...
class  UString
 A copy-on-write utf8 string class that operates by reference count. More...
class  utf8
 A core class of ut8 encoded string functions. More...
class  utf8_pointer
 Pointer to utf8 encoded character data. More...
class  Vector
 A managed vector for generic object pointers. More...
class  vectorbuf
 Allocated vector list of a specified type. More...
class  vectorof
 A templated vector for a list of a specific Object subtype. More...
class  XMLParser
 XML streaming parser. More...
class  ZNumber
 A number manipulation class that maintains a zero lead filled string. More...

Typedefs

typedef ConditionalAccess accesslock_t
 Convenience type for scheduling access.
typedef barrier barrier_t
 Convenience type for using thread barriers.
typedef Cipher cipher_t
 Convenience type for generic ciphers.
typedef ConditionalLock condlock_t
 Convenience type for using conditional locks.
typedef counter counter_t
 A convenience typecast for integer counters.
typedef Date date_t
 Convenience type for using Date object.
typedef DateTime datetime_t
 Convenience type for using DateTime object.
typedef DateTimeString datetimestring_t
 Convenience type for using DateTimeString object.
typedef Digest digest_t
 Convenience type for generic digests.
typedef dir dir_t
typedef DirPager dirlist_t
 A convenience type for using DirPager directly.
typedef dso dso_t
typedef exclusive_access exlock_t
 Convenience type to use for object referencing an exclusive object.
typedef Queue fifo_t
 Convenience type for using thread-safe object fifo (queue).
typedef file file_t
 Convience type for file.
typedef fsys fsys_t
 Convience type for fsys.
typedef HMAC hmac_t
 Convenience type for generic digests.
typedef LinkedObjectLinkedIndex
 Convenience typedef for root pointers of single linked lists.
typedef void * mem_t
 Convenience type for loader operations.
typedef Mutex mutex_t
 Convenience type for using exclusive mutex locks.
typedef class PersistObject *(* NewPersistObjectFunction )(void)
typedef Number number_t
 A convenience type for number.
typedef OrderedIndex objfifo_t
 Convenience type for a fifo of linked objects.
typedef ObjectQueue objqueue_t
 Convenience type for a queue of linked objects.
typedef ObjectStack objstack_t
 Convenience type for a stack of linked objects.
typedef RecursiveMutex rexlock_t
 Convenience type for using recursive exclusive locks.
typedef ThreadLock rwlock_t
 Convenience type for using read/write locks.
typedef Semaphore semaphore_t
 Convenience type for using counting semaphores.
typedef shared_access shlock_t
 Convenience type to use for object referencing a shared object.
typedef Cipher::Key skey_t
 Convenience type for generic cipher key.
typedef SSLBuffer ssl_t
 Convenience type for secure socket.
typedef Stack stack_t
 Convenience type for using thread-safe object stacks.
typedef String string_t
 A convenience type for string.
typedef String::regex stringex_t
typedef StringPager stringlist_t
 A convenience type for paged string lists.
typedef StringPager::member stringlistitem_t
 A convenience type for paged string list items.
typedef unsigned short strsize_t
 A convenience class for size of strings.
typedef TCPBuffer tcp_t
 Convenience type for pure tcp sockets.
typedef TCPServer tcpserv_t
typedef TimedEvent timedevent_t
 Convenience type for using timed events.
typedef Timer timer_t
 A convenience type for timers.
typedef Time tod_t
 Convenience type for using Time object.
typedef toggle toggle_t
 A convenience typecast for auto-toggled bools.
typedef TimerQueue::event TQEvent
 A convenience type for timer queue timer events.
typedef int16_t ucs2_t
 16 bit unicode character code.
typedef int32_t ucs4_t
 32 bit unicode character code.
typedef void * unicode_t
 Resolves issues where wchar_t is not defined.
typedef UString ustring_t
 Convenience type for utf8 encoded strings.
typedef utf8_pointer utf8_t
 Convenience type for utf8_pointer strings.
typedef unsigned short vectorsize_t
typedef ZNumber znumber_t
 A convenience type for znumber.

Functions

struct sockaddr * _getaddrinfo (struct addrinfo *addrinfo)
 Helper function for linked_pointer<struct sockaddr>.
socket_t _getaddrsock (struct addrinfo *addrinfo)
 Helper function for linked_pointer<struct sockaddr>.
struct addrinfo_nextaddrinfo (struct addrinfo *addrinfo)
 Helper function for linked_pointer<struct sockaddr>.
template<typename T >
const T abs (const T &value)
 Template for absolute value of a type.
void access (SharedAccess &object)
 Convenience function to access (lock) shared object through it's protocol.
void access (accesslock_t &lock)
 Convenience function to shared read schedule conditional access.
void access (condlock_t &lock)
 Convenience function for shared access to a conditional lock.
void acquire (mutex_t &mutex)
 Convenience function to acquire a mutex.
struct sockaddr * addr (Socket::address &address)
 A convenience function to convert a socket address list into a socket address.
struct addrinfoaddrinfo (Socket::address &address)
 A convenience function to convert a socket address list into an addrinfo.
template<typename T >
bool bound (const T *pointer, const T *base, size_t count)
 Convenience function to check memory arrays.
void commit (accesslock_t &lock)
 Convenience function to commit an exclusive access lock.
void commit (condlock_t &lock)
 Convenience function to commit and release an exclusively locked conditional lock.
ObjectProtocolcopy (ObjectProtocol *object)
 Convenience function to access object copy.
template<typename T >
void copy_unsafe (T *target, const T *source)
 Convenience function to copy class.
template<typename T >
T & deref_pointer (T *pointer)
 Convert a pointer to a reference with type checking.
template<typename T >
T * dup (const T &object)
 Convenience function to duplicate object pointer to heap.
template<>
char * dup< char > (const char &object)
template<typename T >
void dupfree (T object)
template<>
void dupfree< char * > (char *object)
template<>
void dupfree< ucs2_t * > (ucs2_t *string)
template<>
void dupfree< ucs4_t * > (ucs4_t *string)
template<>
void dupfree< unicode_t > (unicode_t string)
bool eq (char const *s1, char const *s2)
 Compare two null terminated strings if equal.
bool eq (char const *s1, char const *s2, size_t size)
 Compare two null terminated strings if equal up to specified size.
bool eq (String &s1, const char *s2)
 Compare two string objects if equal.
bool eq (const struct sockaddr *s1, const struct sockaddr *s2)
 Compare two socket addresses to see if equal.
bool eq (const struct sockaddr_storage *s1, const struct sockaddr_storage *s2)
 Compare two stored socket addresses to see if equal.
bool eq_case (char const *s1, char const *s2)
 Compare two null terminated strings if equal ignoring case.
bool eq_case (char const *s1, char const *s2, size_t size)
 Compare two null terminated strings if equal for a specified size ignoring case.
bool eq_host (const struct sockaddr *s1, const struct sockaddr *s2)
 Compare two host addresses to see if equal.
bool eq_subnet (const struct sockaddr *s1, const struct sockaddr *s2)
void exclusive (SharedAccess &object)
 Convenience function to exclusive lock shared object through it's protocol.
void exclusive (condlock_t &lock)
 Convenience function to exclusively lock shared conditional lock.
bool exclusive (rwlock_t &lock, timeout_t timeout=Timer::inf)
 Convenience function for exclusive write access to a read/write lock.
bool ge (String &s1, const char *s2)
bool gt (String &s1, const char *s2)
template<class T >
bool is (T &object)
 Convenience function to validate object assuming it is castable to bool.
bool is_device (const char *path)
bool is_dir (const char *path)
bool is_executable (const char *path)
bool is_exists (const char *path)
bool is_file (const char *path)
bool is_link (const char *path)
bool is_readable (const char *path)
bool is_writable (const char *path)
template<typename T >
bool isnull (T &object)
 Convenience function to test pointer object.
template<typename T >
bool isnullp (T *object)
 Convenience function to test pointer-pointer object.
bool le (String &s1, const char *s2)
template<typename T >
T &() limit (T &value, T &low, T &high)
 Convenience macro to range restrict values.
void lock (ExclusiveAccess &object)
 Convenience function to exclusively lock an object through it's protocol.
void lock (rexlock_t &lock)
 Convenience function to lock a shared recursive mutex lock.
bool lt (String &s1, const char *s2)
template<typename T >
const T() max (const T &v1, const T &v2)
 Template for max value of a type.
template<typename T >
T &() max (T &o1, T &o2)
 Convenience function to return max of two objects.
template<typename T >
const T() min (const T &v1, const T &v2)
 Template for min value of a type.
template<typename T >
T &() min (T &o1, T &o2)
 Convenience function to return min of two objects.
void modify (accesslock_t &lock)
 Convenience function to exclusively schedule conditional access.
void modify (condlock_t &lock)
 Convenience function to exclusively aquire a conditional lock.
bool ne (char const *s1, char const *s2)
bool ne (char const *s1, char const *s2, size_t size)
bool ne (String &s1, String &s2)
bool ne_case (char const *s1, char const *s2)
std::string & operator+ (std::string &target, String &source)
std::string & operator+= (std::string &target, String &source)
std::ostream & operator<< (std::ostream &out, const PrintProtocol &format)
std::ostream & operator<< (std::ostream &out, const string_t &str)
std::ostream & operator<< (std::ostream &out, const stringlist_t &list)
std::ostream & operator<< (std::ostream &os, Socket::address &addr)
CharacterProtocoloperator<< (CharacterProtocol &p, const char *s)
CharacterProtocoloperator<< (CharacterProtocol &p, const char &ch)
CharacterProtocoloperator<< (CharacterProtocol &p, const PrintProtocol &format)
CharacterProtocoloperator<< (CharacterProtocol &p, const StringPager &list)
CharacterProtocoloperator<< (CharacterProtocol &p, const long &value)
CharacterProtocoloperator<< (CharacterProtocol &p, const double &value)
std::istream & operator>> (std::istream &inp, InputProtocol &format)
std::istream & operator>> (std::istream &inp, string_t &str)
std::istream & operator>> (std::istream &in, stringlist_t &list)
CharacterProtocoloperator>> (CharacterProtocol &p, char &ch)
CharacterProtocoloperator>> (CharacterProtocol &p, String &str)
CharacterProtocoloperator>> (CharacterProtocol &p, InputProtocol &format)
CharacterProtocoloperator>> (CharacterProtocol &p, StringPager &list)
CharacterProtocoloperator>> (CharacterProtocol &p, long &value)
CharacterProtocoloperator>> (CharacterProtocol &p, double &value)
void release (SharedAccess &object)
 Convenience function to unlock shared object through it's protocol.
void release (exlock_t &reference)
 Convenience function to release a reference to an exclusive lock.
void release (shlock_t &reference)
 Convenience function to release a reference to a shared lock.
void release (ObjectProtocol *object)
 Convenience function to access object release.
void release (semaphore_t &semaphore)
 Convenience function to release a semaphore.
void release (mutex_t &mutex)
 Convenience function to release a mutex.
void release (accesslock_t &lock)
 Convenience function to release an access lock.
void release (condlock_t &lock)
 Convenience function to release shared access to a conditional lock.
void release (rwlock_t &lock)
 Convenience function to release a shared lock.
void release (rexlock_t &lock)
 Convenience function to release a shared recursive mutex lock.
template<typename T >
void reset_unsafe (T &object)
 Convenience function to reset an existing object.
void retain (ObjectProtocol *object)
 Convenience function to access object retention.
void share (SharedAccess &object)
 Convenience function to restore shared locking for object through it's protocol.
void share (condlock_t &lock)
 Convenience function to restore shared access on a conditional lock.
bool share (rwlock_t &lock, timeout_t timeout=Timer::inf)
 Convenience function for shared read access to a read/write lock.
const char * shift (stringlist_t &list)
void start (JoinableThread *thread, int priority=0)
 Convenience function to start a joinable thread.
void start (DetachedThread *thread, int priority=0)
 Convenience function to start a detached thread.
template<typename T >
void store_unsafe (T &target, const T *source)
 Convenience function to store object pointer into object.
String str (StringPager &list, const char *prefix=((void *) 0), const char *middle=((void *) 0), const char *suffix=((void *) 0))
String str (const char *string)
String str (String &string)
String str (short value)
String str (unsigned short value)
String str (long value)
String str (unsigned long value)
String str (double value)
String str (CharacterProtocol &cp, strsize_t size)
String str (Socket &so, strsize_t size)
ucs4_tstrudup (const char *string)
ucs2_tstrwdup (const char *string)
template<typename T >
void swap (T &o1, T &o2)
 Convenience function to swap objects.
template<>
void swap< string_t > (string_t &s1, string_t &s2)
unicode_t unidup (const char *string)
void unlock (ExclusiveAccess &object)
 Convenience function to unlock an exclusive object through it's protocol.
void unshift (stringlist_t &list, const char *text)
void wait (barrier_t &barrier)
 Convenience function to wait on a barrier.
void wait (semaphore_t &semaphore, timeout_t timeout=Timer::inf)
 Convenience function to wait on a semaphore.
template<typename T >
void zero_unsafe (T &object)
 Convenience function to zero an object and restore type info.
void zerofill (void *addr, size_t size)

Detailed Description

Common namespace for all ucommon objects.

We are using a common namespace to easily separate ucommon from other libraries. This namespace usage is set to the package name and controlled by macros so future changes will be hidden from user applications so long as the namespace macros (UCOMMON_NAMESPACE, NAMESPACE_UCOMMON, END_NAMESPACE) are used in place of direct namespace declarations.


Typedef Documentation

typedef int16_t ucommon::ucs2_t

16 bit unicode character code.

Java and some api's like these.

Definition at line 55 of file unicode.h.

typedef int32_t ucommon::ucs4_t

32 bit unicode character code.

We may extract this from a ucs2 or utf8 string.

Definition at line 50 of file unicode.h.


Function Documentation

template<typename T >
const T ucommon::abs ( const T &  value) [inline]

Template for absolute value of a type.

Parameters:
valueto check
Returns:
absolute value

Definition at line 207 of file numbers.h.

void ucommon::access ( SharedAccess &  object) [inline]

Convenience function to access (lock) shared object through it's protocol.

Parameters:
objectto share lock.

Definition at line 254 of file access.h.

void ucommon::access ( accesslock_t &  lock) [inline]

Convenience function to shared read schedule conditional access.

Parameters:
lockto access shared.

Definition at line 1969 of file thread.h.

Here is the call graph for this function:

void ucommon::access ( condlock_t &  lock) [inline]

Convenience function for shared access to a conditional lock.

Parameters:
lockto access.

Definition at line 2020 of file thread.h.

Here is the call graph for this function:

void ucommon::acquire ( mutex_t &  mutex) [inline]

Convenience function to acquire a mutex.

Parameters:
mutexto acquire.

Definition at line 1948 of file thread.h.

Here is the call graph for this function:

struct sockaddr* ucommon::addr ( Socket::address &  address) [read]

A convenience function to convert a socket address list into a socket address.

Parameters:
addresslist object.
Returns:
first socket address in list or NULL if empty.

Definition at line 1989 of file socket.h.

Here is the call graph for this function:

struct addrinfo* ucommon::addrinfo ( Socket::address &  address) [read]

A convenience function to convert a socket address list into an addrinfo.

Parameters:
addresslist object.
Returns:
addrinfo list or NULL if empty.

Definition at line 1980 of file socket.h.

Here is the call graph for this function:

template<typename T >
bool ucommon::bound ( const T *  pointer,
const T *  base,
size_t  count 
) [inline]

Convenience function to check memory arrays.

Parameters:
pointerto validate.
baseaddress of array.
countof objects.
Returns:
true if in boundry.

Definition at line 579 of file generics.h.

void ucommon::commit ( accesslock_t &  lock) [inline]

Convenience function to commit an exclusive access lock.

lock.

Parameters:
lockto commit.

Definition at line 1984 of file thread.h.

Here is the call graph for this function:

void ucommon::commit ( condlock_t &  lock) [inline]

Convenience function to commit and release an exclusively locked conditional lock.

Parameters:
lockto commit.

Definition at line 2013 of file thread.h.

Here is the call graph for this function:

ObjectProtocol* ucommon::copy ( ObjectProtocol *  object) [inline]

Convenience function to access object copy.

Parameters:
objectwe are copying.

Definition at line 480 of file object.h.

Here is the call graph for this function:

template<typename T >
void ucommon::copy_unsafe ( T *  target,
const T *  source 
) [inline]

Convenience function to copy class.

Parameters:
targetto copy into.
sourceto copy from.

Definition at line 547 of file generics.h.

template<typename T >
T& ucommon::deref_pointer ( T *  pointer) [inline]

Convert a pointer to a reference with type checking.

This is mostly convenience for documenting behavior.

Parameters:
pointerto convert.
Returns:
object reference.

Definition at line 628 of file generics.h.

template<typename T >
T* ucommon::dup ( const T &  object) [inline]

Convenience function to duplicate object pointer to heap.

Parameters:
objectwe are duping.
Returns:
heap pointer instance.

Definition at line 504 of file generics.h.

bool ucommon::eq ( char const *  s1,
char const *  s2 
) [inline]

Compare two null terminated strings if equal.

Parameters:
s1string to compare.
s2string to compare.
Returns:
true if equal.

Definition at line 1668 of file string.h.

Here is the call graph for this function:

bool ucommon::eq ( char const *  s1,
char const *  s2,
size_t  size 
) [inline]

Compare two null terminated strings if equal up to specified size.

Parameters:
s1string to compare.
s2string to compare.
sizeof string to compare.
Returns:
true if equal.

Definition at line 1681 of file string.h.

Here is the call graph for this function:

bool ucommon::eq ( String &  s1,
const char *  s2 
) [inline]

Compare two string objects if equal.

The left string is an object, the right may be an object or converted to a const string. The compare virtual method of the left object is used, so we can do things like collation order or derived class specific sorting.

Parameters:
s1string to compare.
s2string to compare.
Returns:
true if equal.

Definition at line 1696 of file string.h.

Here is the call graph for this function:

bool ucommon::eq ( const struct sockaddr *  s1,
const struct sockaddr *  s2 
) [inline]

Compare two socket addresses to see if equal.

If the port is zero then this is the same as comparing host address alone.

Parameters:
s1socket address to compare.
s2socket address to compare.
Returns:
true if addresses same.
Examples:
cipher.cpp, datetime.cpp, digest.cpp, shell.cpp, and string.cpp.

Definition at line 1999 of file socket.h.

Here is the call graph for this function:

bool ucommon::eq ( const struct sockaddr_storage *  s1,
const struct sockaddr_storage *  s2 
) [inline]

Compare two stored socket addresses to see if equal.

If the port is zero then this is the same as comparing host address alone.

Parameters:
s1stored socket address to compare.
s2stored socket address to compare.
Returns:
true if addresses same.

Definition at line 2009 of file socket.h.

Here is the call graph for this function:

bool ucommon::eq_case ( char const *  s1,
char const *  s2 
) [inline]

Compare two null terminated strings if equal ignoring case.

This is related to stricmp or gcc strcasecmp.

Parameters:
s1string to compare.
s2string to compare.
Returns:
true if equal.
Examples:
keydata.cpp, and string.cpp.

Definition at line 1721 of file string.h.

Here is the call graph for this function:

bool ucommon::eq_case ( char const *  s1,
char const *  s2,
size_t  size 
) [inline]

Compare two null terminated strings if equal for a specified size ignoring case.

This is related to stricmp or gcc strcasecmp.

Parameters:
s1string to compare.
s2string to compare.
sizeof string to compare.
Returns:
true if equal.

Definition at line 1735 of file string.h.

Here is the call graph for this function:

bool ucommon::eq_host ( const struct sockaddr *  s1,
const struct sockaddr *  s2 
) [inline]

Compare two host addresses to see if equal.

The port numbers are ignored.

Parameters:
s1socket address to compare.
s2socket address to compare.
Returns:
true if addresses same.

Definition at line 2019 of file socket.h.

Here is the call graph for this function:

void ucommon::exclusive ( SharedAccess &  object) [inline]

Convenience function to exclusive lock shared object through it's protocol.

Parameters:
objectto exclusive lock.

Definition at line 268 of file access.h.

void ucommon::exclusive ( condlock_t &  lock) [inline]

Convenience function to exclusively lock shared conditional lock.

Parameters:
lockto make exclusive.

Definition at line 1991 of file thread.h.

Here is the call graph for this function:

bool ucommon::exclusive ( rwlock_t &  lock,
timeout_t  timeout = Timer::inf 
) [inline]

Convenience function for exclusive write access to a read/write lock.

Parameters:
lockto write lock.
timeoutto wait for exclusive locking.

Definition at line 2035 of file thread.h.

Here is the call graph for this function:

template<class T >
bool ucommon::is ( T &  object) [inline]

Convenience function to validate object assuming it is castable to bool.

Parameters:
objectwe are testing.
Returns:
true if object valid.
Examples:
datetime.cpp, and shell.cpp.

Definition at line 472 of file generics.h.

template<typename T >
bool ucommon::isnull ( T &  object) [inline]

Convenience function to test pointer object.

This solves issues where some compilers get confused between bool and pointer operators.

Parameters:
objectwe are testing.
Returns:
true if object points to NULL.

Definition at line 483 of file generics.h.

template<typename T >
bool ucommon::isnullp ( T *  object) [inline]

Convenience function to test pointer-pointer object.

This solves issues where some compilers get confused between bool and pointer operators.

Parameters:
objectwe are testing.
Returns:
true if object points to NULL.

Definition at line 494 of file generics.h.

template<typename T >
T&() ucommon::limit ( T &  value,
T &  low,
T &  high 
) [inline]

Convenience macro to range restrict values.

Parameters:
valueto check.
lowvalue.
highvalue.
Returns:
adjusted value.

Definition at line 617 of file generics.h.

void ucommon::lock ( ExclusiveAccess &  object) [inline]

Convenience function to exclusively lock an object through it's protocol.

Parameters:
objectto lock.

Definition at line 240 of file access.h.

void ucommon::lock ( rexlock_t &  lock) [inline]

Convenience function to lock a shared recursive mutex lock.

Parameters:
lockto acquire.

Definition at line 2057 of file thread.h.

Here is the call graph for this function:

template<typename T >
const T() ucommon::max ( const T &  v1,
const T &  v2 
) [inline]

Template for max value of a type.

Parameters:
v1value to check
v2value to check
Returns:
v1 if > v2, else v2

Definition at line 234 of file numbers.h.

template<typename T >
T&() ucommon::max ( T &  o1,
T &  o2 
) [inline]

Convenience function to return max of two objects.

Parameters:
o1to check.
o2to check.
Returns:
max object.
Examples:
string.cpp.

Definition at line 594 of file generics.h.

template<typename T >
const T() ucommon::min ( const T &  v1,
const T &  v2 
) [inline]

Template for min value of a type.

Parameters:
v1value to check
v2value to check
Returns:
v1 if < v2, else v2

Definition at line 222 of file numbers.h.

template<typename T >
T&() ucommon::min ( T &  o1,
T &  o2 
) [inline]

Convenience function to return min of two objects.

Parameters:
o1to check.
o2to check.
Returns:
min object.

Definition at line 605 of file generics.h.

void ucommon::modify ( accesslock_t &  lock) [inline]

Convenience function to exclusively schedule conditional access.

Parameters:
lockto make exclusive.

Definition at line 1962 of file thread.h.

Here is the call graph for this function:

void ucommon::modify ( condlock_t &  lock) [inline]

Convenience function to exclusively aquire a conditional lock.

Parameters:
lockto acquire for modify.

Definition at line 2005 of file thread.h.

Here is the call graph for this function:

void ucommon::release ( SharedAccess &  object) [inline]

Convenience function to unlock shared object through it's protocol.

Parameters:
objectto unlock.

Definition at line 261 of file access.h.

void ucommon::release ( exlock_t &  reference) [inline]

Convenience function to release a reference to an exclusive lock.

Parameters:
referenceto object referencing exclusive locked object.

Definition at line 292 of file access.h.

Here is the call graph for this function:

void ucommon::release ( shlock_t &  reference) [inline]

Convenience function to release a reference to a shared lock.

Parameters:
referenceto object referencing shared locked object.

Definition at line 299 of file access.h.

Here is the call graph for this function:

void ucommon::release ( ObjectProtocol *  object) [inline]

Convenience function to access object release.

Parameters:
objectwe are releasing.

Definition at line 473 of file object.h.

void ucommon::release ( semaphore_t &  semaphore) [inline]

Convenience function to release a semaphore.

Parameters:
semaphoreto release.

Definition at line 1941 of file thread.h.

Here is the call graph for this function:

void ucommon::release ( mutex_t &  mutex) [inline]

Convenience function to release a mutex.

Parameters:
mutexto release.

Definition at line 1955 of file thread.h.

Here is the call graph for this function:

void ucommon::release ( accesslock_t &  lock) [inline]

Convenience function to release an access lock.

Parameters:
lockto release.

Definition at line 1976 of file thread.h.

Here is the call graph for this function:

void ucommon::release ( condlock_t &  lock) [inline]

Convenience function to release shared access to a conditional lock.

Parameters:
lockto release.

Definition at line 2027 of file thread.h.

Here is the call graph for this function:

void ucommon::release ( rwlock_t &  lock) [inline]

Convenience function to release a shared lock.

Parameters:
lockto release.

Definition at line 2050 of file thread.h.

Here is the call graph for this function:

void ucommon::release ( rexlock_t &  lock) [inline]

Convenience function to release a shared recursive mutex lock.

Parameters:
lockto release.

Definition at line 2064 of file thread.h.

Here is the call graph for this function:

template<typename T >
void ucommon::reset_unsafe ( T &  object) [inline]

Convenience function to reset an existing object.

Parameters:
objecttype to reset.

Definition at line 528 of file generics.h.

void ucommon::retain ( ObjectProtocol *  object) [inline]

Convenience function to access object retention.

Parameters:
objectwe are retaining.

Definition at line 466 of file object.h.

void ucommon::share ( SharedAccess &  object) [inline]

Convenience function to restore shared locking for object through it's protocol.

Parameters:
objectto restore shared locking.

Definition at line 275 of file access.h.

void ucommon::share ( condlock_t &  lock) [inline]

Convenience function to restore shared access on a conditional lock.

Parameters:
lockto make shared.

Definition at line 1998 of file thread.h.

Here is the call graph for this function:

bool ucommon::share ( rwlock_t &  lock,
timeout_t  timeout = Timer::inf 
) [inline]

Convenience function for shared read access to a read/write lock.

Parameters:
lockto share read lock.
timeoutto wait for shared access.

Definition at line 2043 of file thread.h.

Here is the call graph for this function:

void ucommon::start ( JoinableThread *  thread,
int  priority = 0 
) [inline]

Convenience function to start a joinable thread.

Parameters:
threadto start.
priorityof thread.
Examples:
thread.cpp.

Definition at line 1871 of file thread.h.

Here is the call graph for this function:

void ucommon::start ( DetachedThread *  thread,
int  priority = 0 
) [inline]

Convenience function to start a detached thread.

Parameters:
threadto start.
priorityof thread.

Definition at line 1879 of file thread.h.

Here is the call graph for this function:

template<typename T >
void ucommon::store_unsafe ( T &  target,
const T *  source 
) [inline]

Convenience function to store object pointer into object.

Parameters:
targetto copy into.
sourceto copy from.

Definition at line 557 of file generics.h.

template<typename T >
void ucommon::swap ( T &  o1,
T &  o2 
) [inline]

Convenience function to swap objects.

Parameters:
o1to swap.
o2to swap.

Definition at line 567 of file generics.h.

Here is the call graph for this function:

void ucommon::unlock ( ExclusiveAccess &  object) [inline]

Convenience function to unlock an exclusive object through it's protocol.

Parameters:
objectto unlock.

Definition at line 247 of file access.h.

void ucommon::wait ( barrier_t &  barrier) [inline]

Convenience function to wait on a barrier.

Parameters:
barrierto wait.

Definition at line 1926 of file thread.h.

Here is the call graph for this function:

void ucommon::wait ( semaphore_t &  semaphore,
timeout_t  timeout = Timer::inf 
) [inline]

Convenience function to wait on a semaphore.

Parameters:
semaphoreto wait on.
timeoutto wait for.

Definition at line 1934 of file thread.h.

Here is the call graph for this function:

template<typename T >
void ucommon::zero_unsafe ( T &  object) [inline]

Convenience function to zero an object and restore type info.

Parameters:
objectto zero in memory.

Definition at line 537 of file generics.h.