Initial commit
This commit is contained in:
86
Include/ZUtil/ZEvent.hpp
Normal file
86
Include/ZUtil/ZEvent.hpp
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
ZEvent.hpp
|
||||
Author: James Russell <jcrussell@762studios.com>
|
||||
|
||||
Purpose: RAII wrapper for SST_Event from libsst-concurrency.
|
||||
|
||||
Changelog
|
||||
2011/11/27 - creation (jcrussell)
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _ZEVENT_H
|
||||
#define _ZEVENT_H
|
||||
|
||||
#include <ZUtil/ZUtilBuild.hpp>
|
||||
#include <SST/SST_Event.h>
|
||||
|
||||
/*
|
||||
Event class. Used to manage allocation and deallocation of events.
|
||||
Cannot be copied or assigned, which prevents it from being used in stl-like containers.
|
||||
*/
|
||||
class ZEvent
|
||||
{
|
||||
private:
|
||||
DISABLE_COPY_AND_ASSIGN(ZEvent);
|
||||
|
||||
//libsst Event
|
||||
SST_Event Event;
|
||||
|
||||
public:
|
||||
/*
|
||||
Constructor. Creates an event from libsst-concurrency.
|
||||
*/
|
||||
ZEvent();
|
||||
|
||||
/*
|
||||
Destructor. Frees our event from libsst-concurrency.
|
||||
*/
|
||||
~ZEvent();
|
||||
|
||||
/*
|
||||
public ZSignal::Notify
|
||||
|
||||
Signals event, waking up all waiting threads. Until this event is reset, waiting threads will return.
|
||||
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
void Notify();
|
||||
|
||||
/*
|
||||
public ZSignal::Reset
|
||||
|
||||
Signals reset, which causes threads that call Wait to block until signaled.
|
||||
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
void Reset();
|
||||
|
||||
/*
|
||||
public ZSignal::Wait
|
||||
|
||||
Waits on a signal. Blocks until Signal is called.
|
||||
|
||||
@return (bool) - true if the event was signaled, false if returned before a signal (such as event not reset)
|
||||
@context (all)
|
||||
*/
|
||||
bool Wait();
|
||||
|
||||
/*
|
||||
public ZSignal::Wait
|
||||
|
||||
Waits on a signal for an amount of time.
|
||||
|
||||
@param _ms - the amount of time (in ms) to wait.
|
||||
@return (bool) - true if the event was signaled, false if returned before a signal (event not reset our out of time).
|
||||
@context (all)
|
||||
*/
|
||||
bool Wait(uint32_t _ms);
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user