LDK Namespace Reference
[Threading]

Contains the entire library. More...


Data Structures

union  Cas2Data
class  Atomic
class  Hash< const char *, Data, Alloc >
class  Exception
 Base class of all LDK exceptions. More...
class  RuntimeError
 Base class for exceptions catering for conditions that can only be detected at runtime. More...
class  ArgumentError
 Indicates a problem with a function/methods arguments. More...
class  IOError
 Indicates a problem with file io. More...
class  EofError
 Indicates an attempt to read before a file starts or after it ends. More...
class  IndexError
 Indicates an index is out of range in a container class. More...
class  LengthError
 Indicates an attempt to use a container class beyond it's maximum (or minimum) size. More...
class  BadAllocError
 Indicated an out of memory condition. More...
class  NullPtrError
 Indicates a NULL pointer. More...
class  LogicError
 Indicates a problem which should be solvable at compile time. More...
class  NotImplimentedError
 Indicates a function or method has not been implimented yet. More...
class  ThreadError
 Indicated the thread API has been abused. More...
class  Hasher< int >
class  Hasher< int64 >
class  Hasher< const char * >
class  Hasher< String >
class  Hash
 A Hash specialised for c strings (const char *). More...
class  LocklessQueue
 A threadsafe lockless queue template. More...
class  MetaPool
struct  CTAllocHelper
struct  RTAllocHelper
class  Mutex
 A recursive, single process mutex. More...
class  Lock
 Automatically locks and unlocks a Mutex using c++ scope rules. More...
class  Object
class  PhysFSFile
 VFile class that makes use of Ryan C. Gordon's fantastic physfs library. More...
struct  v4sf
class  V4SF
class  V4SFVector
class  SingletonCleanup
class  ThreadLocalCleanup
class  SingletonStorage
 A "normal" singleton storage class. More...
class  TLSSingletonStorage
 A "thread-local singleton" storage policy. More...
class  Singleton
 A policy based generic singleton. More...
class  SmartPointerBase
 Functionality common to all smart pointers. More...
class  IntrusiveSmartPointer
 A intrusive smart pointer for LDK::Objects allocated with LDK::create only. More...
class  SmartPointer
 A non-instrusive smart pointer to hold memory allocated with LDK::create only. More...
class  NewSmartPointer
 A non-instrusive smart pointer to hold objects allocated with new only. More...
class  RawSmartPointer
class  StdFile
 VFile class that encapsulates a FILE*. More...
class  Allocator
 An (almost) standard compiliant, threadsafe STL allocator with an MSVC extension. More...
class  MallocAllocator
 An (almost) standard compiliant, threadsafe STL allocator with an MSVC extension. More...
class  Thread
 A thread of execution. More...
class  VFile
 Base class for all files. More...
class  VFileSystem
 The virtual filesystem. More...
class  XmlOutStream
struct  XmlCursor
class  XmlBase
class  XmlNode
class  XmlAttribute
class  XmlAttributeSet
class  XmlElement
class  XmlComment
class  XmlText
class  XmlDeclaration
class  XmlUnknown
class  XmlDocument
class  XmlHandle
class  IdentityBase
class  Identity
class  Tag
struct  SerializeParams
class  XmlBinding
class  IMemberHolder
class  IMemberValuePolicy
class  MemberFuncHolder
class  MemberFuncHolderConstRef
class  MemberPtrHolder
class  MemberRefFuncHolder
class  FromXmlElement
class  MemberHolder
class  FromXmlChildElement
class  FromXmlAttribute
class  MemberXmlBinding
class  GenericXmlBinding
class  GenericXmlBinding< const char * >
class  StlContainerXmlBinding
class  StlContainerPtrBinding
class  Hasher< std::string >

Namespaces

namespace  Details
namespace  Meta
 Contains the common template meta programming routines.
namespace  V4SFV

Typedefs

typedef Atomic< uint32AtomicCount
typedef Singleton< MetaPoolMemorySingleton
typedef void(*) SingletonDtor ()
typedef std::basic_stringstream<
char, std::char_traits< char >,
Allocator< char > > 
StringStream
 A std::stringstream that uses the LDK allocation system.
typedef std::basic_istringstream<
char, std::char_traits< char >,
Allocator< char > > 
IStringStream
 A std::istringstream that uses the LDK allocation system.
typedef std::basic_ostringstream<
char, std::char_traits< char >,
Allocator< char > > 
OStringStream
 A std::ostringstream that uses the LDK allocation system.
typedef std::basic_string<
char, std::char_traits< char >,
Allocator< char > > 
String
 A std::string that uses the LDK allocation system.
typedef SmartPointer< StringSmartString
 A SmartPointer specialised for Strings.
typedef SmartPointer< StringSmartConstString
 A SmartPointer specialised for const Strings.
typedef size_t ThreadID
typedef int int32
typedef unsigned int uint32
typedef short int16
typedef unsigned short uint16
typedef char int8
typedef unsigned char uint8
typedef IntrusiveSmartPointer<
VFile
SmartFile
typedef std::vector< String,
Allocator< String > > 
StringVec
typedef SmartPointer< StringVecSmartStringVec

Enumerations

enum  { LDKXML_SUCCESS, LDKXML_NO_ATTRIBUTE, LDKXML_WRONG_TYPE }
enum  XmlEncoding { LDKXML_ENCODING_UNKNOWN, LDKXML_ENCODING_UTF8, LDKXML_ENCODING_LEGACY }
enum  MemberSerializeFlags { MemberSerializeFlagsNone = 0, MemberOptional = 1 }

Functions

template<typename AddrT, typename OldvalT, typename NewvalT>
bool CAS (volatile AddrT *addr, volatile OldvalT oldval, volatile NewvalT newval)
template<typename AddrT, typename V1T, typename V2T, typename N1T, typename N2T>
bool CAS2 (volatile AddrT *addr, volatile V1T v1, volatile V2T v2, volatile N1T n1, volatile N2T n2)
uint16 swap16 (uint16 dat)
 Reverses the order of the bytes in a 16-bit integer.
uint32 swap32 (uint32 dat)
 Reverses the order of the bytes in a 32-bit integer.
uint64 swap64 (uint64 dat)
 Reverses the order of the bytes in a 64-bit integer.
uint16 swapULE16 (uint16 x)
 Converts an unsigned 16-bit integer to little endian format if not already in LE format, otherwise does nothing.
int16 swapSLE16 (int16 x)
 Converts a signed 16-bit integer to little endian format if not already in LE format, otherwise does nothing.
uint32 swapULE32 (uint32 x)
 Converts an unsigned 32-bit integer to big endian format if not already in BE format, otherwise does nothing.
int32 swapSLE32 (int32 x)
 Converts a signed 32-bit integer to little endian format if not already in LE format, otherwise does nothing.
uint64 swapULE64 (uint64 x)
 Converts an unsigned 64-bit integer to little endian format if not already in LE format, otherwise does nothing.
int64 swapSLE64 (int64 x)
 Converts a signed 64-bit integer to little endian format if not already in LE format, otherwise does nothing.
uint16 swapUBE16 (uint16 x)
 Converts an unsigned 16-bit integer to big endian format if not already in BE format, otherwise does nothing.
int16 swapSBE16 (int16 x)
 Converts a signed 16-bit integer to big endian format if not already in BE format, otherwise does nothing.
uint32 swapUBE32 (uint32 x)
int32 swapSBE32 (int32 x)
 Converts a signed 32-bit integer to big endian format if not already in BE format, otherwise does nothing.
uint64 swapUBE64 (uint64 x)
 Converts an unsigned 64-bit integer to big endian format if not already in BE format, otherwise does nothing.
int64 swapSBE64 (int64 x)
 Converts a signed 64-bit integer to big endian format if not already in BE format, otherwise does nothing.
LDK_API void initialise (const char *argv0)
LDK_API void * alignedAlloc (size_t bytes, size_t align=BYTE_ALIGNMENT)
LDK_API void alignedFree (void *mem)
void * bigAlloc (size_t size)
template<size_t Size>
void * alloc (const char *file, int line)
void * alloc (const char *file, int line, size_t size)
void dealloc (void *mem)
 Free memory allocated with this system only.
void * realloc (const char *file, int line, void *mem, size_t newSize)
template<class T>
T * create (const char *file, int line)
template<class T, typename C1>
T * create (const char *file, int line, C1 c1)
template<class T, typename C1, typename C2>
T * create (const char *file, int line, C1 c1, C2 c2)
template<class T, typename C1, typename C2, typename C3>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3)
template<class T, typename C1, typename C2, typename C3, typename C4>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4)
template<class T, typename C1, typename C2, typename C3, typename C4, typename C5>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4, C5 c5)
template<class T, typename C1, typename C2, typename C3, typename C4, typename C5, typename C6>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4, C5 c5, C6 c6)
template<class T, typename C1, typename C2, typename C3, typename C4, typename C5, typename C6, typename C7>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4, C5 c5, C6 c6, C7 c7)
template<class T, typename C1, typename C2, typename C3, typename C4, typename C5, typename C6, typename C7, typename C8>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4, C5 c5, C6 c6, C7 c7, C8 c8)
template<class T, typename C1, typename C2, typename C3, typename C4, typename C5, typename C6, typename C7, typename C8, typename C9>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4, C5 c5, C6 c6, C7 c7, C8 c8, C9 c9)
template<class T, typename C1, typename C2, typename C3, typename C4, typename C5, typename C6, typename C7, typename C8, typename C9, typename C10>
T * create (const char *file, int line, C1 c1, C2 c2, C3 c3, C4 c4, C5 c5, C6 c6, C7 c7, C8 c8, C9 c9, C10 c10)
template<class T>
void destroy (const T *o)
 Calls an object's destructor and frees the memory.
template<typename T1, typename T2>
bool operator== (const Allocator< T1 > &, const Allocator< T2 > &)
template<typename T1, typename T2>
bool operator!= (const Allocator< T1 > &, const Allocator< T2 > &)
template<typename T1, typename T2>
bool operator== (const MallocAllocator< T1 > &, const MallocAllocator< T2 > &)
template<typename T1, typename T2>
bool operator!= (const MallocAllocator< T1 > &, const MallocAllocator< T2 > &)
LDK_API ThreadID currentThreadID ()
 Get the identifier of the current thread.
LDK_API void yield ()
 Hands the remainder of the timeslice to another thread.
LDK_API void sleep (uint32 time)
 Send the current thread to sleep for a while.
template<class T>
bool BindToXml (XmlElement *elemOut, T const &dataIn)
template<class T>
bool BindFromXml (XmlElement const &elemIn, T *dataOut)
template<class T, class MT>
IMemberHolder< T > * Member (MT T::*mp)
template<class T, class MT>
IMemberHolder< T > * Member (MT &(T::*mp)())
template<class T, class MT>
IMemberHolder< T > * Member (MT(T::*getter)(), void(T::*setter)(MT))
template<class T, class MT>
IMemberHolder< T > * Member (MT const &(T::*getter)(), void(T::*setter)(MT const &))
template<class T, class MT>
IMemberHolder< T > * MemberAttribute (MT T::*mp)
template<class T, class MT>
IMemberHolder< T > * MemberAttribute (MT(T::*getter)(), void(T::*setter)(MT))
template<class T, class MT>
IMemberHolder< T > * MemberAttribute (MT const &(T::*getter)(), void(T::*setter)(MT const &))
template<class T, class MT>
IMemberHolder< T > * MemberPeer (MT T::*mp)
template<class T, class MT>
IMemberHolder< T > * MemberPeer (MT(T::*getter)(), void(T::*setter)(MT))
template<class T, class MT>
IMemberHolder< T > * MemberPeer (MT const &(T::*getter)(), void(T::*setter)(MT const &))
template<class T, class MT>
IMemberHolder< T > * MemberPeer (MT &(T::*mp)())
template<class T>
XmlBinding< T > * GetXmlBinding (T const &, IdentityBase)
template<class T, class VecT>
XmlBinding< VecT > * GetXmlBinding (std::vector< T > const &, Identity< VecT >)
template<class T, class VecT>
XmlBinding< VecT > * GetXmlBinding (std::list< T > const &, Identity< VecT >)

Variables

const LDK_API size_t PrimeConsts []
LDK_API MetaPool
LDK_API XmlDocument
LDK_API XmlElement
LDK_API XmlComment
LDK_API XmlUnknown
LDK_API XmlAttribute
LDK_API XmlText
LDK_API XmlDeclaration
LDK_API XmlParsingData
const int LDKXML_MAJOR_VERSION = 2
const int LDKXML_MINOR_VERSION = 3
const int LDKXML_PATCH_VERSION = 4
const LDK_API XmlEncoding LDKXML_DEFAULT_ENCODING


Typedef Documentation

LDK::ThreadID

The type used to identify a thread.

Definition at line 50 of file Threading.h.


Function Documentation

LDK::currentThreadID (  ) 

Returns:
The unique thread identifier.

Referenced by LDK::Details::Heap::allocChunk(), and bigAlloc().

void LDK::initialise ( const char *  argv0  ) 

Initialise the LDK library. If you experience instant crashes not calling this is a likely cause.

Parameters:
argv0 The argv[0] from main. Must not be NULL on unix systems.

Referenced by LDK::Singleton< LDK::Details::PerThreadVFS >::initialise(), LDK::TLSSingletonStorage< T >::initialise(), and LDK::SingletonStorage< T >::initialise().

LDK::sleep ( uint32  time  ) 

Parameters:
time The number of milliseconds to sleep for.
Todo:
doc VariableHz for Linux
Warning: often rounded to 10 millesecond blocks internally, so don't think you can accurately sleep for 1 millisecond except on Linux 2.6 series kernels.

LDK::yield (  ) 

May do nothing if the current thread is the highest priority thread.


Generated on Fri Aug 17 18:32:27 2007 for LDK by  doxygen 1.5.1