#ifndef THIS_CLASS_H
#define THIS_CLASS_H

/*$Header: /afs/alw.nih.gov/unix/sun4_40c/usr/local/src/nihcl-3.0/share/lib/RCS/Template_h,v 3.0 90/05/20 00:21:43 kgorlen Rel $*/

/* Template.h -- example header file for an NIH Library class

	THIS SOFTWARE FITS THE DESCRIPTION IN THE U.S. COPYRIGHT ACT OF A
	"UNITED STATES GOVERNMENT WORK".  IT WAS WRITTEN AS A PART OF THE
	AUTHOR'S OFFICIAL DUTIES AS A GOVERNMENT EMPLOYEE.  THIS MEANS IT
	CANNOT BE COPYRIGHTED.  THIS SOFTWARE IS FREELY AVAILABLE TO THE
	PUBLIC FOR USE WITHOUT A COPYRIGHT NOTICE, AND THERE ARE NO
	RESTRICTIONS ON ITS USE, NOW OR SUBSEQUENTLY.

Author:
	K. E. Gorlen
	Computer Systems Laboratory, DCRT
	National Institutes of Health
	Bethesda, MD 20892

Modification History:

$Log:	Template_h,v $
# Revision 3.0  90/05/20  00:21:43  kgorlen
# Release for 1st edition.
# 
*/

// Define "MI" if this class uses multiple inheritance:
//#ifndef MI
//#define MI
//#endif

#include "BASE_CLASS.h"
// #include .h files for other classes used
// Insert only class declarations for classes accessed
// by pointer and reference ONLY

// If BASE_CLASS is Object:
// class THIS_CLASS: public VIRTUAL Object {

class THIS_CLASS: public BASE_CLASS {
	DECLARE_MEMBERS(THIS_CLASS);
// member variables here
protected:		// storer() functions for object I/O
	virtual void storer(OIOofd&) const;
	virtual void storer(OIOout&) const;
public:
	bool operator==(const THIS_CLASS&) const;
	bool operator!=(const THIS_CLASS& a) const
		{ return !(*this==a); }
	virtual	int compare(const Object&) const;
	virtual Object* copy() const;		// shallowCopy() default
                                                // if not defined
	virtual void deepenShallowCopy();
	virtual unsigned hash() const;
	virtual bool isEqual(const Object&) const;
	virtual void printOn(ostream& strm =cout) const;
	virtual const Class* species() const;
};

#endif
