Listing 1: The base mutex class

// File : MutexInterface.h"

#ifndef  MutexInterface_H
#define  MutexInterface_H

typedef enum
{
   TIMEOUT,
   ABANDONED
} MutexException;

class IMutex
{
public:
   virtual ~IMutex() {};
   virtual void wait(unsigned short usTimeOut)
      throw (MutexException) = 0;
   virtual void release() = 0;

protected:

private:

};

#endif
/* End of File */