// Revision: 05 1.5.1.4 source/ui/baseapp/icritsec.hpp, application, ioc.v400, 980918  
#ifndef _ICRITSEC_
#define _ICRITSEC_
/*******************************************************************************
* FILE NAME: icritsec.hpp                                                      *
*                                                                              *
* DESCRIPTION:                                                                 *
*   Declaration of the classes:                                                *
*     ICritSec                                                                 *
*                                                                              *
* COPYRIGHT:                                                                   *
*   IBM Open Class Library                                                     *
*   (C) Copyright International Business Machines Corporation 1992, 1997       *
*   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
*******************************************************************************/
#include <ibase.hpp>
#include <iuipl.hpp>

#if __IBMCPP__ >= 400
#pragma namemangling(compat)
#endif

class ICritSecData;

#pragma enum(4)
#pragma pack(push,4)

class ICritSec  {
public:
/*------------------------------- Constructors -------------------------------*/
  ICritSec ( );
 ~ICritSec ( );

/*------------------------------- Diagnostics --------------------------------*/
static unsigned long
  count    ( );

private:
/*------------------------------ Hidden Members ------------------------------*/
  ICritSec   ( const ICritSec& section );
ICritSec
 &operator=  ( const ICritSec& section );

/*--------------------------------- Private ----------------------------------*/
static unsigned long
  fgCount;
ICritSecData
 *fCritSecData;

}; // ICritSec

#pragma pack(pop)
#pragma enum(pop)

#if __IBMCPP__ >= 400
#pragma namemangling()
#endif

#endif // _ICRITSEC_
