libUTL++
|
Simple container for two objects. More...
#include <Pair.h>
Public Member Functions | |
Pair (const Object &first, const Object &second, bool firstOwner=true, bool secondOwner=true) | |
Constructor. More... | |
Pair (const Object *first, const Object *second, bool firstOwner=true, bool secondOwner=true) | |
Constructor. More... | |
void | clear () |
Disassociate both objects. More... | |
virtual int | compare (const Object &rhs) const |
Compare with another object. More... | |
virtual void | copy (const Object &rhs) |
Copy another instance. More... | |
virtual void | steal (Object &rhs) |
"Steal" the internal representation from another instance. More... | |
virtual void | vclone (const Object &rhs) |
Make an exact copy of another instance. More... | |
virtual const Object & | getKey () const |
Get the key (the first object). More... | |
virtual void | serialize (Stream &stream, uint_t io, uint_t mode=ser_default) |
Serialize to or from a stream. More... | |
virtual String | toString () const |
Return a string representation of self. More... | |
virtual size_t | innerAllocatedSize () const |
Get the "inner" allocated size. More... | |
Object * | first () const |
Return the first object. More... | |
Object * | second () const |
Return the second object. More... | |
Object * | getFirst () const |
Return the first object. More... | |
Object * | getSecond () const |
Return the second object. More... | |
void | setFirst (const Object *first) |
Set the first object. More... | |
void | setSecond (const Object *second) |
Set the second object. More... | |
void | setFirst (const Object &first) |
Set the first object (make a copy if isFirstOwner()). More... | |
void | setSecond (const Object &second) |
Set the second object (make a copy if isSecondOwner()). More... | |
bool | isFirstOwner () const |
Return the owner flag for the first object. More... | |
bool | isSecondOwner () const |
Return the owner flag for the second object. More... | |
void | setFirstOwner (bool firstOwner) |
Set the owner flag for the first object. More... | |
void | setSecondOwner (bool secondOwner) |
Set the owner flag for the second object. More... | |
![]() | |
void | clear () |
Revert to initial state. 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... | |
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... | |
operator String () const | |
Conversion to String. More... | |
size_t | allocatedSize () const |
Get the total allocated size of this object. 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 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... | |
![]() | |
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... | |
Simple container for two objects.
Pair represents a pair of objects. The first object is designated the key (see getKey()). Pair provides a useful way of associating two objects without writing a special class. When used in conjunction with a container class, Pair can be used to provide a mapping from one set of objects to another.
utl::Pair::Pair | ( | const Object & | first, |
const Object & | second, | ||
bool | firstOwner = true , |
||
bool | secondOwner = true |
||
) |
Constructor.
first | first object |
second | second object |
firstOwner | owner flag for first object (make a copy if true) |
secondOwner | owner flag for second object (make a copy if true) |
utl::Pair::Pair | ( | const Object * | first, |
const Object * | second, | ||
bool | firstOwner = true , |
||
bool | secondOwner = true |
||
) |
Constructor.
first | first object |
second | second object |
firstOwner | owner flag for first object |
secondOwner | owner flag for second object |
|
inline |
Disassociate both objects.
Definition at line 56 of file Pair.h.
References utl::compare(), utl::copy(), utl::ser_default, utl::serialize(), and utl::toString().
|
virtual |
Compare with another object.
If no overridden version succeeds in doing the comparison, then an attempt will be made to re-start the comparison process using one or both of the objects' keys. Usually, an override of compare() should call the superclass's compare() if it doesn't know how to compare itself with the rhs object.
rhs | object to compare with |
Reimplemented from utl::Object.
|
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 |
"Steal" the internal representation from another instance.
The default implementation just calls vclone(), so you have to override this if you want a "move" capability.
Reimplemented from utl::Object.
|
virtual |
Make an exact copy of another instance.
The default implementation just calls copy(), so you have to override this if you want different behavior for copy construction and cloning.
Reimplemented from utl::Object.
|
virtual |
Get the key (the first object).
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.
|
virtual |
Return a string representation of self.
Reimplemented from utl::Object.
|
virtual |
Get the "inner" allocated size.
Reimplemented from utl::Object.
|
inline |
|
inline |
|
inline |
|
inline |
void utl::Pair::setFirst | ( | const Object * | first | ) |
Set the first object.
void utl::Pair::setSecond | ( | const Object * | second | ) |
Set the second object.
|
inline |
Set the first object (make a copy if isFirstOwner()).
|
inline |
Set the second object (make a copy if isSecondOwner()).
|
inline |
|
inline |
|
inline |
|
inline |
Set the owner flag for the second object.
Definition at line 156 of file Pair.h.
References utl::deInit(), and utl::init().