struct CCL::ISubject

Overview

A subject notifies multiple observer objects on state changes. More…

#include <iobserver.h>

struct ISubject: public CCL::IUnknown
{
    // methods

    virtual void CCL_API addObserver (IObserver* observer) = 0;
    virtual void CCL_API removeObserver (IObserver* observer) = 0;
    virtual void CCL_API signal (MessageRef msg) = 0;
    virtual void CCL_API deferSignal (IMessage* msg) = 0;
    static ISubject void addObserver (IUnknown* unknown, IObserver* observer);
    static void removeObserver (IUnknown* unknown, IObserver* observer);
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

A subject notifies multiple observer objects on state changes.

Methods

virtual void CCL_API addObserver (IObserver* observer) = 0

Connect observer to subject.

virtual void CCL_API removeObserver (IObserver* observer) = 0

Disconnect observer from subject.

virtual void CCL_API signal (MessageRef msg) = 0

Send message to connected observers.

virtual void CCL_API deferSignal (IMessage* msg) = 0

Send message to connected observers asynchronously.

static ISubject void addObserver (IUnknown* unknown, IObserver* observer)

Helper to connect observer to given IUnknown.

static void removeObserver (IUnknown* unknown, IObserver* observer)

Helper to disconnect observer from given IUnknown.