Class: MDelegatingNotifier

Declaration: Notification.h

Taxonomy Categories:

Member Functions:


Interface Category:

API.

Inherits From:

MNotifier

Inherited By:

TPlayer TTelephoneHandset TTelephoneLine TView

Purpose:

This supports delegations of all notifier member functions of one notifier to another notifier. Doing so allows a single notifier implementation to be shared by several MDelegatingNotifiers.

Instantiation:

Always allocate on the heap.

Deriving Classes:

This class is mixed in the classes that support notification, and delegate to a common notifier instance.

Concurrency:

Not multithread safe.

Resource Use:

No special requirements.

Member Function: MDelegatingNotifier::~MDelegatingNotifier

virtual ~ MDelegatingNotifier ()

Interface Category:

API.

Purpose:

Destructor.

Calling Context:

Called to destroy an object. Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::HasConnectionFor

virtual bool HasConnectionFor (const TInterest &) const

Interface Category:

API.

Purpose:

A selector used to tell if any receiver has expressed desire in getting notifications for the given interest.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if there is at least one connection with the given interest.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::Notify

  1. virtual void Notify (const TNotification &)
  2. virtual void Notify (const TNotification &, const TInterest &)
  3. virtual void Notify (const TNotification &, const TCollectionOf < TInterest > &)

Interface Category:

API.

Purpose:

  1. Distributes the notification to all connections that match the interest given in the notification.
  2. Distributes the notification to all connections that match the interest specified as the second parameter. The receiver can of course receive a notification having an interest that is different than the interest used to make the connection. This is the case with interests like all-changes-interest. Such a receiver expects to get notifications for specific occurrences all sent to its all-changes-interest connection.
  3. Distributes the notification to all connections which have an interest that matches anyone of the collections of interests.

Calling Context:

  1. Call this function directly.
  2. Call this function directly.
  3. Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::BeginNotification

virtual void BeginNotification ()

Interface Category:

API.

Purpose:

For efficiency reasons, notifiers might decide to batch up a set of notifications. The notifications will not be distributed until after the EndNotification call is made.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::EndNotification

virtual void EndNotification ()

Interface Category:

API.

Purpose:

For efficiency reasons, notifiers might decide to batch up a set of notifications. The notifications will not be distributed until after the EndNotification call is made.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::IsBatching

virtual bool IsBatching () const

Interface Category:

API.

Purpose:

This selector indicates whether the notifier is in notification distribution batch mode.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if the notifier is batching up a group of notifications to distribute.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::AddConnectionInterest

virtual void AddConnectionInterest (TNotifierConnection *, const TInterest &)

Interface Category:

API.

Purpose:

A notifier connection tells the notifier what notifications that it is interested in using the Add Connection Interest member function.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::RemoveConnectionInterest

virtual void RemoveConnectionInterest (const TNotifierConnection &, const TInterest &)

Interface Category:

API.

Purpose:

A notifier connection tells the notifier that it is no longer interested in getting notifications by removing the interests.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::MDelegatingNotifier

MDelegatingNotifier ()

Interface Category:

API.

Purpose:

Default constructor.

Calling Context:

Called by the stream-in operators and directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: MDelegatingNotifier::GetNotifier

virtual MNotifier * GetNotifier () const

Interface Category:

API.

Purpose:

Gets the actual notifier used by this notifier.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the notifier that will be generating the notifications.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.