Beispiel #1
0
bool
SBListener::GetNextEventForBroadcasterWithType
(
    const SBBroadcaster &broadcaster,
    uint32_t event_type_mask,
    SBEvent &event
)
{
    if (m_opaque_sp && broadcaster.IsValid())
    {
        EventSP event_sp;
        if (m_opaque_sp->GetNextEventForBroadcasterWithType (broadcaster.get(),
                                                              event_type_mask,
                                                              event_sp))
        {
            event.reset (event_sp);
            return true;
        }
    }
    event.reset (NULL);
    return false;
}
Beispiel #2
0
bool
SBListener::WaitForEvent (uint32_t num_seconds, SBEvent &event)
{
    if (m_opaque_ptr)
    {
        TimeValue time_value;
        if (num_seconds != UINT32_MAX)
        {
            assert (num_seconds != 0); // Take this out after all calls with timeout set to zero have been removed....
            time_value = TimeValue::Now();
            time_value.OffsetWithSeconds (num_seconds);
        }
        EventSP event_sp;
        if (m_opaque_ptr->WaitForEvent (time_value.IsValid() ? &time_value : NULL, event_sp))
        {
            event.reset (event_sp);
            return true;
        }
    }
    event.reset (NULL);
    return false;
}