Yate
ObjList Class Reference

An object list class. More...

#include <yateclass.h>

Inheritance diagram for ObjList:
GenObject JIDIdentityList ScriptStack SignallingMessageTimerList JBEntityCapsList JGRtpCandidates JGRtpMediaList XMPPFeatureList

Public Member Functions

 ObjList ()
 
virtual ~ObjList ()
 
virtual void * getObject (const String &name) const
 
unsigned int length () const
 
unsigned int count () const
 
GenObjectget () const
 
GenObjectset (const GenObject *obj, bool delold=true)
 
ObjListnext () const
 
ObjListlast () const
 
ObjListskipNull () const
 
ObjListskipNext () const
 
GenObjectat (int index) const
 
ObjListoperator+ (int index) const
 
GenObjectoperator[] (signed int index) const
 
GenObjectoperator[] (unsigned int index) const
 
GenObjectoperator[] (const String &str) const
 
ObjListfind (const GenObject *obj) const
 
ObjListfind (const String &str) const
 
int index (const GenObject *obj) const
 
int index (const String &str) const
 
ObjListinsert (const GenObject *obj, bool compact=true)
 
ObjListappend (const GenObject *obj, bool compact=true)
 
ObjListsetUnique (const GenObject *obj, bool compact=true)
 
GenObjectremove (bool delobj=true)
 
GenObjectremove (GenObject *obj, bool delobj=true)
 
GenObjectremove (const String &str, bool delobj=true)
 
void clear ()
 
void compact ()
 
bool autoDelete ()
 
void setDelete (bool autodelete)
 
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 StringtoString () const
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 

Static Public Member Functions

static const ObjListempty ()
 
- 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 NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 

Detailed Description

An object list class.

A simple single-linked object list handling class

Constructor & Destructor Documentation

◆ ObjList()

◆ ~ObjList()

virtual ~ObjList ( )
virtual

Destroys the list and everything in it.

Member Function Documentation

◆ append()

ObjList * append ( const GenObject * obj,
bool compact = true )

Append an object to the end of the list

Parameters
objPointer to the object to append
compactTrue to replace NULL values in list if possible
Returns
A pointer to the inserted list item

References compact(), GenObject::GenObject(), and ObjList().

Referenced by JGRtpMediaList::add(), XMPPFeatureList::add(), XMPPFeatureList::add(), XMPPFeatureList::add(), and JGSession::sendContent().

◆ at()

GenObject * at ( int index) const

Get the object at a specific index in list

Parameters
indexIndex of the object to retrieve
Returns
Pointer to the object or NULL

References GenObject::GenObject(), and index().

Referenced by operator[](), and operator[]().

◆ autoDelete()

bool autoDelete ( )
inline

Get the automatic delete flag

Returns
True if will delete on destruct, false otherwise

◆ clear()

void clear ( )

Clear the list and optionally delete all contained objects

Referenced by XMPPFeatureList::reset().

◆ compact()

void compact ( )

Remove all empty objects in the list

Referenced by append(), insert(), and setUnique().

◆ count()

unsigned int count ( ) const

Get the number of non-null objects in the list

Returns
Count of items

◆ empty()

static const ObjList & empty ( )
static

A static empty object list

Returns
Reference to a static empty list

References ObjList().

Referenced by XmlParent::getChildren().

◆ find() [1/2]

ObjList * find ( const GenObject * obj) const

Get the item in the list that holds an object

Parameters
objPointer to the object to search for
Returns
Pointer to the found item or NULL

References GenObject::GenObject(), and ObjList().

Referenced by ClientDir::findChildName(), XmlElement::findNextChild(), XMPPFeatureList::get(), NamedInt::lookup(), and JBEngine::remoteDomainDef().

◆ find() [2/2]

ObjList * find ( const String & str) const

Get the item in the list that holds an object by String value

Parameters
strString value (toString) of the object to search for
Returns
Pointer to the found item or NULL

References ObjList().

◆ get()

GenObject * get ( ) const
inline

Get the object associated to this list item

Returns
Pointer to the object or NULL

References GenObject::GenObject().

Referenced by ClientDir::findChildName(), XMPPFeatureList::get(), NamedInt::lookup(), and JBEngine::remoteDomainDef().

◆ getObject()

virtual void * getObject ( const String & name) const
virtual

Get a pointer to a derived class given that class name

Parameters
nameName of the class we are asking for
Returns
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from GenObject.

◆ index() [1/2]

int index ( const GenObject * obj) const

Get the position in list of a GenObject by a pointer to it

Parameters
objPointer to the object to search for
Returns
Index of object in list, -1 if not found

References GenObject::GenObject().

Referenced by at(), operator+(), operator[](), and operator[]().

◆ index() [2/2]

int index ( const String & str) const

Get the position in list of the first GenObject with a given value

Parameters
strString value (toString) of the object to search for
Returns
Index of object in list, -1 if not found

◆ insert()

ObjList * insert ( const GenObject * obj,
bool compact = true )

Insert an object at this point

Parameters
objPointer to the object to insert
compactTrue to replace NULL values in list if possible
Returns
A pointer to the inserted list item

References compact(), GenObject::GenObject(), and ObjList().

◆ last()

ObjList * last ( ) const

Get the last item in the list

Returns
Pointer to the last item in list

References ObjList().

◆ length()

unsigned int length ( ) const

Get the number of elements in the list

Returns
Count of items

◆ next()

ObjList * next ( ) const
inline

Get the next item in the list

Returns
Pointer to the next item in list or NULL

References ObjList().

◆ operator+()

ObjList * operator+ ( int index) const

Pointer-like indexing operator

Parameters
indexIndex of the list item to retrieve
Returns
Pointer to the list item or NULL

References index(), and ObjList().

◆ operator[]() [1/3]

GenObject * operator[] ( const String & str) const

Array-like indexing operator

Parameters
strString value of the object to locate
Returns
Pointer to the object or NULL

References GenObject::GenObject().

◆ operator[]() [2/3]

GenObject * operator[] ( signed int index) const
inline

Array-like indexing operator with signed parameter

Parameters
indexIndex of the object to retrieve
Returns
Pointer to the object or NULL

References at(), GenObject::GenObject(), and index().

◆ operator[]() [3/3]

GenObject * operator[] ( unsigned int index) const
inline

Array-like indexing operator with unsigned parameter

Parameters
indexIndex of the object to retrieve
Returns
Pointer to the object or NULL

References at(), GenObject::GenObject(), and index().

◆ remove() [1/3]

GenObject * remove ( bool delobj = true)

Delete this list item

Parameters
delobjTrue to delete the object (default)
Returns
Pointer to the object if not destroyed

References GenObject::GenObject().

Referenced by HashList::remove(), HashList::remove(), and XMPPFeatureList::remove().

◆ remove() [2/3]

GenObject * remove ( const String & str,
bool delobj = true )

Delete the first list item that holds an object with a iven value

Parameters
strString value (toString) of the object to remove
delobjTrue to delete the object (default)
Returns
Pointer to the object if not destroyed

References GenObject::GenObject().

◆ remove() [3/3]

GenObject * remove ( GenObject * obj,
bool delobj = true )

Delete the list item that holds a given object

Parameters
objObject to search in the list
delobjTrue to delete the object (default)
Returns
Pointer to the object if not destroyed

References GenObject::GenObject().

◆ set()

GenObject * set ( const GenObject * obj,
bool delold = true )

Set the object associated to this list item

Parameters
objPointer to the new object to set
deloldTrue to delete the old object (default)
Returns
Pointer to the old object if not destroyed

References GenObject::GenObject().

◆ setDelete()

void setDelete ( bool autodelete)
inline

Set the automatic delete flag

Parameters
autodeleteTrue to delete on destruct, false otherwise

Referenced by JGSession::sendContent().

◆ setUnique()

ObjList * setUnique ( const GenObject * obj,
bool compact = true )

Set unique entry in this list. If not found, append it to the list

Parameters
objPointer to the object to uniquely set in the list
compactTrue to replace NULL values in list if possible
Returns
A pointer to the set list item

References compact(), GenObject::GenObject(), and ObjList().

◆ skipNext()

ObjList * skipNext ( ) const

Advance in the list skipping over NULL holding items

Returns
Pointer to the next non NULL holding item in list or NULL

References ObjList().

Referenced by JBEntityCapsList::findCaps(), XmlElement::findNextChild(), and NamedInt::lookupName().

◆ skipNull()

ObjList * skipNull ( ) const

Skip over NULL holding items in the list

Returns
Pointer to the first non NULL holding item in list or NULL

References ObjList().

Referenced by JBEntityCapsList::findCaps(), DataTranslator::getConsumers(), XmlParent::hasChildren(), NamedInt::lookupName(), and NamedIterator::operator=().

◆ sort()

void sort ( int(* callbackCompare )(GenObject *obj1, GenObject *obj2, void *context),
void * context = 0 )

Sort this list

Parameters
callbackComparepointer 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
contextContext data.

References GenObject::GenObject(), and ObjList().


The documentation for this class was generated from the following file: