poco/Foundation/include/Poco/Mutex_WINCE.h
martin-osborne 00b568193c Replaced boolean with enum in c'tor.
Implemented in a similar style to FPEnvironment.
2015-01-14 10:48:22 +00:00

78 lines
1.2 KiB
C++

//
// Mutex_WIN32.h
//
// $Id: //poco/1.4/Foundation/include/Poco/Mutex_WINCE.h#1 $
//
// Library: Foundation
// Package: Threading
// Module: Mutex
//
// Definition of the MutexImpl and FastMutexImpl classes for WIN32.
//
// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Foundation_Mutex_WINCE_INCLUDED
#define Foundation_Mutex_WINCE_INCLUDED
#include "Poco/Foundation.h"
#include "Poco/Exception.h"
#include "Poco/UnWindows.h"
namespace Poco {
class Foundation_API MutexImpl
{
public:
enum MutexTypeImpl
{
MUTEX_RECURSIVE_IMPL,
MUTEX_NONRECURSIVE_IMPL,
};
protected:
explicit MutexImpl(MutexTypeImpl type);
~MutexImpl();
void lockImpl();
bool tryLockImpl();
bool tryLockImpl(long milliseconds);
void unlockImpl();
private:
HANDLE _mutex;
int _lockCount;
const bool _recursive;
private:
MutexImpl(const MutexImpl&);
MutexImpl& operator = (const MutexImpl&);
};
class Foundation_API FastMutexImpl
{
protected:
FastMutexImpl();
~FastMutexImpl();
void lockImpl();
bool tryLockImpl();
bool tryLockImpl(long milliseconds);
void unlockImpl();
private:
HANDLE _mutex;
};
} // namespace Poco
#endif // Foundation_Mutex_WINCE_INCLUDED