dbObjList class
A dbObjList is a list class containing dbObj objects. It is returned e.g by cellView::dbGetOverlaps()
list.clear()
Clears a dbObjList
int32_t dbObjList::size()
Returns the number of objects in a dbObjList
bool dbObjList::isEmpty()
Returns true if the dbObjList is empty, i.e. the size is zero.
bool dbObjList::member(dbObj *obj)
Returns true if the object obj is a member of the list, else false.
dbObjList::prepend(dbObj *obj)
Inserts the object at the beginning of the list. No list traversal is required.
dbObjList::append(dbObj *obj)
Inserts the object at the end of the list. No list traversal is required.
dbObjList::concat(dbObjList *otherlist)
Concatenate the two lists. otherlist is appended to the list, note this is a soft copy and otherlist remains unchanged.
int32_t dbObjList::remove(dbObj *obj)
Removes the object from the list. The list size is decremented. Returns 1 if the dbObj was found in the list, 0 if not. Beware: horrible things will happen if you remove a list item while using an iterator for that list.
dbObj *dbObjList::pop()
Pops an object from the front of the list; the size of the list is decremented by one.
dbObj * dbObjList::first()
Returns the first object in the list.
dbObj * dbObjList::next()
Returns the next object in the list, or null if the end of the list is reached. The iterator is incremented.
dbObj * dbObjList::peek()
Returns the next object in the list, or null if the end of the list is reached. The iterator is NOT incremented.
dbObj * dbObjList::last()
Returns the last object in the list, or null if the list is empty.
Casting to other types
Because many operations e.g. dbGetOverlaps() as mentioned above return a dbObjList with object as the base class, dbObj, there are swig wrapped C functions to cast to the derived type (you cannot cast in python).
See the dbObj class for a list of all cast functions.
Iterator
An iterator to allow traversing the objects in the dbObjList using Python.
iter = objIterator(dbObjList *list)
Initialises the dbObj iterator for the dbObjList. For example:
# Find shapes on a layer in a given area and print their type # objs = cv.dbGetOverlaps(box, layer) iter = dbObjIterator(objs) while not iter.end() : obj = iter.value() type = obj.objType() print "object type = ", type iter.next() #
dbObj * iter.value()
Returns the current object.
iter.next()
Advances the iterator to the next dbObj.
bool iter.end()
Returns false if there are more objects, else returns true if there are no more.