
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Adding a Notification Callback Using an Interface
|
151
Solution
Use an interface to provide callback methods. The INotificationCallbacks interface
contains two methods that will be used by a client as callback methods. The first
method,
FinishedProcessingSubGroup, is called when an amount specified in the
amount parameter is reached. The second method, FinishedProcessingGroup, is called
when all processing is complete:
public interface INotificationCallbacks
{
void FinishedProcessingSubGroup(int amount);
void FinishedProcessingGroup( );
}
The NotifyClient class shown in Example 3-11 implements the INotificationCallbacks
interface. This class contains the implementation details for each of the callback
methods.
The
Task class shown in Example 3-12 implements its callbacks through the
NotifyClient object (see Example 3-11). The Task class contains a field called
notificationObj, which stores a reference to the NotifyClient object that is passed to
it either through construction or through the
AttachToCallback method. The
UnAttachCallback method removes the NotifyClient reference from this object. The
ProcessSomething method invokes the callback methods.
Example 3-11. Implementing the INotificationCallbacks interface
public class NotifyClient : INotificationCallbacks
{
public void FinishedProcessingSubGroup(int ...