|
libUTL++
|
Abstract base for multi-key orderings. More...
#include <Ordering.h>

Public Member Functions | |
| virtual void | copy (const Object &rhs) |
| Copy another instance. More... | |
| virtual void | serialize (Stream &stream, uint_t io, uint_t mode=ser_default) |
| Serialize to or from a stream. More... | |
| void | addKey (uint_t fieldId, bool ascending=true) |
| Add a comparison key. More... | |
| void | clear () |
| Clear all keys. More... | |
| size_t | numKeys () const |
| Get the number of keys. More... | |
| uint_t | keyId (uint_t idx) const |
| Get the key id for the given sort key. More... | |
| bool | isAscending (uint_t idx) const |
| Get the ascending flag for the given sort key. More... | |
| bool | isDescending (uint_t idx) const |
| Get the negation of the ascending flag for the given sort key. More... | |
Public Member Functions inherited from utl::Ordering | |
| virtual int | cmp (const Object *lhs, const Object *rhs) const =0 |
| Compare two objects. More... | |
| int | operator() (const Object *lhs, const Object *rhs) const |
| An alternative to utl::cmp. More... | |
Public Member Functions inherited from utl::Object | |
| void | clear () |
| Revert to initial state. More... | |
| virtual int | compare (const Object &rhs) const |
| Compare with another object. More... | |
| virtual void | vclone (const Object &rhs) |
| Make an exact copy of another instance. More... | |
| virtual void | steal (Object &rhs) |
| "Steal" the internal representation from another instance. More... | |
| virtual void | dump (Stream &os, uint_t level=uint_t_max) const |
| Dump a human-readable representation of self to the given output stream. More... | |
| void | dumpWithClassName (Stream &os, uint_t indent=4, uint_t level=uint_t_max) const |
| Front-end for dump() that prints the object's class name. More... | |
| virtual const Object & | getKey () const |
| Get the key for this object. More... | |
| bool | hasKey () const |
| Determine whether or not the object has a key. More... | |
| virtual const Object & | getProxiedObject () const |
| Get the proxied object (= self if none). More... | |
| virtual Object & | getProxiedObject () |
| Get the proxied object (= self if none). More... | |
| virtual size_t | hash (size_t size) const |
| Get the hash code for the object. More... | |
| bool | _isA (const RunTimeClass *runTimeClass) const |
| Determine whether self's class is a descendent of the given class. More... | |
| virtual String | toString () const |
| Return a string representation of self. More... | |
| operator String () const | |
| Conversion to String. More... | |
| size_t | allocatedSize () const |
| Get the total allocated size of this object. More... | |
| virtual size_t | innerAllocatedSize () const |
| Get the "inner" allocated size. More... | |
| virtual void | addOwnedIt (const class FwdIt *it) const |
| Notify self that it owns the given iterator. More... | |
| virtual void | removeOwnedIt (const class FwdIt *it) const |
| Notify self that the given owned iterator has been destroyed. More... | |
| bool | operator< (const Object &rhs) const |
| Less-than operator. More... | |
| bool | operator<= (const Object &rhs) const |
| Less-than-or-equal-to operator. More... | |
| bool | operator> (const Object &rhs) const |
| Greater-than operator. More... | |
| bool | operator>= (const Object &rhs) const |
| Greater-than-or-equal-to operator. More... | |
| bool | operator== (const Object &rhs) const |
| Equal-to operator. More... | |
| bool | operator!= (const Object &rhs) const |
| Unequal-to operator. More... | |
| void | serializeIn (Stream &is, uint_t mode=ser_default) |
| Serialize from an input stream. More... | |
| void | serializeOut (Stream &os, uint_t mode=ser_default) const |
| Serialize to an output stream. More... | |
| void | serializeOutBoxed (Stream &os, uint_t mode=ser_default) const |
| Serialize a boxed object to an output stream. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from utl::Object | |
| static Object * | serializeInNullable (Stream &is, uint_t mode=ser_default) |
| Serialize a nullptr-able object from an input stream. More... | |
| static void | serializeOutNullable (const Object *object, Stream &os, uint_t mode=ser_default) |
| Serialize a nullptr-able object to an output stream. More... | |
| static void | serializeNullable (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
| Serialize a nullptr-able object to or from a stream. More... | |
| static Object * | serializeInBoxed (Stream &is, uint_t mode=ser_default) |
| Serialize a boxed object from an input stream. More... | |
| static void | serializeBoxed (Object *&object, Stream &stream, uint_t io, uint_t mode=ser_default) |
| Serialize a boxed object to or from a stream. More... | |
Protected Member Functions inherited from utl::FlagsMI | |
| FlagsMI () | |
| Constructor. More... | |
| virtual | ~FlagsMI () |
| Destructor. More... | |
| void | copyFlags (const FlagsMI &rhs) |
| Copy the given flags. More... | |
| void | copyFlags (const FlagsMI &rhs, uint_t lsb, uint_t msb) |
| Copy (some of) the given flags. More... | |
| void | copyFlags (uint64_t flags, uint_t lsb, uint_t msb) |
| Copy (some of) the given flags. More... | |
| bool | getFlag (uint_t flagNum) const |
| Get a user-defined flag. More... | |
| void | setFlag (uint_t flagNum, bool val) |
| Set a user-defined flag. More... | |
| uint64_t | getFlagsNumber (uint64_t mask, uint64_t shift=0) |
| Get a multi-bit value in the flags data (which is stored as one 64-bit integer). More... | |
| void | setFlagsNumber (uint64_t mask, uint64_t shift, uint64_t num) |
| Set a multi-bit value in the flags data (which is stored as one 64-bit integer). More... | |
| uint64_t | getFlags () const |
| Get the flags. More... | |
| void | setFlags (uint64_t flags) |
| Set the flags. More... | |
Abstract base for multi-key orderings.
MultiKeyOrdering maintains an array of field ids, and ascending/descending flags for each comparison key. It really only performs a simple book-keeping function.
A derived class will override cmp() to look something like this:
Definition at line 310 of file Ordering.h.
|
virtual |
Copy another instance.
When you override copy(), you should usually call the superclass's copy().
| rhs | object to copy |
Reimplemented from utl::Object.
|
virtual |
Serialize to or from a stream.
This is the only virtual method for serialization. You must override this in any class that has data to be serialized, and ensure that the superclass's serialize() gets called.
| stream | stream to serialize from/to |
| io | see utl::io_t |
| mode | see utl::serialize_t |
Reimplemented from utl::Object.
| void utl::MultiKeyOrdering::addKey | ( | uint_t | fieldId, |
| bool | ascending = true |
||
| ) |
Add a comparison key.
| fieldId | field id |
| ascending | (optional : true) ascending order? |
|
inline |
Clear all keys.
Definition at line 327 of file Ordering.h.
|
inline |
Get the number of keys.
Definition at line 334 of file Ordering.h.
| bool utl::MultiKeyOrdering::isAscending | ( | uint_t | idx | ) | const |
Get the ascending flag for the given sort key.
|
inline |
Get the negation of the ascending flag for the given sort key.
Definition at line 359 of file Ordering.h.
References utl::deInit(), and utl::init().