cArray Class Reference
[Container classes]

Container object that holds objects derived from cObject. More...

#include <carray.h>

Inheritance diagram for cArray:
cOwnedObject cNamedObject cObject

List of all members.

Classes

class  Iterator
 Walks along a cArray. More...

Public Member Functions

Constructors, destructor, assignment.

 cArray (const cArray &list)
 cArray (const char *name=NULL, int capacity=0, int delta=10)
virtual ~cArray ()
cArrayoperator= (const cArray &list)
Redefined cObject member functions

virtual cArraydup () const
virtual std::string info () const
virtual void forEachChild (cVisitor *v)
virtual void parsimPack (cCommBuffer *buffer)
virtual void parsimUnpack (cCommBuffer *buffer)
Container functions.

int size () const
void clear ()
int getCapacity () const
void setCapacity (int capacity)
int add (cObject *obj)
int addAt (int m, cObject *obj)
int set (cObject *obj)
int find (cObject *obj) const
int find (const char *objname) const
cObjectget (int m)
cObjectget (const char *objname)
const cObjectget (int m) const
const cObjectget (const char *objname) const
cObjectoperator[] (int m)
cObjectoperator[] (const char *objname)
const cObjectoperator[] (int m) const
const cObjectoperator[] (const char *objname) const
bool exist (int m) const
bool exist (const char *objname) const
cObjectremove (int m)
cObjectremove (const char *objname)
cObjectremove (cObject *obj)
Ownership control flag.

The ownership control flag is to be used by derived container classes.

If the flag is set, the container should take() any object that is inserted into it.

void setTakeOwnership (bool tk)
bool getTakeOwnership () const

Detailed Description

Container object that holds objects derived from cObject.

cArray stores the pointers of the objects inserted instead of making copies. cArray works as an array, but if it gets full, it grows automatically by a specified delta.

Ownership of cOwnedObjects may be controlled by invoking setTakeOwnership() prior to inserting objects. Objects that cannot track their ownership (cObject but not cOwnedObject) are always treated as owned. Whether an object is owned or not affects the operation of the destructor, clean(), the copy constructor and the dup() method.


Constructor & Destructor Documentation

cArray::cArray ( const cArray list  ) 

Copy constructor.

Contained objects that are owned by cArray will be duplicated so that the new cArray will have its own copy of them.

cArray::cArray ( const char *  name = NULL,
int  capacity = 0,
int  delta = 10 
) [explicit]

Constructor.

The initial capacity of the container and the delta (by which the capacity will grow if it gets full) can be specified.

virtual cArray::~cArray (  )  [virtual]

Destructor.

The contained objects that were owned by the container will be deleted.


Member Function Documentation

int cArray::add ( cObject obj  ) 

Inserts the object into the array.

Only the pointer of the object will be stored. The return value is the object's index in the array.

int cArray::addAt ( int  m,
cObject obj 
)

Inserts the object into the array at the given position.

If the position is occupied, the function throws a cRuntimeError. The return value is the object's index in the array.

void cArray::clear (  ) 

Makes the container empty.

Contained objects that were owned by the container will be deleted.

virtual cArray* cArray::dup (  )  const [inline, virtual]

Duplication and assignment are supported by cArray.

Contained objects that are owned by cArray will be duplicated so that the new cArray will have its own copy of them.

Reimplemented from cObject.

int cArray::find ( const char *  objname  )  const

Returns the index of the first item in the array that has the name pointed to by s (cObject::isName() is used.

) If no such item was found, -1 is returned.

int cArray::find ( cObject obj  )  const

Searches the array for the pointer of the object passed and returns the index of the first match.

If the object was not found, -1 is returned.

virtual void cArray::forEachChild ( cVisitor v  )  [virtual]

Calls v->visit(this) for each contained object.

See cObject for more details.

Reimplemented from cObject.

const cObject* cArray::get ( const char *  objname  )  const

Returns reference to the first object in the array with name s.

Returns NULL if no object with the given name was found.

const cObject* cArray::get ( int  m  )  const

Returns reference to the mth object in the array.

Returns NULL if the mth position is not used.

cObject* cArray::get ( const char *  objname  ) 

Returns reference to the first object in the array with name s.

Returns NULL if no object with the given name was found.

cObject* cArray::get ( int  m  ) 

Returns reference to the mth object in the array.

Returns NULL if the mth position is not used.

bool cArray::getTakeOwnership (  )  const [inline]

Returns the flag which determines whether the container object should automatically take ownership of the objects that are inserted into it.

See setTakeOwnedship() for more details.

virtual std::string cArray::info (  )  const [virtual]

Produces a one-line description of the object's contents.

See cObject for more details.

Reimplemented from cObject.

cArray& cArray::operator= ( const cArray list  ) 

Assignment operator.

The name member is not copied; see cNamedObject's operator=() for more details. Duplication and assignment work all right with cArray. Contained objects that are owned by cArray will be duplicated so that the new cArray will have its own copy of them.

const cObject* cArray::operator[] ( const char *  objname  )  const [inline]

The same as get(const char *).

With the indexing operator, cArray can be used as a vector.

const cObject* cArray::operator[] ( int  m  )  const [inline]

The same as get(int).

With the indexing operator, cArray can be used as a vector.

cObject* cArray::operator[] ( const char *  objname  )  [inline]

The same as get(const char *).

With the indexing operator, cArray can be used as a vector.

cObject* cArray::operator[] ( int  m  )  [inline]

The same as get(int).

With the indexing operator, cArray can be used as a vector.

virtual void cArray::parsimPack ( cCommBuffer buffer  )  [virtual]

Serializes the object into an MPI send buffer.

Used by the simulation kernel for parallel execution. See cObject for more details.

Reimplemented from cOwnedObject.

virtual void cArray::parsimUnpack ( cCommBuffer buffer  )  [virtual]

Deserializes the object from an MPI receive buffer Used by the simulation kernel for parallel execution.

See cObject for more details.

Reimplemented from cOwnedObject.

cObject* cArray::remove ( cObject obj  ) 

Removes the object given with its index/name/pointer from the container, and returns the same pointer.

If the object was not found, NULL is returned. (If the object was owned by the container, drop() is called.)

cObject* cArray::remove ( const char *  objname  ) 

Removes the object given with its index/name/pointer from the container.

(If the object was owned by the container, drop() is called.)

cObject* cArray::remove ( int  m  ) 

Removes the object given with its index/name/pointer from the container.

(If the object was owned by the container, drop() is called.)

int cArray::set ( cObject obj  ) 

Inserts the object into the array.

If the array already contains an object with the same name, it will be replaced (hashtable-like behavior.) The replaced object, if it was owned by the container, is deleted using discard(). The return value is the object's index in the array.

void cArray::setCapacity ( int  capacity  ) 

Resizes the the underlying array, without changing the contents of this array.

The specified capacity cannot be less than size().

void cArray::setTakeOwnership ( bool  tk  )  [inline]

Sets the flag which determines whether the container object should automatically take ownership of the objects that are inserted into it.

It does not affect objects already in the queue. When an inserted object is owned by the container, that means it will be deleted when the container object is deleted or cleared, and will be duplicated when the container object is duplicated or copied.

Setting the flag to false does not affect the treatment of objects that are NOT cOwnedObject. Since they do not support the ownership protocol, they will always be treated by the container.

int cArray::size (  )  const [inline]

Returns the index of last used position+1.

This only equals the number of contained objects if there are no "holes" (NULL elements) in the array.


The documentation for this class was generated from the following file:
Generated on Mon Jul 14 12:57:23 2014 for OMNeT++ Simulation Library by  doxygen 1.6.3