// $Source: /usr/local/SimSoft/SoftShop/Identity/RefCount.h,v $
// $Revision: 1.19 $
// $Author: baum $
// $Date: 2001/11/29 15:52:23 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name: Release-20 $
// State assigned to revision
// $State: Exp $
//
//
// $Log: RefCount.h,v $
// Revision 1.19  2001/11/29 15:52:23  baum
// -In Kalender.cpp und Kalender.h Handsteuerung eingebaut
//

#ifndef _REFCOUNT_H
#define _REFCOUNT_H  1

#ifndef __BORLANDC__
#define __rtti
#endif

#ifdef _REFCOUNTER_CPP
#  undef _impexp
#  define _impexp __declspec(dllexport)
#elif defined BUILD_IDENTITY_DLL
#  undef _impexp
#  define _impexp
#else
#  undef _impexp
#  define _impexp __declspec(dllimport)
#endif

#if defined __GNUG__ || defined __hpux
#  undef _impexp
#  define _impexp
#endif

//==================================================================
//		Class-Header
//		for class RefCounter
//==================================================================

//##ModelId=4030D7690244
class _impexp __rtti RefCounter
  {
  public:
    // increase RefCounter
	//##ModelId=4030D7690251
    unsigned incRef ();

    // decrease RefCounter
	//##ModelId=4030D7690252
    unsigned decRef ();

    // getting the RefCount
	//##ModelId=4030D7690253
    unsigned RefCount ();

  protected:
    // constructor
	//##ModelId=4030D7690254
    RefCounter ();

    // destructor
	//##ModelId=4030D7690261
    virtual ~RefCounter ();

  private:
    // copy constructor declared, but not defined
	//##ModelId=4030D7690263
    RefCounter (const RefCounter&);

    // assignment operator declared, but not defined
	//##ModelId=4030D7690265
    RefCounter& operator =  (const RefCounter&);

    // data members
	//##ModelId=4030D7690272
    unsigned int ObjRefCount;

}; // class RefCounter

#endif // !_REFCOUNT_H

