////////////////////////////////////////////////////////////
//
// Declaration of classes
// AConditionAttributes, ACondition
//
// Copyright 2001
//
//
////////////////////////////////////////////////////////////
#ifndef __CONDITION_H__
#define __CONDITION_H__
#include <pthread.h>
// AConditionAttributes
class ACondition;
class AConditionAttributes
{
friend class ACondition;
public:
int status;
AConditionAttributes();
~AConditionAttributes();
int set_shared();
private:
pthread_condattr_t attributes;
};
// ACondition
class AMutex;
class ACondition
{
friend int AWait(ACondition& condition,AMutex& mutex);
friend int AWait(ACondition& condition,AMutex& mutex,unsigned timeout_milliseconds);
ACondition(const ACondition&); // forbidden
ACondition& operator=(const ACondition&); // forbidden
public:
int status;
// default attributes
ACondition();
ACondition(const AConditionAttributes& z);
~ACondition();
int signal();
int broadcast();
private:
pthread_cond_t condition;
};
#endif