Synchronized.hpp
#if !defined(__SYNCHRONIZED_HPP)
#define __SYNCHRONIZED_HPP
/*
CoreLinux++
Copyright (C) 1999,2000 CoreLinux Consortium
The CoreLinux++ Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The CoreLinux++ Library Library is distributed in the hope that it will
be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#if !defined IN_COMMON_HPP
#error Synchronized.hpp is included by Common.hpp only.
#endif
#if !defined(__SEMAPHOREEXCEPTION_HPP)
#include <SemaphoreException.hpp>
#endif
namespace corelinux
{
DECLARE_CLASS( Synchronized );
class Synchronized
{
protected:
DECLARE_CLASS( Guard );
class Guard
{
public:
Guard( GuardCref );
~Guard( void );
//
// Mutator
//
void release( void );
protected:
friend class Synchronized;
Guard( SynchronizedPtr );
Guard( void );
GuardRef operator=( GuardCref );
private:
mutable SynchronizedPtr theSynchronized;
};
public:
//
// Constructors and destructor
//
Synchronized( void );
Synchronized( SynchronizedCref );
virtual ~Synchronized( void );
//
// Operator overloads
//
SynchronizedRef operator=( SynchronizedCref );
bool operator==( SynchronizedCref ) const;
protected:
//
// Mutators
//
Guard access( void ) const throw(SemaphoreException) ;
};
#define GUARD \
Guard aGuardedLock( this->access() )
}
#endif // if !defined(__SYNCHRONIZED_HPP)
/*
Common rcs information do not modify
$Author: prudhomm $
$Revision: 1.4 $
$Date: 2000/08/31 22:52:20 $
$Locker: $
*/
corelinux::Synchronized::Guard
Guard is the automatic instance that insures a lock is not held beyond the scope where it was instant...
Definition: Synchronized.hpp:53
corelinux::Synchronized::access
Guard access(void) const
Access returns a instance of Guard which is block scoped to the caller.
Definition: Synchronized.cpp:84
corelinux::Synchronized::Guard::operator=
GuardRef operator=(GuardCref)
Assignment operator never called.
Definition: Synchronized.cpp:128
corelinux::Synchronized::Guard::release
void release(void)
Releases before destruction.
Definition: Synchronized.cpp:144
corelinux::Synchronized::operator==
bool operator==(SynchronizedCref) const
Equality operator.
Definition: Synchronized.cpp:75
corelinux::Synchronized::Guard::Guard
Guard(void)
Default constructor never called.
Definition: Synchronized.cpp:94
corelinux
Forward reference the various common classes.
Definition: AbstractAllocator.hpp:32
corelinux::Synchronized::~Synchronized
virtual ~Synchronized(void)
Virtual Destructor.
Definition: Synchronized.cpp:57
corelinux::SemaphoreException
SemaphoreException is the base exception type for Semaphore.
Definition: SemaphoreException.hpp:39
corelinux::Synchronized
Synchronized is a mixin which allows class objects to enable monitor functionality.
Definition: Synchronized.hpp:41
corelinux::Synchronized::Guard::~Guard
~Guard(void)
Destructor.
Definition: Synchronized.cpp:139

This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium