Classes | |
class | BigInteger |
Ported from http://www.bouncycastle.org/csharp/index.html. More... | |
class | Char |
char helper class More... | |
class | Compare |
Compare's job is to allow template classes to perform search, sorting, and balancing without understanding the types involved. More... | |
class | Convert |
Helper for Variant and templates to perform automatic type conversion. More... | |
class | Date |
A date with no time. Most operations involve a single long value, so performance is generally good. More... | |
class | DateTime |
class | Decimal |
Fixed point decimal helper. More... | |
class | IDelegate |
class | Delegate< T > |
C# style delegate with no arguments for call backs by DelegateDispatch. Use in place of implemting call back interfaces to symplify code. DelegateDispatch. More... | |
class | IDelegateOneParameter< ARG > |
class | DelegateOneParameter< T, ARG > |
C# style delegate with one argument for call backs by DelegateDispatch. Use in place of implemting call back interfaces to symplify code. DelegateDispatch. More... | |
class | IDelegateTwoParameter< ARG1, ARG2 > |
class | DelegateTwoParameter< T, ARG1, ARG2 > |
C# style delegate with two arguments for call backs by DelegateDispatch. Use in place of implemting call back interfaces to symplify code. DelegateDispatch. More... | |
class | IDelegateThreeParameter< ARG1, ARG2, ARG3 > |
class | DelegateThreeParameter< T, ARG1, ARG2, ARG3 > |
C# style delegate with three arguments for call backs by DelegateDispatch. Use in place of implemting call back interfaces to symplify code. DelegateDispatch. More... | |
class | DelegateDispatch |
Dispatcher for C# style delegates with no arguments. Use in place of implemting call back interfaces to symplify code. Delegate. More... | |
class | DelegateDispatchOneParameter< ARG1 > |
Dispatcher for C# style delegates with one argument. Use in place of implemting call back interfaces to symplify code. DelegateOneParameter. More... | |
class | DelegateDispatchTwoParameter< ARG1, ARG2 > |
Dispatcher for C# style delegates with two arguments. Use in place of implemting call back interfaces to symplify code. DelegateTwoParameter. More... | |
class | DelegateDispatchThreeParameter< ARG1, ARG2, ARG3 > |
Dispatcher for C# style delegates with three arguments. Use in place of implemting call back interfaces to symplify code. DelegateThreeParameter. More... | |
class | Double |
double helper type. More... | |
class | Guid |
A Globally Unique Identifier. This does not use microsoft's algorithm, but is similiar to type 4 UUID. However, it does not have a '4' in the required position. More... | |
class | IConvertable |
Implement this interface to make your class compatable with Convert. Convert. More... | |
class | IIterator< T > |
Each collection type defines a specialized iterator for its contents. More... | |
class | Image |
Simplistic image data, currently only works with BMP. More... | |
class | Int32 |
32-bit integer helper. More... | |
class | Int64 |
64-bit integer helper. More... | |
class | IVariant |
The purpose of this class is to allow JsObject to be a variant type, and to allow Variant to be the JsObject's property type. More... | |
class | Null |
This class is for a Variant type. Variant. More... | |
class | Numeric |
Base class for all numeric type classes. More... | |
class | String |
Your friend, the string. More... | |
class | TriState |
struct | WrapType< T > |
class | IHashable |
Lets Math return hash codes in an implementation independant way (mostly for Hashtable keys). More... | |
class | IComparable |
Lets Hashtable (through Math) use pointer keys. Implementors of IComparable assume that the argument is of their type. I.e., arbitrary types cannot be passed to Equals and Compare. More... | |
class | UInt32 |
Unsigned 32-bit integer helper. More... | |
class | UInt64 |
Unsigned 64-bit integer helper. More... | |
class | Undefined |
For an unset Variant Variant. More... | |
class | IVariantData |
class | _VariantData< T > |
class | Variant |
A variant type mostly for use in interpreters for variant languages. More... | |
class | WeakReference< BASE, BASEPTR > |
Use weak references in place of RefCountPtr's to break circular pointer dependancies. More... | |
Namespaces | |
namespace | spl |
The spl name space is used for some of the stream classes to prevent conflicts with windoze. Perhaps it should be used for the entire library, maybe. | |
Defines | |
#define | BIGINTEGER_MAJIC 721 |
#define | CHAR_MAJIC 0x0015 |
#define | DATE_MAJIC 0xA011 |
#define | DATETIME_MAJIC 0x41FA |
#define | DECIMAL_MAJIC 0x1234 |
#define | DOUBLE_MAJIC 0x0014 |
#define | FLOAT_MAJIC 0x1000 |
#define | GUID_SIZE_BYTES 16 |
#define | INT32_MAJIC 0x0010 |
#define | INT64_MAJIC 0x0011 |
#define | NULL_MAJIC 0 |
#define | STRING_MAJIC 0x0001 |
#define | REGISTER_TYPEOF(N, T) |
#define | REGISTER_TYPEOF2(N, T, T2) |
#define | type_of(x) typeof_class<sizeof(*typeof_fct(x))>::V |
#define | USER_REGISTER_TYPEOF_START 1024 |
#define | foreach(_it_, _collection_) for(type_of(_collection_)::Iterator _it_ = _collection_.Begin();_it_.Next(); ) |
foreach suppport for Array, List, and Vector. To add foreach support for collections of your objects, register your class with the REGISTER_TYPEOF macro. | |
#define | LITTLE_ENDIAN 1 |
#define | false 0 |
#define | true 1 |
#define | IL_MIN_INT32 ((int32)0x80000000) |
#define | IL_MAX_INT32 ((int32)0x7FFFFFFF) |
#define | IL_MAX_UINT32 ((uint32)0xFFFFFFFFL) |
#define | IL_MIN_INT64 ((int64)0x8000000000000000LL) |
#define | IL_MAX_INT64 ((int64)0x7FFFFFFFFFFFFFFFLL) |
#define | IL_MAX_UINT64 ((int64)0x7FFFFFFFFFFFFFFFLL) |
#define | READ_BYTE(buf, offset) ((int32)(((int8 *)(buf))[(offset)])) |
#define | READ_BYTE_SHIFT(buf, offset, shift) (((uint32)(((uint8 *)(buf))[(offset)])) << (shift)) |
#define | BYTE_MAJIC 0x0112 |
#define | BOOL_MAJIC 0x0113 |
#define | INT16_MAJIC 0x0114 |
#define | FLOAT32_MAJIC 0x0115 |
#define | UINT32_MAJIC 0x0012 |
#define | UINT64_MAJIC 0x013 |
#define | UNDEFINED_MAJIC 404 |
Typedefs | |
typedef RefCountPtr< BigInteger > | BigIntegerPtr |
typedef WeakReference < BigInteger, BigIntegerPtr > | BigIntegerRef |
typedef RefCountPtr< String > | StringPtr |
typedef WeakReference< String, StringPtr > | StringRef |
typedef signed __int64 | int64 |
typedef unsigned __int64 | uint64 |
typedef signed int | int32 |
typedef signed short | int16 |
typedef __int8 | int8 |
typedef unsigned char | byte |
typedef unsigned int | uint32 |
typedef unsigned short | uint16 |
typedef unsigned __int8 | uint8 |
typedef float | float32 |
typedef double | float64 |
typedef char | bool |
typedef RefCountPtr< Variant > | VariantPtr |
typedef WeakReference< Variant, VariantPtr > | VariantRef |
Functions | |
REGISTER_TYPEOF (550, BigIntegerPtr) | |
REGISTER_TYPEOF (552, BigIntegerRef) | |
void | ValidateType (const BigInteger &b) |
void | ValidateType (BigIntegerPtr b) |
REGISTER_TYPEOF (554, BigInteger) | |
REGISTER_TYPEOF (556, Char) | |
REGISTER_TYPEOF (558, Date) | |
void | ValidateType (DateTime &dtm) |
void | ValidateType (DateTime *dtm) |
REGISTER_TYPEOF (559, DateTime) | |
void | ValidateType (Decimal &dec) |
void | ValidateType (Decimal *dec) |
REGISTER_TYPEOF (560, Decimal) | |
REGISTER_TYPEOF (562, Double) | |
void | ValidateType (const Guid &guid) |
void | ValidateType (Guid *guid) |
REGISTER_TYPEOF (564, Guid) | |
REGISTER_TYPEOF (566, Int32) | |
REGISTER_TYPEOF (568, Int64) | |
void | ValidateType (const Null &u) |
void | ValidateType (const Null *u) |
REGISTER_TYPEOF (571, Null) | |
REGISTER_TYPEOF (572, StringPtr) | |
REGISTER_TYPEOF (574, StringRef) | |
void | ValidateType (const String &s) |
String | operator+ (const char *cp, const String &str) |
bool | operator== (const char *cp, const String &str) |
REGISTER_TYPEOF (570, String) | |
REGISTER_TYPEOF (588, Vector< String >) | |
REGISTER_TYPEOF (589, Array< String >) | |
REGISTER_TYPEOF (1, char) | |
REGISTER_TYPEOF (2, byte) | |
REGISTER_TYPEOF (6, int16) | |
REGISTER_TYPEOF (7, uint16) | |
REGISTER_TYPEOF (8, long) | |
REGISTER_TYPEOF (9, unsigned long) | |
REGISTER_TYPEOF (10, int32) | |
REGISTER_TYPEOF (11, uint32) | |
REGISTER_TYPEOF (12, int64) | |
REGISTER_TYPEOF (13, uint64) | |
REGISTER_TYPEOF (14, float32) | |
REGISTER_TYPEOF (15, float64) | |
REGISTER_TYPEOF (17, IHashable) | |
REGISTER_TYPEOF (18, IComparable) | |
void | ValidateType (int8 i) |
void | ValidateType (int16 i) |
void | ValidateType (int32 i) |
void | ValidateType (int64 i) |
void | ValidateType (float32 i) |
void | ValidateType (float64 i) |
void | ValidateType (byte i) |
void | ValidateType (uint16 i) |
void | ValidateType (uint32 i) |
void | ValidateType (uint64 i) |
REGISTER_TYPEOF (576, UInt32) | |
REGISTER_TYPEOF (578, UInt64) | |
void | ValidateType (const Undefined &u) |
void | ValidateType (const Undefined *u) |
REGISTER_TYPEOF (580, Undefined) | |
REGISTER_TYPEOF (584, VariantPtr) | |
REGISTER_TYPEOF (586, VariantRef) | |
REGISTER_TYPEOF (606, Array< VariantPtr >) | |
REGISTER_TYPEOF (610, Vector< VariantPtr >) | |
REGISTER_TYPEOF (582, Variant) | |
REGISTER_TYPEOF (600, Array< Variant >) | |
REGISTER_TYPEOF (604, Vector< Variant >) |
#define foreach | ( | _it_, | |||
_collection_ | ) | for(type_of(_collection_)::Iterator _it_ = _collection_.Begin();_it_.Next(); ) |
foreach suppport for Array, List, and Vector. To add foreach support for collections of your objects, register your class with the REGISTER_TYPEOF macro.
#include <spl/collection/Hashtable.h> #include <spl/collection/Vector.h> class MyClass { // class stuff ... }; REGISTER_TYPEOF(USER_REGISTER_TYPEOF_START+1,MyClass); REGISTER_TYPEOF(USER_REGISTER_TYPEOF_START+2,Vector<MyClass>); REGISTER_TYPEOF2(USER_REGISTER_TYPEOF_START+3,Hashtable<String,MyClass>);
Arary Hashtable List RedBlackTree Vector REGISTER_TYPEOF REGISTER_TYPEOF2
Vector<int> nums(); nums.Add(1); nums.Add(2); nums.Add(3); foreach(i,nums) { printf("%d\n", i.Current()); }
#define REGISTER_TYPEOF | ( | N, | |||
T | ) |
template<> struct typeof_class<N > { typedef WrapType<T >::U V; }; \ char (*typeof_fct(const WrapType<T >::U &))[N];
#define REGISTER_TYPEOF2 | ( | N, | |||
T, | |||||
T2 | ) |
template<> struct typeof_class<N > { typedef WrapType<T,T2 >::U V; }; \ char (*typeof_fct(const WrapType<T,T2 >::U &))[N];