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];