Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | Related Pages

cBag Class Reference
[Container classes]

#include <carray.h>

Inheritance diagram for cBag:

cObject cPolymorphic List of all members.

Detailed Description

Use of this class is DISCOURAGED, it is provided for backward compatibility only.

Use std::vector instead.

Container class to hold small non-class items (int, double, etc). cBag stores full copy of each item inserted and NOT the pointer.

cBag is a container class which is designed to hold non-cObject items without constructors/destructors (ints, doubles, small structs etc.). cBag stores full, bit-by-bit copies of the items inserted (and not the pointers). cBag works as an array, but if it gets full, it grows automatically by a specified delta.


Public Member Functions

Constructors, destructor, assignment.
 cBag (const cBag &bag)
 cBag (const char *name=NULL, int esiz=4, int siz=0, int delt=5)
virtual ~cBag ()
cBag & operator= (const cBag &bag)
Redefined cObject member functions
virtual cObject * dup () const
virtual std::string info () const
virtual void netPack (cCommBuffer *buffer)
virtual void netUnpack (cCommBuffer *buffer)
Container functions.
void setup (int esiz, int siz, int delt=5)
void clear ()
int items () const
int add (void *obj)
int addAt (int m, void *obj)
int find (void *obj) const
void * get (int m)
const void * get (int m) const
void * operator[] (int m)
const void * operator[] (int m) const
bool isUsed (int m) const
void * remove (int m)


Constructor & Destructor Documentation

cBag::cBag (  const cBag &  bag  ) 
 

Copy constructor.

cBag::cBag (  const char *  name = NULL,
int  esiz = 4,
int  siz = 0,
int  delt = 5
)  [explicit]
 

Constructor.

Parameters are: name, the size of elements in bytes, the initial size of the container and the delta (by which the size will grow if it gets full).

virtual cBag::~cBag (   )  [inline, virtual]
 

Destructor.

The items in the object will be deleted.


Member Function Documentation

int cBag::add (  void *  obj  ) 
 

Inserts a new item into the array.

A copy will be made of the item pointed to by data. The return value is the item's index in the array.

int cBag::addAt (  int  m,
void *  obj
) 
 

Inserts a new item into the array at the given position.

void cBag::clear (   ) 
 

Clears the whole contents of the cBag.

virtual cObject* cBag::dup (   )  const [inline, virtual]
 

Creates and returns an exact copy of this object.

See cObject for more details.

Reimplemented from cObject.

int cBag::find (  void *  obj  )  const
 

Returns the index of the first item in the array that equals the item pointed to by obj.

The comparison is done byte-by-byte. If no such item was found, -1 is returned.

const void* cBag::get (  int  m  )  const
 

Returns a pointer to the mth item in the array or NULL if the mth position is not used.

void* cBag::get (  int  m  ) 
 

Returns a pointer to the mth item in the array or NULL if the mth position is not used.

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

Produces a one-line description of object contents into the buffer passed as argument.

See cObject for more details.

Reimplemented from cPolymorphic.

bool cBag::isUsed (  int  m  )  const
 

Returns true if the mth position exists and an item was inserted there.

int cBag::items (   )  const [inline]
 

Returns the index of last used position+1.

This is the same as the number of contained objects if there are no 'holes' in the array. (Removals may create holes.)

virtual void cBag::netPack (  cCommBuffer *  buffer  )  [virtual]
 

Serializes the object into a PVM or MPI send buffer.

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

Reimplemented from cObject.

virtual void cBag::netUnpack (  cCommBuffer *  buffer  )  [virtual]
 

Deserializes the object from a PVM or MPI receive buffer Used by the simulation kernel for parallel execution.

See cObject for more details.

Reimplemented from cObject.

cBag& cBag::operator= (  const cBag &  bag  ) 
 

Assignment operator.

The name member doesn't get copied; see cObject's operator=() for more details. Duplication and assignment work all right with cBag.

const void* cBag::operator[] (  int  m  )  const [inline]
 

The same as get(int m).

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

void* cBag::operator[] (  int  m  )  [inline]
 

The same as get(int m).

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

void* cBag::remove (  int  m  ) 
 

Marks the mth position as free and returns pointer to corresponding item.

Should be used with care as subsequent add() calls may overwrite the data at that position.

void cBag::setup (  int  esiz,
int  siz,
int  delt = 5
) 
 

Clears the current contents and changes element size, initial array size and delta parameters.


The documentation for this class was generated from the following file:
Generated on Fri Apr 1 12:25:33 2005 for OMNeT++/OMNEST Simulation Library by  doxygen 1.3.9.1