| Yate
    | 
An object list class. More...
#include <yateclass.h>
 
  
| Public Member Functions | |
| ObjList () | |
| virtual | ~ObjList () | 
| virtual void * | getObject (const String &name) const | 
| unsigned int | length () const | 
| unsigned int | count () const | 
| GenObject * | get () const | 
| GenObject * | set (const GenObject *obj, bool delold=true) | 
| ObjList * | next () const | 
| ObjList * | last () const | 
| ObjList * | skipNull () const | 
| ObjList * | skipNext () const | 
| GenObject * | at (int index) const | 
| ObjList * | operator+ (int index) const | 
| GenObject * | operator[] (signed int index) const | 
| GenObject * | operator[] (unsigned int index) const | 
| GenObject * | operator[] (const String &str) const | 
| ObjList * | find (const GenObject *obj) const | 
| GenObject * | findObj (const GenObject *obj) const | 
| ObjList * | find (const String &str) const | 
| int | index (const GenObject *obj) const | 
| int | index (const String &str) const | 
| ObjList * | insert (const GenObject *obj, bool compact=true) | 
| ObjList * | append (const GenObject *obj, bool compact=true) | 
| ObjList * | setUnique (const GenObject *obj, bool compact=true) | 
| GenObject * | remove (bool delobj=true) | 
| GenObject * | remove (GenObject *obj, bool delobj=true) | 
| GenObject * | remove (const String &str, bool delobj=true) | 
| void | clear () | 
| void | compact () | 
| bool | autoDelete () | 
| void | setDelete (bool autodelete) | 
| GenObject * | find (Lockable &lock, const GenObject *obj, bool ref=false, long maxwait=-1) const | 
| GenObject * | find (Lockable &lock, const String &str, bool ref=false, long maxwait=-1) const | 
| ObjList * | insert (Lockable &lock, const GenObject *obj, bool autoDelete=true, long maxwait=-1, bool compact=true) | 
| ObjList * | append (Lockable &lock, const GenObject *obj, bool autoDelete=true, long maxwait=-1, bool compact=true) | 
| ObjList * | setUnique (Lockable &lock, const GenObject *obj, bool autoDelete=true, long maxwait=-1, bool compact=true) | 
| GenObject * | remove (Lockable &lock, bool delobj=true, long maxwait=-1) | 
| GenObject * | remove (Lockable &lock, GenObject *obj, bool delobj=true, long maxwait=-1) | 
| GenObject * | remove (Lockable &lock, const String &str, bool delobj=true, long maxwait=-1) | 
| void | clear (Lockable &lock, long maxwait=-1) | 
| void | compact (Lockable &lock, long maxwait=-1) | 
| ObjList * | move (ObjList *dest, Lockable *lock=0, long maxwait=-1) | 
| ObjList * | copy (ObjList *dest, Lockable *lock=0, long maxwait=-1) const | 
| void | sort (int(*callbackCompare)(GenObject *obj1, GenObject *obj2, void *context), void *context=0) | 
|  Public Member Functions inherited from GenObject | |
| GenObject () | |
| virtual | ~GenObject () | 
| virtual bool | alive () const | 
| virtual void | destruct () | 
| virtual const String & | toString () const | 
| virtual const String & | traceId () const | 
| NamedCounter * | getObjCounter () const | 
| NamedCounter * | setObjCounter (NamedCounter *counter) | 
| Static Public Member Functions | |
| static const ObjList & | empty () | 
|  Static Public Member Functions inherited from GenObject | |
| static void * | getObject (const String &name, const GenObject *obj) | 
| static bool | getObjCounting () | 
| static void | setObjCounting (bool enable) | 
| static NamedCounter * | getObjCounter (const String &name, bool create=true) | 
| static ObjList & | getObjCounters () | 
An object list class.
A simple single-linked object list handling class
| ObjList | ( | ) | 
Creates a new, empty list.
| 
 | virtual | 
Destroys the list and everything in it.
Append an object to the end of the list
| obj | Pointer to the object to append | 
| compact | True to replace NULL values in list if possible | 
Referenced by MimeLinesBody::addLine(), ClientChannel::addSlave(), MimeMultipartBody::appendBody(), and MimeBody::appendHdr().
| ObjList * append | ( | Lockable & | lock, | 
| const GenObject * | obj, | ||
| bool | autoDelete = true, | ||
| long | maxwait = -1, | ||
| bool | compact = true ) | 
Append an object to the end of the list
| lock | Lockable to protect the operation. A RWLock will be write locked | 
| obj | Pointer to the object to set | 
| autoDelete | Object autoDelete flag | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
| compact | True to replace NULL values in list if possible | 
| GenObject * at | ( | int | index | ) | const | 
Get the object at a specific index in list
| index | Index of the object to retrieve | 
| 
 | inline | 
Get the automatic delete flag
| void clear | ( | ) | 
Clear the list and optionally delete all contained objects
Referenced by XmlFragment::clearChildren().
| void clear | ( | Lockable & | lock, | 
| long | maxwait = -1 ) | 
| void compact | ( | ) | 
Remove all empty objects in the list
| void compact | ( | Lockable & | lock, | 
| long | maxwait = -1 ) | 
Reference all items in this into another one
| dest | Destination list. Create a new one if not given | 
| lock | Optional Lockable to protect the operation. A RWLock will be read locked | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
| unsigned int count | ( | ) | const | 
Get the number of non-null objects in the list
Referenced by GenericVector< Obj >::append(), MatchingItemList::append(), GenericVector< Obj >::assign(), Configuration::count(), and ClientChannel::slavesCount().
| 
 | static | 
A static empty object list
Referenced by XmlParent::getChildren().
Get the item in the list that holds an object
| obj | Pointer to the object to search for | 
Referenced by ClientChannel::addSlave(), UIFactory::canBuild(), ClientDir::findChildName(), XmlElement::findNextChild(), and NamedInt::lookup().
| GenObject * find | ( | Lockable & | lock, | 
| const GenObject * | obj, | ||
| bool | ref = false, | ||
| long | maxwait = -1 ) const | 
Get the item in the list that holds an object
| lock | Lockable to protect the operation. A RWLock will be read locked | 
| obj | Pointer to the object to search for | 
| ref | True to reference a found RefObject. the method will return NULL if a found object is not a RefObject one | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
Get the item in the list that holds an object by String value
| lock | Lockable to protect the operation. A RWLock will be read locked | 
| str | String value (toString) of the object to search for | 
| ref | True to reference a found RefObject. the method will return NULL if a found object is not a RefObject one | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
Find an object by pointer
| obj | Pointer to the object to search for | 
References get().
| 
 | inline | 
Get the object associated to this list item
Referenced by ClientDir::findChildName(), findObj(), XmlFragment::getText(), MessageDispatcher::hasHandlers(), MessageDispatcher::hasHooks(), MessageDispatcher::hasMessages(), NamedInt::lookup(), and operator[]().
| 
 | virtual | 
Get a pointer to a derived class given that class name
| name | Name of the class we are asking for | 
Reimplemented from GenObject.
| int index | ( | const GenObject * | obj | ) | const | 
Get the position in list of a GenObject by a pointer to it
| obj | Pointer to the object to search for | 
| int index | ( | const String & | str | ) | const | 
Insert an object at this point
| obj | Pointer to the object to insert | 
| compact | True to replace NULL values in list if possible | 
| ObjList * insert | ( | Lockable & | lock, | 
| const GenObject * | obj, | ||
| bool | autoDelete = true, | ||
| long | maxwait = -1, | ||
| bool | compact = true ) | 
Insert an object at this point
| lock | Lockable to protect the operation. A RWLock will be write locked | 
| obj | Pointer to the object to set | 
| autoDelete | Object autoDelete flag | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
| compact | True to replace NULL values in list if possible | 
| ObjList * last | ( | ) | const | 
Get the last item in the list
| unsigned int length | ( | ) | const | 
Get the number of elements in the list
Referenced by Configuration::sections().
Move or copy this list into another one autoDelete() is set in destination as found for each item in list
| dest | Destination list. Create a new one if not given | 
| lock | Optional Lockable to protect the operation. A RWLock will be write locked | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
| 
 | inline | 
Get the next item in the list
Referenced by MessageDispatcher::hasHandlers(), MessageDispatcher::hasHooks(), and MessageDispatcher::hasMessages().
| ObjList * operator+ | ( | int | index | ) | const | 
Pointer-like indexing operator
| index | Index of the list item to retrieve | 
| 
 | inline | 
Array-like indexing operator with signed parameter
| index | Index of the object to retrieve | 
| 
 | inline | 
Array-like indexing operator with unsigned parameter
| index | Index of the object to retrieve | 
| GenObject * remove | ( | bool | delobj = true | ) | 
Delete this list item
| delobj | True to delete the object (default) | 
Referenced by MatchingItemList::append(), XmlFragment::pop(), HashList::remove(), HashList::remove(), MimeMultipartBody::removeBody(), MimeBody::removeHdr(), and ClientChannel::removeSlave().
Delete the first list item that holds an object with a iven value
| str | String value (toString) of the object to remove | 
| delobj | True to delete the object (default) | 
Delete the list item that holds a given object
| obj | Object to search in the list | 
| delobj | True to delete the object (default) | 
Delete the first list item that holds an object with a iven value
| lock | Optional Lockable to protect the operation. A RWLock will be write locked | 
| str | String value (toString) of the object to remove | 
| delobj | True to delete the object (default) | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
Delete the list item that holds a given object
| lock | Optional Lockable to protect the operation. A RWLock will be write locked | 
| obj | Object to search in the list | 
| delobj | True to delete the object (default) | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
Set the object associated to this list item
| obj | Pointer to the new object to set | 
| delold | True to delete the old object (default) | 
| 
 | inline | 
Set the automatic delete flag
| autodelete | True to delete on destruct, false otherwise | 
Set unique entry in this list. If not found, append it to the list
| obj | Pointer to the object to uniquely set in the list | 
| compact | True to replace NULL values in list if possible | 
| ObjList * setUnique | ( | Lockable & | lock, | 
| const GenObject * | obj, | ||
| bool | autoDelete = true, | ||
| long | maxwait = -1, | ||
| bool | compact = true ) | 
Set unique entry in this list. If not found, append it to the list
| lock | Lockable to protect the operation. A RWLock will be write locked | 
| obj | Pointer to the object to set | 
| autoDelete | Object autoDelete flag | 
| maxwait | Time in microseconds to wait for locking, -1 wait forever | 
| compact | True to replace NULL values in list if possible | 
| ObjList * skipNext | ( | ) | const | 
Advance in the list skipping over NULL holding items
Referenced by XmlElement::findNextChild(), and XmlFragment::getText().
| ObjList * skipNull | ( | ) | const | 
Skip over NULL holding items in the list
Referenced by MatchingItemList::append(), DataTranslator::getConsumers(), XmlParent::hasChildren(), Module::itemComplete(), NamedInt::lookupName(), ClientContact::online(), and NamedIterator::operator=().
| void sort | ( | int(* | callbackCompare )(GenObject *obj1, GenObject *obj2, void *context), | 
| void * | context = 0 ) | 
Sort this list
| callbackCompare | pointer to a callback function that should compare two objects. 
    obj1 First object of the comparation
    obj2 Second object of the comparation
    context Data context
    return 0 if the objects are equal; positive value if obj2 > obj1; negative value if obj1 > obj2
    Note: the function should expect receiving null pointers
 | 
| context | Context data. |