#include "media/audio/cross_process_notification.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
CrossProcessNotification::CrossProcessNotification() {}
CrossProcessNotification::WaitForMultiple::WaitForMultiple(
const Notifications* notifications) {
Reset(notifications);
}
int CrossProcessNotification::WaitForMultiple::Wait() {
DCHECK(CalledOnValidThread());
int ret = WaitMultiple(*notifications_, wait_offset_);
wait_offset_ = (ret + 1) % notifications_->size();
return ret;
}
void CrossProcessNotification::WaitForMultiple::Reset(
const Notifications* notifications) {
DCHECK(CalledOnValidThread());
wait_offset_ = 0;
notifications_ = notifications;
DCHECK(!notifications_->empty());
}