Initial commit
This commit is contained in:
89
Include/ZUtil/ZSemaphore.hpp
Normal file
89
Include/ZUtil/ZSemaphore.hpp
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
ZSema.hpp
|
||||
Author: James Russell <jcrussell@762studios.com>
|
||||
|
||||
Purpose: RAII wrapper for libsst-concurrency SST_Semaphore.
|
||||
|
||||
Changelog
|
||||
2011/11/27 - creation (jcrussell)
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _ZSEMAPHORE_H
|
||||
#define _ZSEMAPHORE_H
|
||||
|
||||
#include <ZUtil/ZUtilBuild.hpp>
|
||||
|
||||
#include <SST/SST_Semaphore.h>
|
||||
|
||||
/*
|
||||
ZSemaphore class. Used to allocate and deallocate a semaphore within the scope of a class.
|
||||
Cannot be copied or assigned, which prevents it from being used in stl-like containers.
|
||||
*/
|
||||
class ZSemaphore
|
||||
{
|
||||
private:
|
||||
DISABLE_COPY_AND_ASSIGN(ZSemaphore);
|
||||
|
||||
//libsst Semaphore
|
||||
SST_Semaphore Semaphore;
|
||||
|
||||
public:
|
||||
/*
|
||||
Constructor.
|
||||
|
||||
@param _initialCount - initial count of the semaphore
|
||||
*/
|
||||
ZSemaphore(int _initialCount);
|
||||
|
||||
/*
|
||||
Destructor.
|
||||
*/
|
||||
~ZSemaphore();
|
||||
|
||||
/*
|
||||
public ZSema::Post
|
||||
|
||||
TODO
|
||||
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
void Post();
|
||||
|
||||
/*
|
||||
public ZSema::Post
|
||||
|
||||
TODO
|
||||
|
||||
@param _count -
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
void Post(uint32_t _count);
|
||||
|
||||
/*
|
||||
public ZSema::Wait
|
||||
|
||||
TODO
|
||||
|
||||
@return (bool)
|
||||
@context (all)
|
||||
*/
|
||||
bool Wait();
|
||||
|
||||
/*
|
||||
public ZSema::Wait
|
||||
|
||||
TODO
|
||||
|
||||
@param _ms -
|
||||
@return (bool)
|
||||
@context (all)
|
||||
*/
|
||||
bool Wait(uint32_t _ms);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user