Initial commit
This commit is contained in:
84
Include/ZUtil/ZReadWriteLock.hpp
Normal file
84
Include/ZUtil/ZReadWriteLock.hpp
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
ZReadWriteLock.hpp
|
||||
Author: James Russell <jcrussell@762studios.com>
|
||||
Created: 5/17/2012
|
||||
|
||||
Purpose:
|
||||
|
||||
RAII wrapper for SST_ReadWriteLock from libsst-concurrency.
|
||||
|
||||
License:
|
||||
|
||||
TODO
|
||||
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _ZREADWRITELOCK_HPP
|
||||
#define _ZREADWRITELOCK_HPP
|
||||
|
||||
#include <SST/SST_ReadWriteLock.h>
|
||||
|
||||
#include <ZUtil/ZUtilBuild.hpp>
|
||||
|
||||
class ZReadWriteLock
|
||||
{
|
||||
private:
|
||||
DISABLE_COPY_AND_ASSIGN(ZReadWriteLock);
|
||||
|
||||
//The SST_ReadWriteLock
|
||||
SST_ReadWriteLock Lock;
|
||||
|
||||
public:
|
||||
/*
|
||||
Default Constructor.
|
||||
*/
|
||||
ZReadWriteLock();
|
||||
|
||||
/*
|
||||
Destructor.
|
||||
*/
|
||||
~ZReadWriteLock();
|
||||
|
||||
/*
|
||||
public LockForReading
|
||||
|
||||
Locks this read write lock for reading. Blocks until the lock is obtained.
|
||||
|
||||
@param ticks - the maximum amount of time to block
|
||||
@return (bool) - true if the lock was obtained, false otherwise
|
||||
*/
|
||||
bool LockForReading(uint32_t ticks) const;
|
||||
|
||||
/*
|
||||
public LockForWriting
|
||||
|
||||
Locks this read write lock for writing. Blocks until the lock is obtained.
|
||||
|
||||
@param ticks - the maximum amount of time to block
|
||||
@return (bool) - true if the lock was obtained, false otherwise
|
||||
*/
|
||||
bool LockForWriting(uint32_t ticks);
|
||||
|
||||
/*
|
||||
public EndReading
|
||||
|
||||
Signals that a read operation has completed.
|
||||
|
||||
@return (void)
|
||||
*/
|
||||
void EndReading() const;
|
||||
|
||||
/*
|
||||
public EndWriting
|
||||
|
||||
Signals that a write operation has completed.
|
||||
|
||||
@return (void)
|
||||
*/
|
||||
void EndWriting();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user