 
#ifndef bushapp_DEFINED
#define bushapp_DEFINED 1
 
#ifndef class_DEFINED
#include <class.h>
#endif /* class_DEFINED */
/* 
 * This file was generated by the Andrew class system preprocessor.
 * Don't make changes to this file as it is created from bushapp.ch and will be
 * overwritten.  Make changes to bushapp.ch instead.
 */ 
 
#ifndef class_StaticInfoOnly
/* 
 * The following information was copied, as-is, from bushapp.ch.
 */ 
 
/* ********************************************************************** *\
 *         Copyright IBM Corporation 1988,1991 - All Rights Reserved      *
 *        For full copyright information see:'andrew/config/COPYRITE'     *
\* ********************************************************************** */

/*
	$Disclaimer: 
*Permission to use, copy, modify, and distribute this software and its 
*documentation for any purpose is hereby granted without fee, 
*provided that the above copyright notice appear in all copies and that 
*both that copyright notice, this permission notice, and the following 
*disclaimer appear in supporting documentation, and that the names of 
*IBM, Carnegie Mellon University, and other copyright holders, not be 
*used in advertising or publicity pertaining to distribution of the software 
*without specific, written prior permission.
*
*IBM, CARNEGIE MELLON UNIVERSITY, AND THE OTHER COPYRIGHT HOLDERS 
*DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
*ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT 
*SHALL IBM, CARNEGIE MELLON UNIVERSITY, OR ANY OTHER COPYRIGHT HOLDER 
*BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 
*DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
*WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 
*ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
*OF THIS SOFTWARE.
* $
*/

/**  SPECIFICATION -- External Facility Suite  *********************************

TITLE	Bush Application

MODULE	bushapp.ch

VERSION	0.0

AUTHOR	TC Peters & GW Keim
	Information Technology Center, Carnegie-Mellon University 

DESCRIPTION
	This is the Application layer for the Bush Inset..

    NB: The comment-symbol "===" indicates areas which are:
	    1 - Questionable
	    OR
	    2 - Arbitrary
	    OR
	    3 - Temporary Hacks
    Such curiosities need be resolved prior to Project Completion...

HISTORY
  08/21/85	Created (TCP)
  01/15/89	Convert to ATK (GW Keim)

END-SPECIFICATION  ******************************************************/






/* 
 * End of information copied from bushapp.ch.
 */ 
 
#endif /* class_StaticInfoOnly *//* 
 * Include the superclass information
 */ 
#define dontDefineRoutinesFor_application
#include "app.ih"
#undef dontDefineRoutinesFor_application

 
 
#ifndef class_StaticInfoOnly
/* 
 * Data structure for bushapp 
 */ 
struct bushapp { 
    union {
	struct basicobject_methods *bushapp_methods;
	struct application application;
    } header;
    struct im	    *im;
    struct frame    *frame;
    struct bush	    *bush;
    struct bushv    *bushview;
    int		     argc;
    char	   **argv;
    int		     debug;

};

 
/* 
 * End of data structure for bushapp.
 */ 
 

#endif /* class_StaticInfoOnly */

#ifndef class_StaticInfoOnly

#ifndef bushapp_PROGRAMMERVERSION
#define bushapp_PROGRAMMERVERSION 1
#endif /* bushapp_PROGRAMMERVERSION */

#ifdef bushapp_VERSION
#undef bushapp_VERSION
#endif /* bushapp_VERSION */
#define bushapp_VERSION ((((bushapp_PROGRAMMERVERSION << 16) ^ (7 << 8) ^ sizeof(struct bushapp)) & 0x7ffff) + 0x80000 + (1 << 20))


#endif /* class_StaticInfoOnly */
#define bushapp_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *bushapp__GetClassInfo(); \
 extern struct classheader *bushapp_classheader_StaticExport; \
  (void) class_EnterInfo(NULL, bushapp_classheader_StaticExport->name, bushapp__GetClassInfo, NULL, bushapp_classheader_StaticExport->namekey); } 
 
#define bushapp_StaticLoad()  \
    { \
    application_StaticLoad(); \
    bushapp_StaticLoadOnlyThisClass();  \
    } 
 
#define bushapp_StaticEntry  {bushapp_StaticLoad()} 
 
#ifndef class_StaticInfoOnly
static struct classheader bushapp_classheader = {
    bushapp_VERSION,
    "bushapp",
    "bushapp",
    (struct basicobject_methods *) &class_RoutineStruct,
};

#define bushapp_CLASSPROCEDURES (bushapp_classheader.classprocedures)
int bushapp_classref_;
#endif /* class_StaticInfoOnly */

#endif /* bushapp_DEFINED */

#if !defined(bushapp_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_bushapp) && !defined(class_StaticEntriesOnly)
#define bushapp_ROUTINESDEFINED

#define bushapp_ParseArgs(self,argc,argv) \
    ((* ((boolean (*)())((self)->header.bushapp_methods->routines[0]))) (self,argc,argv))
#define bushapp_ReadInitFile(self) \
    ((* ((void (*)())((self)->header.bushapp_methods->routines[1]))) (self))
#define bushapp_Start(self) \
    ((* ((boolean (*)())((self)->header.bushapp_methods->routines[2]))) (self))
#define bushapp_Run(self) \
    ((* ((int (*)())((self)->header.bushapp_methods->routines[3]))) (self))
#define bushapp_Stop(self) \
    ((* ((void (*)())((self)->header.bushapp_methods->routines[4]))) (self))
#define bushapp_Fork(self) \
    ((* ((boolean (*)())((self)->header.bushapp_methods->routines[5]))) (self))
#define bushapp_PrintVersionNumber(self) \
    ((* ((void (*)())((self)->header.bushapp_methods->routines[6]))) (self))
#define bushapp_SetFork(self,do) \
 ((&(self)->header.application)->fork=(do))
#define bushapp_GetFork(self) \
 ((&(self)->header.application)->fork)
#define bushapp_SetName(self,str) \
 ((&(self)->header.application)->name=(str))
#define bushapp_GetName(self) \
 ((&(self)->header.application)->name)
#define bushapp_SetForceLoad(self,f) \
 (((&(self)->header.application))->forceload=(f))
#define bushapp_GetForceLoad(self) \
 (((&(self)->header.application))->forceload)
#define bushapp_SetErrorProc(self,p) \
 (((&(self)->header.application))->errorProc=(p))
#define bushapp_GetErrorProc(self) \
 (((&(self)->header.application))->errorProc)
#define bushapp_SetErrorRock(self,r) \
 (((&(self)->header.application))->errorRock=(r))
#define bushapp_GetErrorRock(self) \
 (((&(self)->header.application))->errorRock)
#define bushapp_SetMajorVersion(self,mv) \
 (((&(self)->header.application))->majorversion=(mv))
#define bushapp_GetMajorVersion(self) \
 (((&(self)->header.application))->majorversion)
#define bushapp_SetMinorVersion(self,mv) \
 (((&(self)->header.application))->minorversion=(mv))
#define bushapp_GetMinorVersion(self) \
 (((&(self)->header.application))->minorversion)
#define bushapp_SetPrintVersionFlag(self,TorF) \
 (((&(self)->header.application))->printversioninfo=(TorF))
#define bushapp_GetPrintVersionFlag(self) \
 (((&(self)->header.application))->printversioninfo)
#define bushapp_SetIconic(self,val) \
 (((&(self)->header.application))->iconic=(val))
#define bushapp_GetIconic(self) \
 (((&(self)->header.application))->iconic)

#define bushapp_NewFromObject(self) \
    ((* ((struct bushapp * (*)())((self)->header.bushapp_methods->info->procs->routines[0]))) (&bushapp_classheader, (self)->header.bushapp_methods->info->versionnumber))
#define bushapp_New() \
    (*((struct bushapp * (*)()) (bushapp_CLASSPROCEDURES->routines[0])))(&bushapp_classheader,bushapp_VERSION)
#define bushapp_Initialize(self) \
    (*((void (*)()) (bushapp_CLASSPROCEDURES->routines[2])))(&bushapp_classheader,self, bushapp_VERSION)

#define bushapp_Destroy(self) \
    ((* ((void (*)()) ((self)->header.bushapp_methods->info->procs->routines[1]))) (&bushapp_classheader, self))
#define bushapp_Finalize(self) \
    (*((void (*)()) (bushapp_CLASSPROCEDURES->routines[3])))(&bushapp_classheader,self)

#define bushapp_InitializeObject(self) \
    (*((boolean (*)()) (bushapp_CLASSPROCEDURES->routines[5])))(&bushapp_classheader,self)
#define bushapp_FinalizeObject(self) \
    (*((void (*)()) (bushapp_CLASSPROCEDURES->routines[6])))(&bushapp_classheader,self)


#endif /* !defined(bushapp_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_bushapp ) && !defined(class_StaticEntriesOnly)*/

