### IACollection

  IACollection is an abstract class, therefore it cannot be used to create any objects. This class defines the base interfaces for the collection classes.

### IACollection - Member Functions and Data by Group

### Constructors & Destructor

IACollection is an abstract class, therefore you cannot create or destroy any objects of this class.

~IACollection

      public:
      virtual ~IACollection()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IACollection

  Overload 1

      public:
      IACollection(INotifier&)

  Use this constructor to create a collection with support for notification.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      protected:
      IACollection()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 3

      protected:
      IACollection(IACollection < Element > const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Collection Status

Use these methods to test the status of the collection.

isBounded

      public:
      bool isBounded() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

isConsistent

      public:
      bool isConsistent() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

isEmpty

      public:
      bool isEmpty() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

isEnabledForNotification

      public:
      bool isEnabledForNotification() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

isFull

      public:
      bool isFull() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

maxNumberOfElements

      public:
      INumber maxNumberOfElements() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

numberOfElements

      public:
      INumber numberOfElements() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Cursor Support

Methods used to access, add or remove elements using cursors.

add

      public:
      virtual bool add(Element const&, ICursor&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

elementAt

  Overload 1

      public:
      Element const& elementAt(ICursor const&) const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      Element& elementAt(ICursor const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

removeAt

      public:
      virtual void removeAt(ICursor&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

replaceAt

      public:
      virtual void replaceAt(ICursor const&, Element const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setToFirst

      public:
      bool setToFirst(ICursor&) const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setToNext

      public:
      bool setToNext(ICursor&) const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Do For All Elements

These methods apply actions to all the elements of the collection.

allElementsDo

  Overload 1

      public:
      bool
        allElementsDo( bool ( * applicatorFunction ) ( Element&,
                       void * ) , void* additionalArgument = 0 )

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      bool allElementsDo(IApplicator < Element >&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 3

      public:
      bool allElementsDo(IConstantApplicator < Element >&) const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 4

      public:
      bool
        allElementsDo( bool ( * applicatorFunction ) ( Element const&,
                       void * ) , void* additionalArgument = 0 ) const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Element Access

Methods used to add, access or remove elements from the collection.

add

      public:
      virtual bool add(Element const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

addAllFrom

      public:
      virtual void addAllFrom(IACollection < Element > const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

any

      public:
      Element const& any() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

anyElement

      public:
      Element const& anyElement() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

removeAll

  Overload 1

      public:
      virtual INumber removeAll()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      virtual INumber
        removeAll( bool ( * predicateFunction ) ( Element const&,
                   void * ) , void* additionalArgument = 0 )

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Miscellaneous

copy

      public:
      virtual void copy(IACollection < Element > const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator INotifier &

      public:
      operator INotifier &() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

ImplOf

      protected:
      static Implementation&
        ImplOf( IACollection < Element > const& )

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Notification Support

disableNotification

      public:
      INotifier& disableNotification()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

enableNotification

      public:
      INotifier& enableNotification(bool = true)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

notifier

  Overload 1

      public:
      INotifier& notifier()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      INotifier const& notifier() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

notifyObservers

      public:
      INotifier& notifyObservers(INotificationEvent const&)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Streaming Support

These methods support streaming of elements to and from data streams.

adoptStreamer

      public:
      void adoptStreamer(IACollectionStreamer*)

  This method adopts a streamer object which is used to handle element streaming to and from a data stream.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator <<=

      public:
      virtual void operator <<=(IDataStream&)

  Streams in the stored elements to this collection. The adopted streamer object is used to do the streaming.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator >>=

      public:
      virtual void operator >>=(IDataStream&)

  Streams the elements of this collection out to the passed data stream. The adopted streamer object is used to do the element streaming.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Miscellaneous Members

newCursor

      public:
      virtual ICursor* newCursor() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

newMngCursor

      public:
      ICursor* newMngCursor() const

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IACollection - Inherited Member Functions and Data

#### Inherited Public Functions

  - None

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  IACollectionBase

  -     ~IACollectionBase()

  -     static ICursorImpl& CrsrImplOf(ICursor& cursor)

  -     static ICursorImpl const& CrsrImplOf(ICursor const& cursor)

  -     IACollectionBase(IACollectionBase const&)

  -     IACollectionBase()

  -     static ICursor* InterfaceFor(ICursorImpl* cursor)

#### Inherited Protected Data

  - None