1#line 1 "S:/jenkins/workspace/ECP/ufe/ufe-full-python3.11-windows/ufe/include/subject.h"
19class NotificationGuard;
107 typedef std::set<Observer::WeakPtr, std::owner_less<Observer::WeakPtr> >
Notification guard for Subject.
NotificationGuard(const NotificationGuard &)=delete
Cannot be copied or assigned.
const NotificationGuard & operator&(const NotificationGuard &)=delete
NotificationGuard(Subject &subject)
Base class for all notifications.
std::shared_ptr< Observer > Ptr
Observer pattern Subject class.
bool removeObserver(const Observer::Ptr &obs)
virtual void notify(const Notification ¬ification)
void cleanObservers(const Observers &dead)
virtual void endNotificationGuard()
Subject & operator=(const Subject &)
Assignment operator. Does nothing, as observers are not copied.
virtual void beginNotificationGuard()
Notification guard interface. Implementation in this class is a no-op.
bool addObserver(const Observer::Ptr &obs)
virtual ~Subject()
Destructor.
Subject(const Subject &)
Copy constructor. Observers are not copied.
std::size_t nbObservers() const
std::set< Observer::WeakPtr, std::owner_less< Observer::WeakPtr > > Observers
bool hasObserver(const Observer::Ptr &obs) const
Subject(Subject &&)
Move constructor. Observers are not moved.
Subject & operator=(Subject &&)
Move assignment operator. Does nothing, as observers are not moved.
virtual bool inCompositeNotification() const